Die Inferenzbereitstellung ist entscheidend für die Bereitstellung Ihrer generativen KI-Modelle für Anwendungen in der Praxis. Die GKE bietet eine robuste und skalierbare Plattform für die Verwaltung Ihrer containerisierten Arbeitslasten und ist daher eine attraktive Wahl für die Bereitstellung Ihrer Modelle in der Entwicklung oder Produktion. Mit der GKE können Sie die Kubernetes-Funktionen für Orchestrierung, Skalierung und Hochverfügbarkeit nutzen, um Ihre Inferenzdienste effizient bereitzustellen und zu verwalten.
Angesichts der spezifischen Anforderungen der KI-/ML-Inferenz hat Google die Cloud de Confiance by S3NS GKE-Funktionen für generative KI eingeführt. Dabei handelt es sich um eine Reihe von Funktionen,die speziell für die Verbesserung und Optimierung der Inferenzbereitstellung in der GKE entwickelt wurden. Weitere Informationen zu bestimmten Funktionen finden Sie unter GKE-Funktionen für generative KI.
Erste Schritte mit der KI-/ML-Modellinferenz in der GKE
Sie können in wenigen Minuten mit der KI-/ML-Modellinferenz in der GKE beginnen. Sie können die kostenlose Stufe der GKE verwenden, um mit Kubernetes zu beginnen, ohne dass Kosten für die Cluster verwaltung anfallen.
-
Rufen Sie in der Console Cloud de Confiance die Seite „GKE AI/ML“ auf.
- Folgen Sie der Anleitung unter Modelle bereitstellen, um ein containerisiertes Modell und einen Modellserver bereitzustellen.
- Lesen Sie die Übersicht über Best Practices für die Inferenz in GKE. Dort finden Sie Anleitungen und Ressourcen für die Planung und Ausführung Ihrer Inferenzarbeitslasten in GKE.
Terminologie
Auf dieser Seite wird die folgende Terminologie im Zusammenhang mit der Inferenz in der GKE verwendet:
- Inferenz: Der Prozess der Ausführung eines generativen KI-Modells, z. B. eines Large Language Model oder eines Diffusionsmodells, in einem GKE-Cluster, um Text, Einbettungen oder andere Ausgaben aus Eingabedaten zu generieren. Bei der Modellinferenz in der GKE werden Beschleuniger verwendet, um komplexe Berechnungen für die Echtzeit- oder Batchverarbeitung effizient zu verarbeiten.
- Modell: Ein generatives KI-Modell, das Muster aus Daten gelernt hat und für die Inferenz verwendet wird. Modelle variieren in Größe und Architektur, von kleineren domänenspezifischen Modellen bis hin zu massiven neuronalen Netzwerken mit mehreren Milliarden Parametern, die für verschiedene Sprachaufgaben optimiert sind.
- Modellserver: Ein containerisierter Dienst, der Inferenzanfragen empfängt und Inferenzen zurückgibt. Dieser Dienst kann eine Python-Anwendung oder eine robustere Lösung wie vLLM, JetStream, TensorFlow Serving oder Triton Inference Server sein. Der Modellserver lädt Modelle in den Arbeitsspeicher und führt Berechnungen auf Beschleunigern aus, um Inferenzen effizient zurückzugeben.
- Beschleuniger: Spezialisierte Hardware wie Graphics Processing Units (GPUs) von NVIDIA und Tensor Processing Units (TPUs) von Google, die an GKE-Knoten angehängt werden können, um Berechnungen zu beschleunigen, insbesondere für Trainings- und Inferenzaufgaben.
- Quantisierung: Eine Technik, mit der die Größe von KI-/ML-Modellen reduziert und die Inferenzgeschwindigkeit verbessert wird, indem Modellgewichtungen und Aktivierungen von Datentypen mit höherer Genauigkeit in Datentypen mit geringerer Genauigkeit konvertiert werden.
Vorteile der GKE für die Inferenz
Die Inferenzbereitstellung in der GKE bietet mehrere Vorteile:
- Effizientes Preis-Leistungs-Verhältnis:Sie erhalten Wert und Geschwindigkeit für Ihre Anforderungen an die Inferenzbereitstellung. Mit der GKE können Sie aus einer Reihe leistungsstarker Beschleuniger (GPUs und TPUs)wählen und zahlen nur für die Leistung, die Sie benötigen.
- Schnellere Bereitstellung: Beschleunigen Sie die Produkteinführungszeit mit maßgeschneiderten Best Practices, Qualifikationen und Best Practices, die von den GKE-Funktionen für generative KI bereitgestellt werden.
- Skalierbare Leistung: Skalieren Sie die Leistung horizontal mit vorgefertigtem Monitoring mithilfe des GKE Inference Gateway, horizontalen Pod-Autoscalings (HPA) und benutzerdefinierter Messwerte. Sie können eine Reihe von vortrainierten oder benutzerdefinierten Modellen mit 8 Milliarden bis 671 Milliarden Parametern ausführen.
- Volle Portabilität: Profitieren Sie von der vollen Portabilität mit offenen Standards. Google trägt zu wichtigen Kubernetes-APIs bei, darunter Gateway und LeaderWorkerSet. Alle APIs sind mit Kubernetes-Distributionen portierbar.
- Ökosystemunterstützung: Nutzen Sie das robuste Ökosystem der GKE, das Tools wie Kueue für die erweiterte Ressourcenwarteschlange und -verwaltung sowie Ray für verteiltes Computing unterstützt, um das skalierbare und effiziente Modelltraining und die Inferenz zu erleichtern.
Funktionsweise der Inferenz in der GKE
In diesem Abschnitt werden die Schritte zur Verwendung der GKE für die Inferenzbereitstellung auf hoher Ebene beschrieben:
Modell containerisieren: Eine Anwendung zu containerisieren bedeutet, ein Container-Image zu erstellen. Das ist ein ausführbares Paket, das alles enthält, was zum Ausführen der Anwendung erforderlich ist: Code, Laufzeit, Systemtools, Systembibliotheken und Einstellungen. Eine einfache Anwendung kann als einzelne Einheit containerisiert werden, während eine komplexere Anwendung in mehrere containerisierte Komponenten unterteilt werden kann. Stellen Sie ein Modell bereit, indem Sie den Modellserver (z. B. vLLM) containerisieren und Modellgewichtungen aus Cloud Storage oder einem Repository wie Hugging Face laden. Wenn Sie die GKE-Kurzanleitung zur Inferenz verwenden, wird das containerisierte Image automatisch im Manifest für Sie verwaltet.
GKE-Cluster erstellen: Erstellen Sie einen GKE-Cluster, um Ihre Bereitstellung zu hosten. Wählen Sie „Autopilot“ für eine verwaltete Umgebung oder „Standard“ für die Anpassung aus. Konfigurieren Sie die Clustergröße, die Knotentypen und die Beschleuniger. Verwenden Sie die Kurzanleitung zur Inferenz für eine optimierte Konfiguration.
Modell als Kubernetes-Deployment bereitstellen: Erstellen Sie ein Kubernetes Deployment um Ihren Inferenzdienst zu verwalten. Ein Deployment ist ein Kubernetes-API-Objekt, mit dem Sie mehrere Replikate von Pods ausführen können, die auf die Knoten in einem Cluster verteilt sind. Geben Sie das Docker-Image, die Replikate und die Einstellungen an. Kubernetes ruft das Image ab und führt Ihre Container auf den GKE-Clusterknoten aus. Konfigurieren Sie die Pods mit Ihrem Modellserver und -modell, einschließlich LoRA-Adaptern, falls erforderlich.
Inferenzdienst verfügbar machen: Machen Sie Ihren Inferenzdienst zugänglich, indem Sie einen Kubernetes-Dienst erstellen, um einen Netzwerkendpunkt für Ihr Deployment bereitzustellen. Verwenden Sie das Inference Gateway für intelligentes Load Balancing und Routing, das speziell auf Inferenzarbeitslasten für generative KI zugeschnitten ist. Alternativ können Sie den Vergleich der Load-Balancing-Strategien einsehen, um die beste Option für Ihre Anforderungen auszuwählen.
Inferenzanfragen verarbeiten: Senden Sie Daten von Ihren Anwendungsclients im erwarteten Format (JSON, gRPC) an den Endpunkt Ihres Dienstes. Wenn Sie einen Load Balancer verwenden, verteilt er Anfragen an Modellreplikate. Der Modellserver verarbeitet die Anfrage, führt das Modell aus und gibt die Inferenz zurück.
Inferenzbereitstellung skalieren und überwachen: Skalieren Sie die Inferenz mit HPA, um Replikate automatisch anhand der CPU-Auslastung oder Latenz anzupassen. Das horizontale Pod-Autoscaling (HPA) ist ein Kubernetes-Controller, der die Anzahl der Pods in einer Arbeitslast (z. B. einem Deployment) automatisch erhöht oder verringert, basierend auf beobachteten Messwerten wie der CPU-Auslastung oder benutzerdefinierten Messwerten. Verwenden Sie die Kurzanleitung zur Inferenz , um automatisch generierte Skalierungsempfehlungen zu erhalten. Verwenden Sie Cloud Monitoring und Cloud Logging mit vorgefertigten Beobachtbarkeitsfunktionen, einschließlich Dashboards für beliebte Modellserver wie vLLM, um die Leistung zu verfolgen.
Detaillierte Beispiele mit bestimmten Modellen, Modellservern und Beschleunigern finden Sie unter Inferenzbeispiele.
GKE-Funktionen für generative KI
Sie können diese Funktionen zusammen oder einzeln verwenden, um wichtige Herausforderungen bei der Bereitstellung generativer KI-Modelle zu bewältigen und die Ressourcenauslastung in Ihrer GKE-Umgebung zu verbessern, ohne dass zusätzliche Kosten anfallen.
| Name | Beschreibung | Vorteile |
|---|---|---|
| GKE-Kurzanleitung zur Inferenz |
Analysieren Sie die Leistung und Kosteneffizienz Ihrer Inferenzarbeitslasten. Geben Sie Ihre geschäftlichen Anforderungen an und erhalten Sie maßgeschneiderte Best Practices für die Kombination von Beschleunigern, Skalierungs- und Speicherkonfigurationen sowie Modellservern, die Ihren Anforderungen am besten entsprechen. Sie können über die gcloud CLI und die Cloud de Confiance Console auf diesen Dienst zugreifen. Weitere Informationen finden Sie unter Leistung und Kosten der Modellbereitstellung mit der GKE-Kurzanleitung zur Inferenz analysieren. |
|
| GKE Inference Gateway | Nutzen Sie das Routing basierend auf Messwerten wie der KV-Cache-Auslastung, um die Latenz zu verbessern. Weitere Informationen finden Sie unter GKE Inference Gateway. |
|
| Beschleuniger für das Laden von Modellgewichtungen | Greifen Sie mit Cloud Storage FUSE mit Caching und parallelen Downloads schnell auf Daten in Cloud Storage zu. Weitere Informationen zur Verwendung von Cloud Storage FUSE für KI-/ML-Arbeitslasten finden Sie in der Referenzarchitektur. Google Cloud Managed Lustre ist ein leistungsstarkes, vollständig verwaltetes paralleles Dateisystem,das für KI optimiert ist und an 10.000 oder mehr Pods angehängt werden kann. Weitere Informationen zur Verwendung von Managed Lustre für KI-/ML-Arbeitslasten finden Sie in der Referenzarchitektur. Google Cloud Hyperdisk ML ist ein netzgebundenes Laufwerk,das an bis zu 2.500 Pods angehängt werden kann. |
|
Messwerte für die Inferenzleistung
Um Ihre Inferenzarbeitslasten zu optimieren, ist es wichtig zu wissen, wie Sie ihre Leistung messen. In der folgenden Tabelle werden die wichtigsten Messwerte für das Benchmarking der Inferenzleistung in der GKE beschrieben.
| Benchmark-Indikatoren | Messwert (Einheit) | Beschreibung |
|---|---|---|
| Latenz | Zeit bis zum ersten Token (Time to First Token, TTFT) (ms) | Zeit, die zum Generieren des ersten Tokens für eine Anfrage benötigt wird. |
| Normalisierte Zeit pro Ausgabetoken (Normalized Time Per Output Token, NTPOT) (ms) | Anfragelatenz, normalisiert nach der Anzahl der Ausgabetokens, gemessen als request_latency / total_output_tokens. |
|
| Zeit pro Ausgabetoken (Time Per Output Token, TPOT) (ms) | Zeit, die zum Generieren eines Ausgabetokens benötigt wird, gemessen als (request_latency - time_to_first_token) / (total_output_tokens - 1). |
|
| Latenz zwischen Tokens (Inter-Token Latency, ITL) (ms) | Misst die Latenz zwischen zwei Ausgabetoken-Generationen. Im Gegensatz zu TPOT, das die Latenz für die gesamte Anfrage misst, misst ITL die Zeit, die zum Generieren jedes einzelnen Ausgabetokens benötigt wird. Diese einzelnen Messungen werden dann aggregiert, um Mittelwert, Median und Perzentilwerte wie p90 zu erhalten. | |
| Anfragelatenz (ms) | End-to-End-Zeit zum Abschließen einer Anfrage. | |
| Durchsatz | Anfragen pro Sekunde | Gesamtzahl der Anfragen, die Sie pro Sekunde verarbeiten. Beachten Sie, dass dieser Messwert möglicherweise keine zuverlässige Methode zur Messung des LLM-Durchsatzes ist, da er für verschiedene Kontextlängen stark variieren kann. |
| Ausgabetokens pro Sekunde | Ein häufig verwendeter Messwert, der als total_output_tokens_generated_by_server / elapsed_time_in_seconds gemessen wird. |
|
| Eingabetokens pro Sekunde | Gemessen als total_input_tokens_generated_by_server / elapsed_time_in_seconds. |
|
| Tokens pro Sekunde | Gemessen als total_tokens_generated_by_server / elapsed_time_in_seconds. Dieser Messwert zählt sowohl Eingabe- als auch Ausgabetokens und hilft Ihnen, Arbeitslasten mit hohen Vorfüllzeiten mit solchen mit hohen Decodierungszeiten zu vergleichen. |
Planung für die Inferenz
Eine erfolgreiche Inferenzbereitstellung erfordert eine sorgfältige Planung in mehreren Schlüsselbereichen, darunter Kosteneffizienz, Leistung und Verfügbarkeit von Ressourcen. Detaillierte Empfehlungen zum Erstellen einer skalierbaren, leistungsstarken und kostengünstigen Inferenzplattform finden Sie unter Übersicht über Best Practices für die Inferenz in der GKE.
Inferenzbeispiele ausprobieren
Hier finden Sie GKE-Bereitstellungsbeispiele für generative KI-Modelle, Beschleuniger und Modellserver. Wenn Sie gerade erst anfangen, empfehlen wir Ihnen, die Anleitung Offene Gemma-Modelle mit GPUs in GKE mit vLLM bereitstellen durchzuarbeiten.
Alternativ können Sie nach einer Anleitung anhand eines Stichworts suchen:
| Beschleuniger | Modellserver | Anleitung |
|---|---|---|
| GPUs | vLLM | LLMs wie DeepSeek-R1 671B oder Llama 3.1 405B in der GKE bereitstellen |
| GPUs | vLLM | Offene Gemma-Modelle mit GPUs in GKE mit vLLM bereitstellen |
| GPUs | vLLM | LLM mit GKE Inference Gateway bereitstellen |
| GPUs | vLLM | Offene LLMs in der GKE mit einer vorkonfigurierten Architektur bereitstellen |
| GPUs | Ray Serve | LLM auf L4-GPUs mit Ray bereitstellen |
| GPUs | TGI | LLM mit mehreren GPUs in der GKE bereitstellen |
| GPUs | TorchServe | T5 mit TorchServe in der GKE bereitstellen |
| TPUs | vLLM | LLM mithilfe von TPU Trillium in der GKE mit vLLM bereitstellen |
| TPUs | vLLM | LLM mithilfe von TPUs in der GKE mit KubeRay bereitstellen |
| TPUs | MaxDiffusion | Stable Diffusion XL (SDXL) mit TPUs in der GKE mit MaxDiffusion bereitstellen |
| TPUs | vLLM | LLMs mithilfe von mehreren Hosts in der GKE mit JetStream und Pathways bereitstellen |
| TPUs | vLLM | Offene LLMs auf TPUs mit einer vorkonfigurierten Architektur bereitstellen |
Nächste Schritte
- Besuchen Sie das Portal für die KI-/ML-Orchestrierung in der GKE, um unsere offiziellen Anleitungen, Tutorials und Anwendungsfälle für die Ausführung von KI-/ML-Arbeitslasten in der GKE zu erkunden.
- In den GKE AI Labs finden Sie experimentelle Beispiele, wie Sie die GKE nutzen können, um Ihre KI-/ML-Initiativen zu beschleunigen.