Vorteile von GKE für KI/ML-Inferenz

Dieses Dokument ist der erste Teil einer Reihe, die sich an ML-Ingenieure richtet, die noch keine Erfahrung mit Google Kubernetes Engine (GKE) haben und so schnell wie möglich Inferenz-Arbeitslasten 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 auszuführen. Diese Reihe umfasst die folgenden Dokumente:

Als KI‑/ML-Plattformentwickler können Sie 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:

Hinweis

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 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 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 von abstürzenden 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 latenzsensitiven Inferenzarbeitslasten, indem die Hardwarebereitstellung und -verwaltung vereinfacht werden. Sie wählen die spezifischen Hardwarekonfigurationen aus, die Ihren Anforderungen an Leistung und Kosten am besten entsprechen, und GKE stellt automatisch Knoten mit der von Ihnen ausgewählten Hardware bereit, um Ihre Arbeitslasten auszuführen. GKE automatisiert auch Einrichtungsschritte, die in Kubernetes normalerweise eine manuelle Konfiguration erfordern, z. B. die Installation von NVIDIA-Treibern. Wenn Sie die Knotenkonfiguration genauer steuern möchten, können Sie benutzerdefinierte Compute-Klassen verwenden, um spezifische, wiederverwendbare Hardwareprofile zu erstellen, die GKE bei der Bereitstellung von Knoten verwendet.

GKE bietet auch Funktionen zur Ressourcenverwaltung, damit Sie TPU- und GPU-Ressourcen für die Inferenzbereitstellung effizienter nutzen können. Sie können beispielsweise die GPU-Auslastung verbessern, indem Sie mehrere Modelle auf einem einzelnen GPU-Server hosten und dabei GPUs gemeinsam nutzen. Oder Sie können die Kosten für fehlertolerante Inferenzjobs senken, indem Sie sie auf Spot-VMs mit Beschleunigern ausführen. Für kleine bis mittelgroße Arbeitslasten mit schwankenden Anforderungen oder kurzer Dauer können Sie Flex-Start verwenden. Diese Funktion bietet eine flexible und kostengünstige Methode zum Nutzen spezieller Rechenressourcen wie GPUs oder TPUs. 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. Ein Anstieg der Nachfrage kann zu einer erhöhten Latenz und einer geringeren Leistung führen. GKE bietet einen mehrschichtigen Ansatz für das Autoscaling, sodass Sie Ressourcen automatisch 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 einem Deployment automatisch anzupassen, oder den Cluster Autoscaler, um die Anzahl der Knoten in einem vorhandenen Knotenpool automatisch anzupassen. Mit den Autoscaling-Funktionen von GKE können Sie die Menge an Ressourcen, die für Ihre Inferenzarbeitslast erforderlich ist, 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 die Integrität und Leistung Ihrer Inferenzarbeitslasten zu überwachen. Diese Beobachtbarkeitsfunktionen bieten Ihnen Einblicke und Transparenz 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 Beschleunigerauslastung. 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 modellbezogene Messwerte wie die Verteilung der Eingabedaten untersuchen, und Probleme beheben, indem Sie historische Logs analysieren.

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 Möglichkeit, Ihre Arbeitslasten für die Inferenzbereitstellung an verschiedene Orte zu verschieben und unterschiedliche Ressourcen und Tools zu verwenden, wenn sich Ihre Anforderungen ändern. Sie können Ihre Inferenzanwendung beispielsweise in GKE entwickeln und testen und dann dieselbe Containeranwendung 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