Dieses Dokument ist der erste Teil einer Reihe, die sich an ML-Entwickler (Machine Learning) richtet, die GKE noch nicht kennen und so schnell wie möglich Inferenzarbeitslasten in GKE ausführen möchten.
In dieser Reihe werden wir nicht versuchen, Ihnen alle verfügbaren GKE-Optionen beizubringen. Stattdessen stellen wir Ihnen die grundlegenden Informationen zur Verfügung, die Sie benötigen, um Ihre Arbeitslasten in GKE zu nutzen. Diese Reihe umfasst die folgenden Dokumente:
- Vorteile von GKE für die KI-/ML-Inferenz (dieses Dokument)
- KI‑/ML-Modellinferenz in GKE
- Vereinfachte Konzepte für die automatische Skalierung für KI-/ML-Arbeitslasten in GKE
Als KI‑/ML-Experte können Sie Google Kubernetes Engine (GKE) verwenden, um Ihre Modellbereitstellungen zu verwalten. GKE ist ein Dienst, mit dem Sie die Bereitstellung, Skalierung und Überwachung Ihrer Kubernetes-basierten Inferenzarbeitslasten und der Recheninfrastruktur, auf der Ihre Arbeitslasten ausgeführt werden, automatisieren können. In diesem Dokument werden einige der wichtigsten Vorteile der Verwendung von GKE für die Modellinferenz beschrieben, darunter:
- Konstante Anwendungsleistung
- Optimierter Zugriff auf spezielle Hardware für die Inferenz
- Automatisches Skalieren von Inferenzarbeitslasten
- Automatisiertes Monitoring und Logging von Arbeitslastleistung und -zustand
- Portabilität und Flexibilität durch die Verwendung offener Standards und Open-Source-Technologien
Hinweise
Bevor Sie dieses Dokument lesen, sollten Sie mit Folgendem vertraut sein:
- Grundlegende Kubernetes-Konzepte: Hier erfahren Sie mehr über Container, Pods, Knoten und Cluster und wie sie zusammenhängen.
- GKE-Betriebsmodi: Hier erfahren Sie mehr über Autopilot- und Standard-GKE-Cluster, ihre Anwendungsfälle und ihre Unterschiede.
Modelle für eine konsistente Leistung verpacken
Eine konsistente und zuverlässige Modellinferenz ist für Ihre KI-Anwendung von entscheidender Bedeutung. Mit GKE lässt sich die operative Komplexität der Verwaltung von Inferenzen im großen Maßstab reduzieren. Wenn Sie Ihr trainiertes Modell, den Inferenzserver und alle Abhängigkeiten in einem Container verpacken, erstellen Sie ein standardisiertes, portables Artefakt, das in GKE konsistent ausgeführt wird. Die Containerisierung trägt dazu bei, Fehler zu reduzieren, die durch nicht übereinstimmende Abhängigkeiten oder inkonsistente Umgebungen verursacht werden. GKE stellt diese Container automatisch bereit und verwaltet sie. Sie übernimmt Aufgaben wie das Neustarten abstürzender Arbeitslasten oder das erneute Bereitstellen von Ressourcen, um die Leistung Ihrer KI-/ML-Arbeitslasten zu stabilisieren.
GPUs und TPUs verwenden, um die Bereitstellungslatenz zu reduzieren
Latenz ist ein Problem für Inferenz-Arbeitslasten. Einige komplexe Modelle sind auf Hardwarebeschleuniger wie GPUs und TPUs angewiesen, um die Inferenzbereitstellung zu beschleunigen. GKE vereinfacht die Verwendung von GPUs oder TPUs für Ihre latenzempfindlichen Inferenzarbeitslasten. Sie wählen die spezifischen Hardwarekonfigurationen aus, die Ihren Anforderungen an Leistung und Kosten am besten entsprechen. GKE stellt die von Ihnen ausgewählte Hardware automatisch bereit und verwaltet sie. In GKE wird beispielsweise die Installation von NVIDIA-Treibern automatisiert. In Kubernetes ist für diesen Schritt normalerweise eine manuelle Konfiguration erforderlich.
GKE bietet auch Funktionen zur Ressourcenverwaltung, damit Sie TPU- und GPU-Ressourcen für die Inferenzbereitstellung effizienter nutzen können. Sie können beispielsweise GKE verwenden, um GPU- oder TPU-Pools für mehrere Modelle zu planen oder freizugeben. Alternativ können Sie Beschleuniger mit Spot-VMs verwenden, um die Kosteneffizienz für fehlertolerante Inferenzarbeitslasten zu steigern. Mit diesen Funktionen können Sie die Nutzung von Beschleunigerressourcen maximieren und gleichzeitig die Latenz und die Kosten optimieren.
Schwankende Trafficmuster automatisch verarbeiten
Traffic und Last bei Echtzeit-Inferenzarbeitslasten können unvorhersehbar und dynamisch sein. Eine erhöhte Nachfrage kann zu einer höheren Latenz und einer geringeren Leistung führen. GKE bietet einen mehrschichtigen Ansatz für das Autoscaling, sodass Sie automatisch Ressourcen hinzufügen oder entfernen können, um den variablen Bedarf an Inferenz zu decken. Sie können beispielsweise das horizontale Pod-Autoscaling (HPA) verwenden, um die Anzahl der Pods in einer Bereitstellung automatisch anzupassen, oder das Cluster-Autoscaling, um die Anzahl der Knoten in einem vorhandenen Knotenpool automatisch anzupassen. Mit den GKE-Autoscaling-Funktionen können Sie die Menge der Ressourcen, die für Ihre Inferenzarbeitslast erforderlich sind, effizient an die Anwendungsanforderungen anpassen.
Zustand und Leistung Ihrer Inferenzarbeitslast überwachen
GKE ist in die Google Cloud Observability-Suite (Cloud Logging und Cloud Monitoring) eingebunden. Sie können integrierte Observability-Funktionen verwenden, um den Zustand und die Leistung Ihrer Inferenzarbeitslasten zu überwachen. Diese Beobachtbarkeitsfunktionen geben Ihnen Einblick in die Leistung Ihrer Arbeitslast nach der Bereitstellung. Sie fragen sich vielleicht, ob Ihr Modell wie erwartet funktioniert oder ob Ihre Arbeitslast Ihre Anforderungen an Latenz und Genauigkeit erfüllt.
GKE meldet automatisch Infrastrukturmesswerte wie CPU-, Arbeitsspeicher- und Accelerator-Auslastung. Wenn Sie Fragen zur modellspezifischen Leistung beantworten möchten, können Sie Google Cloud Managed Service for Prometheus verwenden oder benutzerdefinierte Messwerte aus Ihrer Inferenzanwendung an Cloud Monitoring senden. Sie können beispielsweise automatisches Anwendungsmonitoring konfigurieren und wichtige Inferenzmesswerte wie Anfragen pro Sekunde (Requests per Second, RPS) überwachen. Außerdem können Sie Konzeptabweichungen analysieren, indem Sie modellspezifische Messwerte wie die Verteilung der Eingabedaten im Blick behalten. Probleme lassen sich durch die Analyse von Verlaufslogs beheben.
GKE für Portabilität und Flexibilität verwenden
Durch die Verwendung offener Standards wie Container und Open-Source-Technologien wie Kubernetes bietet GKE Ihnen die Freiheit, Ihre Inferenz-Serving-Arbeitslasten an verschiedene Orte zu verschieben und verschiedene Ressourcen und Tools zu verwenden, wenn sich Ihre Anforderungen ändern. Sie können Ihre Inferenzanwendung beispielsweise in GKE entwickeln und testen und dann dieselbe containerisierte Anwendung für die Produktion in Ihrer lokalen Umgebung bereitstellen.
Zusammenfassend lässt sich sagen, dass Sie mit GKE den Übergang Ihrer KI-/ML-Modelle von der Entwicklung zur Produktion optimieren können. GKE übernimmt viele der komplexen Aufgaben, die mit der Infrastrukturverwaltung verbunden sind. So können Sie sich darauf konzentrieren, Ihre Inferenzarbeitslasten in einer leistungsstarken, skalierbaren und beobachtbaren Umgebung auszuführen. In dieser Reihe erfahren Sie, wie Sie mit GKE Ihre KI-/ML-Modelle in leistungsstarke, produktionsreife Anwendungen umwandeln können.
Nächste Schritte
- KI‑/ML-Modellinferenz in GKE (nächstes Dokument in dieser Reihe)
- Modell mit einer einzelnen GPU in GKE bereitstellen
- Offene LLMs in GKE mit einer vorkonfigurierten Architektur bereitstellen