KI‑/ML-Modellinferenz in GKE

Auf dieser Seite werden die wichtigsten Konzepte, Vorteile und Schritte für die Ausführung von Arbeitslasten für die Inferenz generativer KI-/ML-Modelle in Google Kubernetes Engine (GKE) mit GKE Gen AI-Funktionen beschrieben.

Die Bereitstellung von Inferenzanfragen ist entscheidend für die Bereitstellung Ihrer generativen KI-Modelle für reale Anwendungen. GKE bietet eine robuste und skalierbare Plattform für die Verwaltung Ihrer containerisierten Arbeitslasten und ist daher eine attraktive Option für die Bereitstellung Ihrer Modelle in der Entwicklung oder Produktion. Mit GKE können Sie die Funktionen von Kubernetes für Orchestrierung, Skalierung und Hochverfügbarkeit nutzen, um Ihre Inferenzdienste effizient bereitzustellen und zu verwalten.

Google Cloud hat die besonderen Anforderungen von KI-/ML-Inferenz erkannt und GKE Gen AI-Funktionen eingeführt – eine Reihe von Funktionen,die speziell für die Verbesserung und Optimierung der Inferenzbereitstellung in GKE entwickelt wurden. Weitere Informationen zu den einzelnen Funktionen finden Sie unter GKE-Funktionen für generative KI.

Erste Schritte mit der KI-/ML-Modellinferenz in GKE

Sie können in wenigen Minuten anfangen, die KI/ML-Modellinferenz in GKE kennenzulernen. Sie können die kostenlose Stufe von GKE verwenden, um mit Kubernetes zu beginnen, ohne dass Kosten für die Clusterverwaltung anfallen.

  1. Zur Seite „GKE AI/ML“ in der Google Cloud Console

  2. Folgen Sie der Anleitung unter Modelle bereitstellen, um ein containerisiertes Modell und einen Modellserver bereitzustellen.
  3. 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 in Bezug auf die Inferenz in GKE verwendet:

  • Inferenz: Der Prozess, bei dem ein generatives KI-Modell wie ein großes Sprachmodell oder ein Diffusionsmodell in einem GKE-Cluster ausgeführt wird, um aus Eingabedaten Text, Einbettungen oder andere Ausgaben zu generieren. Bei der Modellinferenz in GKE werden Beschleuniger verwendet, um komplexe Berechnungen für die Echtzeit- oder Batchverarbeitung effizient auszuführen.
  • 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 riesigen neuronalen Netzwerken mit mehreren Milliarden Parametern, die für verschiedene Sprachaufgaben optimiert sind.
  • Modellserver: Ein containerisierter Dienst, der für den Empfang von Inferenzanfragen und die Rückgabe von Inferenzen zuständig ist. Dieser Dienst kann eine Python-App 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 Inferenzanfragen effizient zu beantworten.
  • Beschleuniger: Spezialisierte Hardware wie Grafikprozessoren (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 Modellgewichte und Aktivierungen von Datentypen mit höherer Genauigkeit in Datentypen mit niedrigerer Genauigkeit konvertiert werden.

Vorteile von GKE für die Inferenz

Das Bereitstellen von Inferenzmodellen in GKE bietet mehrere Vorteile:

  • Effizientes Preis-Leistungs-Verhältnis:Sie erhalten ein gutes Preis-Leistungs-Verhältnis und hohe Geschwindigkeit für Ihre Anforderungen an die Inferenzbereitstellung. Mit GKE können Sie aus einer Reihe leistungsstarker Beschleuniger (GPUs und TPUs) auswählen und zahlen so nur für die Leistung, die Sie benötigen.
  • Schnellere Bereitstellung: Beschleunigen Sie die Markteinführung mit maßgeschneiderten Best Practices, Qualifikationen und Best Practices, die von GKE Gen AI-Funktionen bereitgestellt werden.
  • Skalierbare Leistung: Skalieren Sie die Leistung mit der integrierten Überwachung mithilfe von GKE Inference Gateway, horizontalem Pod-Autoscaling (HPA) und benutzerdefinierten Messwerten. 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 voller 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 von GKE, das Tools wie Kueue für die erweiterte Ressourcenwarteschlange und -verwaltung sowie Ray für verteiltes Computing unterstützt, um skalierbares und effizientes Modelltraining und ‑inferencing zu ermöglichen.

Funktionsweise der Inferenz in GKE

In diesem Abschnitt werden die Schritte zur Verwendung von GKE für die Bereitstellung von Inferenzanfragen beschrieben:

  1. 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 aufgeteilt werden kann. Stellen Sie ein Modell bereit, indem Sie den Modellserver (z. B. vLLM) in einen Container packen und Modellgewichte aus Cloud Storage oder einem Repository wie Hugging Face laden. Wenn Sie die GKE Inference-Kurzanleitung verwenden, wird das containerisierte Image automatisch im Manifest für Sie verwaltet.

  2. GKE-Cluster erstellen: Erstellen Sie einen GKE-Cluster, um Ihr Deployment zu hosten. Wählen Sie „Autopilot“ für eine verwaltete Umgebung oder „Standard“ für die Anpassung aus. Konfigurieren Sie die Clustergröße, Knotentypen und Beschleuniger. Eine optimierte Konfiguration finden Sie in der Kurzanleitung für die Inferenz.

  3. Modell als Kubernetes-Deployment bereitstellen: Erstellen Sie ein Kubernetes-Deployment, um den 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.

  4. Inferenzdienst zur Verfügung stellen: Machen Sie Ihren Inferenzdienst zugänglich, indem Sie einen Kubernetes-Dienst erstellen, um einen Netzwerkendpunkt für Ihr Deployment bereitzustellen. Verwenden Sie Inference Gateway für intelligentes Load-Balancing und Routing, das speziell auf generative KI-Inferenz-Arbeitslasten zugeschnitten ist. Verwenden Sie Inference Gateway für intelligentes Load-Balancing, das auf generative KI-Arbeitslasten zugeschnitten ist. Alternativ können Sie auch die Vergleichstabelle für Load-Balancing-Strategien aufrufen, um die beste Option für Ihre Anforderungen auszuwählen.

  5. Inferenzanfragen verarbeiten: Senden Sie Daten von den Anwendungsclients an den Endpunkt Ihres Dienstes im erwarteten Format (JSON, gRPC). Wenn Sie einen Load Balancer verwenden, werden Anfragen auf Modellreplikate verteilt. Der Modellserver verarbeitet die Anfrage, führt das Modell aus und gibt die Inferenz zurück.

  6. Inferenz-Deployment skalieren und überwachen: Skalieren Sie die Inferenz mit HPA, um Replikate automatisch basierend auf CPU 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 basierend auf beobachteten Messwerten wie der CPU-Auslastung oder benutzerdefinierten Messwerten erhöht oder verringert. Verwenden Sie die Kurzanleitung für die Inferenz, um automatisch generierte Empfehlungen für die Skalierung zu erhalten. Verwenden Sie Cloud Monitoring und Cloud Logging mit integrierter Observability, um die Leistung zu verfolgen. Dazu gehören Dashboards für beliebte Modellserver wie vLLM.

Ausführliche Beispiele mit bestimmten Modellen, Modellservern und Beschleunigern finden Sie unter Inference-Beispiele.

GKE-Funktionen für generative KI

Sie können diese Funktionen zusammen oder einzeln verwenden, um wichtige Herausforderungen beim Bereitstellen generativer KI-Modelle zu bewältigen und die Ressourcennutzung in Ihrer GKE-Umgebung zu verbessern – ohne zusätzliche Kosten.

Name Beschreibung Vorteile
Kurzanleitung für GKE Inference

Leistung und Kosteneffizienz Ihrer Inferenzarbeitslasten analysieren Geben Sie Ihre geschäftlichen Anforderungen an und erhalten Sie maßgeschneiderte Best Practices für die Kombination aus Beschleunigern, Skalierungs- und Speicherkonfigurationen sowie Modellservern, die Ihren Anforderungen am besten entsprechen. Sie können mit der gcloud CLI und der Google Cloud Console auf diesen Dienst zugreifen.

Weitere Informationen finden Sie unter Leistung und Kosten von Modellbereitstellung mit GKE Inference analysieren.

  • Sie sparen Zeit, da die ersten Schritte zum Auswählen und Konfigurieren Ihrer Infrastruktur automatisiert werden.
  • Sie behalten die volle Kontrolle über Ihre Kubernetes-Einrichtung und können sie weiter optimieren.
GKE Inference Gateway

Routing basierend auf Messwerten wie der KV-Cache-Auslastung für eine bessere Latenz.

Weitere Informationen finden Sie unter GKE Inference Gateway.

  • Geben Sie feinabgestimmte Modelle frei, die LoRA-Dateien verwenden, mit affinitätsbasierter Endpunktauswahl für Kosteneffizienz.
  • Hohe Verfügbarkeit durch dynamischen Zugriff auf GPU- und TPU-Kapazität in verschiedenen Regionen
  • Sicherheit Ihrer Modelle mit Model Armor-Add-on-Richtlinien verbessern
Beschleuniger für das Laden von Modellgewichten

Mit Cloud Storage FUSE mit Caching und parallelen Downloads können Sie schnell auf Daten in Cloud Storage zugreifen. 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.

  • Optimieren Sie die Inferenz-Startzeit, indem Sie die Latenz beim Laden von Gewichten in GKE minimieren.
  • Bei Bereitstellungen mit eingeschränkter Knotenskalierung sollten Sie Cloud Storage FUSE verwenden, um Modellgewichte bereitzustellen.
  • Für Inferenzarbeitslasten, die eine konsistente Scale-out-Leistung erfordern, unterstützt Google Cloud Managed Lustre den Dateizugriff mit hohem Durchsatz und niedriger Latenz von mehreren Pods gleichzeitig.
  • Für Szenarien mit massivem Umfang, die einen konsistenten Zugriff mit geringer Latenz auf große Modellgewichte erfordern, bietet Google Cloud Hyperdisk ML eine dedizierte Blockspeicherlösung.

Leistungsmesswerte für die Inferenz

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 GKE beschrieben.

Benchmark-Indikatoren Messwert (Einheit) Beschreibung
Latenz Zeit bis zum ersten Token (TTFT) (ms) Die Zeit, die benötigt wird, um das erste Token für eine Anfrage zu generieren.
Normalisierte Zeit pro Ausgabetoken (NTPOT) (ms) Anfragelatenz, normalisiert nach der Anzahl der Ausgabetokens, gemessen als request_latency / total_output_tokens.
Zeit pro Ausgabetoken (TPOT) (ms) Die Zeit, die zum Generieren eines Ausgabetokens benötigt wird, gemessen als (request_latency - time_to_first_token) / (total_output_tokens - 1).
Latenz zwischen Tokens (ITL) (ms) Misst die Latenz zwischen zwei Ausgabetoken-Generationen. Im Gegensatz zu TPOT, bei dem die Latenz für die gesamte Anfrage gemessen wird, wird bei ITL die Zeit gemessen, die zum Generieren jedes einzelnen Ausgabetokens benötigt wird. Diese einzelnen Messungen werden dann zusammengefasst, um Mittelwert, Median und Perzentilwerte wie p90 zu ermitteln.
Anfragelatenz (ms) End-to-End-Zeit zum Abschließen einer Anfrage.
Durchsatz Anfragen pro Sekunde Die Gesamtzahl der Anfragen, die Sie pro Sekunde verarbeiten. Dieser Messwert ist möglicherweise keine zuverlässige Methode zur Messung des LLM-Durchsatzes, 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. Bei diesem Messwert werden sowohl Eingabe- als auch Ausgabetokens gezählt. So können Sie Arbeitslasten mit langen Zeiten für das Prefill und das Decodieren vergleichen.

Inferenz planen

Für eine erfolgreiche Bereitstellung von Inferenzmodellen ist eine sorgfältige Planung in mehreren wichtigen Bereichen erforderlich, darunter Kosteneffizienz, Leistung und Verfügbarkeit von Ressourcen. Detaillierte Empfehlungen zum Erstellen einer skalierbaren, leistungsstarken und kosteneffizienten Inferenzplattform finden Sie unter Übersicht über Best Practices für Inferenz in GKE.

Beispiele für Inferenzen ausprobieren

Hier finden Sie GKE-Bereitstellungsbeispiele für generative KI-Modelle, Beschleuniger und Modellserver. Wenn Sie gerade erst anfangen, empfehlen wir Ihnen, sich die Anleitung Offene Gemma-Modelle mit GPUs in GKE mit vLLM bereitstellen anzusehen.

Oder suchen Sie mit einem Stichwort nach einer Anleitung:

Beschleuniger Modellserver Anleitung
GPUs vLLM LLMs wie DeepSeek-R1 671B oder Llama 3.1 405B in 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 GKE mit einer vorkonfigurierten Architektur bereitstellen 
GPUs Ray Serve LLM auf L4-GPUs mit Ray bereitstellen
GPUs TGI LLM mit mehreren GPUs in GKE bereitstellen
GPUs TorchServe T5 in GKE mit TorchServe bereitstellen 
TPUs vLLM LLM mithilfe von TPU Trillium in GKE mit vLLM bereitstellen
TPUs vLLM LLM mithilfe von TPUs in GKE mit KubeRay bereitstellen 
TPUs MaxDiffusion Stable Diffusion XL (SDXL) mit TPUs in GKE mit MaxDiffusion bereitstellen
TPUs vLLM LLMs mit mehreren Hosts bereitstellen 
TPUs vLLM Offene LLMs auf TPUs mit einer vorkonfigurierten Architektur bereitstellen 

Nächste Schritte

  • Im Portal zur KI‑/ML-Orchestrierung in GKE finden Sie unsere offiziellen Anleitungen, Tutorials und Anwendungsfälle für die Ausführung von KI‑/ML-Arbeitslasten in GKE.
  • In GKE AI Labs finden Sie experimentelle Beispiele dafür, wie Sie GKE nutzen können, um Ihre KI-/ML-Initiativen zu beschleunigen.