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 Anwendungen in der realen Welt. 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 Inferenz von KI/ML-Modellen 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.
- Folgen Sie der Anleitung unter Modelle bereitstellen, um ein containerisiertes Modell und einen Modellserver bereitzustellen.
- Lesen Sie Inferenz planen. Dort finden Sie Anleitungen und Ressourcen zum Planen und Ausführen 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 zu verarbeiten.
- Modell: Ein generatives KI-Modell, das Muster aus Daten gelernt hat und für die Inferenz verwendet wird. Die 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 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 Speicher 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.
Vorteile von GKE für die Inferenz
Die Bereitstellung von Inferenzmodellen in GKE bietet mehrere Vorteile:
- Effizientes Preis-Leistungs-Verhältnis:Sie erhalten Wert und 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: Die Leistung lässt sich mit der integrierten Überwachung mithilfe von GKE Inference Gateway, horizontalem Pod-Autoscaling (HPA) und benutzerdefinierten Messwerten skalieren. 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.
- Unterstützung für das Ökosystem: 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 ‑inferenz zu ermöglichen.
Funktionsweise von Inferenz in GKE
In diesem Abschnitt werden die Schritte zur Verwendung von GKE für die Bereitstellung von Inferenzdiensten auf hoher Ebene beschrieben:
Modell in einen Container packen: 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.
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.
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-Clustern aus. Konfigurieren Sie die Pods mit Ihrem Modellserver und Modell, einschließlich LoRA-Adaptern, falls erforderlich.
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.
Inferenzanfragen verarbeiten: Senden Sie Daten im erwarteten Format (JSON, gRPC) von den Anwendungsclients an den Endpunkt Ihres Dienstes. 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.
Inferenz-Deployment skalieren und überwachen: Skalieren Sie die Inferenz mit HPA, um Replikate automatisch basierend auf CPU oder Latenz anzupassen. 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 |
---|---|---|
GKE Inference-Schnellstart (Vorschau) |
Geben Sie Ihre geschäftlichen Anforderungen an und erhalten Sie maßgeschneiderte Best Practices für die Kombination aus Beschleunigern, Skalierungskonfigurationen und Modellservern, die Ihren Anforderungen am besten entspricht. Sie können mit der gcloud CLI auf diesen Dienst zugreifen. Weitere Informationen finden Sie unter Best-Practice-Inferenz mit GKE Inference-Kurzanleitungen ausführen. |
|
GKE Inference Gateway (Vorschau) | Routing basierend auf Messwerten wie der KV-Cache-Auslastung für eine bessere Latenz. Weitere Informationen finden Sie unter GKE Inference Gateway. |
|
Beschleuniger für das Laden von Modellgewichten | Mit Cloud Storage FUSE und Caching und parallelen Downloads können Sie schnell auf Daten in Cloud Storage zugreifen. Für Inferenz-Arbeitslasten, die eine konsistente Scale-out-Leistung erfordern, ist Google Cloud Hyperdisk ML ein netzgebundenes Laufwerk, das an bis zu 2.500 Pods angehängt werden kann. |
|
Inferenz planen
In diesem Abschnitt werden einige der wichtigsten Aspekte behandelt, die Sie für Ihre Inferenzarbeitslasten in GKE berücksichtigen sollten.
Kosteneffizienz
Die Bereitstellung großer generativer KI-Modelle kann aufgrund der Verwendung von Beschleunigern teuer sein. Sie sollten daher auf eine effiziente Ressourcennutzung achten. Die Auswahl des richtigen Maschinentyps und Beschleunigers ist entscheidend, damit der Beschleunigerspeicher der Modellgröße und dem Quantisierungsgrad entspricht. G2-Instanzen mit NVIDIA L4-GPUs können beispielsweise für kleinere Modelle kostengünstig sein, während A3-Instanzen besser für größere Modelle geeignet sind.
Mit diesen Tipps und Empfehlungen können Sie die Kosteneffizienz maximieren:
- Mit dem Inference Quickstart erhalten Sie die empfohlenen Beschleuniger basierend auf Ihren Leistungsanforderungen.
- Mit Techniken wie Quantisierung und Batching von Anfragen lässt sich die Effizienz der Bereitstellung verbessern. Weitere Informationen finden Sie unter Best Practices für die Optimierung von Inferenzen für LLMs mit GPUs.
Verwenden Sie Autoscaling, um Ressourcen dynamisch an die Nachfrage anzupassen. Das kann zu Kosteneinsparungen führen, insbesondere bei schwankenden Arbeitslasten. Weitere Informationen finden Sie in den folgenden Anleitungen:
Leistung
Um die Inferenzleistung in GKE zu optimieren, sollten Sie sich auf die folgenden Benchmark-Messwerte konzentrieren:
Benchmark-Indikatoren | Messwert (Einheit) | Beschreibung |
---|---|---|
Latenz | Time to First 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 hohen Prefill-Zeiten mit solchen mit hohen Decodierungszeiten vergleichen. |
Hier sind einige zusätzliche Tipps und Empfehlungen zur Leistung:
- Wenn Sie die empfohlenen Beschleuniger basierend auf Ihren Leistungsanforderungen abrufen möchten, verwenden Sie den Inference-Schnellstart.
- Um die Leistung zu steigern, können Sie Optimierungstechniken für Modellserver wie Batching und PagedAttention verwenden, die in unserem Leitfaden mit Best Practices beschrieben werden. Priorisieren Sie außerdem ein effizientes Arbeitsspeicher-Management und die Berechnung der Aufmerksamkeit, um eine gleichbleibend niedrige Latenz zwischen den Tokens zu erzielen.
- Verwenden Sie standardisierte Messwerte für alle Modellserver (z. B. Hugging Face TGI, vLLM oder NVIDIA Triton), um Autoscaling und Lastenausgleich zu verbessern. So können Sie einen höheren Durchsatz bei der von Ihnen gewählten Latenz erzielen. GKE bietet automatische Anwendungsüberwachung für mehrere Modellserver.
- Verwenden Sie GKE-Netzwerkinfrastrukturfunktionen wie Inference Gateway, um die Latenz zu minimieren.
Verwenden Sie Cloud Storage FUSE mit parallelen Downloads und Caching oder Hyperdisk ML, um das Laden von Modellgewichtungen aus dem persistenten Speicher zu beschleunigen.
Verwenden Sie für umfangreiches Training oder Inferenz Pathways. Pathways vereinfacht umfangreiche ML-Berechnungen, da ein einzelner JAX-Client Arbeitslasten über mehrere große TPU-Slices hinweg orchestrieren kann. Weitere Informationen finden Sie unter Pathways.
Verfügbarkeit
Die Verfügbarkeit von Ressourcen (CPUs, GPUs und TPUs) ist entscheidend für die Leistung, Verfügbarkeit und Kosteneffizienz Ihrer Inferenzarbeitslasten. Inferenz-Arbeitslasten weisen oft sprunghafte und unvorhersehbare Traffic-Muster auf, die die Hardwarekapazität belasten können. GKE bietet mit Features wie den folgenden Lösungen für diese Herausforderungen:
- Optionen für den Ressourcenverbrauch: Wählen Sie aus Optionen wie Reservierungen für garantierte Kapazität, kostengünstige Skalierung, Dynamic Workload Scheduler und Spot-VMs zur Kostenoptimierung und On-Demand-Zugriff für sofortige Verfügbarkeit.
- Ressourcenoptimierung: Google Cloud bietet beispielsweise kleinere A3-High-VMs mit NVIDIA H100-GPUs (1g, 2g oder 4g) für kostengünstige generative KI-Inferenzskalierung, die Spot-VMs unterstützen.
- Compute-Klassen für Beschleuniger: Mit benutzerdefinierten Compute-Klassen können Sie die Bereitstellung genauer steuern, um eine Überbereitstellung zu vermeiden und die Verfügbarkeit von Ressourcen mit automatischen Fallback-Optionen zu maximieren.
Knotenupgrades
GKE automatisiert einen Großteil des Upgradevorgangs. Sie müssen jedoch Upgradestrategien berücksichtigen, insbesondere für Kompatibilität und Tests. Bei manuellen Upgrades können Sie je nach Toleranz Ihrer Inferenzarbeitslast für Unterbrechungen zwischen Surge- oder Blau/Grün-Upgrades wählen. Surge-Upgrades sind schnell, können aber Dienste kurzzeitig beeinträchtigen. Blau/Grün-Upgrades bieten Ausfallzeiten, die praktisch ohne Ausfallzeiten sind, was für die Echtzeitinferenz entscheidend ist. Weitere Informationen finden Sie unter Strategien für das Knotenupgrade.
GPUs und TPUs unterstützen keine Live-Migration. Daher müssen Pods für die Wartung neu gestartet werden. GKE-Benachrichtigungen verwenden, um sich auf Unterbrechungen vorzubereiten Wir empfehlen, Budgets für Pod-Störungen (Pod Disruption Budgets, PDBs) zu verwenden, um sicherzustellen, dass eine Mindestanzahl an Pods verfügbar bleibt. Achten Sie darauf, dass Ihre Pods die Beendigung ordnungsgemäß verarbeiten können. TPU-Slices können durch Ereignisse mit einem einzelnen Host unterbrochen werden. Planen Sie daher Redundanz ein. Weitere Best Practices finden Sie unter GKE-Knotenunterbrechungen für GPUs und TPUs verwalten.
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.
Alternativ können Sie nach einem Tutorial anhand eines Stichworts suchen:
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.
- Weitere Informationen zur Optimierung der Bereitstellung von Modellen finden Sie unter Best Practices für die Optimierung von Inferenzen für LLMs mit GPUs. Darin werden Best Practices für die Bereitstellung von LLMs mit GPUs in GKE behandelt, z. B. Quantisierung, Tensorparallelität und Arbeitsspeicherverwaltung.
- In GKE AI Labs finden Sie experimentelle Beispiele für die Nutzung von GKE zur Beschleunigung Ihrer KI-/ML-Initiativen.