Vorteile von GKE für KI/ML-Inferenz

Dieses Dokument ist der erste Teil einer Reihe, die sich an ML-Entwickler (Machine Learning) richtet, die noch keine Erfahrung mit der Google Kubernetes Engine (GKE) haben und so schnell wie möglich Inferenzarbeitslasten in der GKE ausführen möchten.

In dieser Reihe werden wir nicht alle verfügbaren GKE-Optionen behandeln. Stattdessen stellen wir Ihnen die grundlegenden Informationen zur Verfügung, die Sie benötigen, um Ihre Arbeitslasten in der GKE auszuführen. Diese Reihe umfasst die folgenden Dokumente:

Als KI-/ML-Plattformentwickler können Sie mit der GKE Ihre Modellbereitstellungen verwalten. Die GKE ist ein Dienst, mit dem Sie die Bereitstellung, Skalierung und Überwachung Ihrer Kubernetes-basierten Inferenzarbeitslasten und der Computerinfrastruktur, auf der Ihre Arbeitslasten ausgeführt werden, automatisieren können. In diesem Dokument werden einige der wichtigsten Vorteile der Verwendung der GKE für die Modellinferenz behandelt, darunter:

Hinweis

Bevor Sie dieses Dokument lesen, sollten Sie mit Folgendem vertraut sein:

  • Grundlegende Kubernetes-Konzepte: Informationen zu Containern, Pods, Knoten und Clustern und wie sie zueinander in Beziehung stehen.
  • GKE-Betriebsmodi: Informationen zu Autopilot- und Standard-GKE Clustern, ihren Anwendungsfällen und Unterschieden.

Modelle für konsistente Leistung verpacken

Eine konsistente und zuverlässige Modellinferenz ist entscheidend für Ihre KI-Anwendung. Mit der GKE können Sie die betriebliche Komplexität der Inferenzverwaltung im großen Maßstab reduzieren. Wenn Sie Ihr trainiertes Modell, den Inferenzserver und alle Abhängigkeiten in einem Containerverpacken, erstellen Sie ein standardisiertes, portables Artefakt, das in der GKE ausgeführt wird. Die Containerisierung trägt dazu bei, Fehler zu reduzieren, die durch nicht übereinstimmende Abhängigkeiten oder inkonsistente Umgebungen verursacht werden. Die 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 Inferenzarbeitslasten. Einige komplexe Modelle verwenden Hardwarebeschleuniger wie GPUs und TPUs, um die Inferenzbereitstellung zu beschleunigen. Die GKE vereinfacht die Verwendung von GPUs oder TPUs für Ihre latenzempfindlichen Inferenzarbeitslasten, indem sie die Hardwarebereitstellung und -verwaltung vereinfacht. Sie wählen die spezifischen Hardwarekonfigurationen aus, die am besten zu Ihren Leistungs- und Kostenanforderungen passen. Die GKE stellt dann automatisch Knoten mit der ausgewählten Hardware bereit, um Ihre Arbeitslasten auszuführen. Die GKE automatisiert auch Einrichtungsschritte, die in Kubernetes normalerweise eine manuelle Konfiguration erfordern, z. B. die Installation von NVIDIA-Treibern. Wenn Sie die Knoten konfiguration genauer steuern möchten, können Sie benutzerdefinierte Compute-Klassen verwenden, um spezifische, wiederverwendbare Hardwareprofile zu erstellen, die die GKE bei der Bereitstellung von Knoten verwendet.

Die GKE bietet auch Funktionen zur Ressourcenverwaltung, mit denen Sie TPU- und GPU-Ressourcen effizienter für die Inferenzbereitstellung nutzen können. Sie können beispielsweise die GPU-Auslastung verbessern, indem Sie mehrere Modelle auf einem einzelnen GPU Server hosten (GPU Freigabe), oder 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-Startverwenden. Dies ist eine flexible und kostengünstige Methode, um spezielle Computeressourcen wie GPUs oder TPUs zu nutzen. Mit diesen Funktionen können Sie die Nutzung von Beschleunigerressourcen maximieren und gleichzeitig die Bereitstellungslatenz 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. Die GKE bietet einen mehrschichtigen Ansatz für das Autoscaling, mit dem Sie automatisch Ressourcen hinzufügen oder entfernen können, um die variable Inferenznachfrage zu decken. Sie können beispielsweise den Horizontal Pod Autoscaler (HPA) verwenden, um die Anzahl der Pods in einer Bereitstellung automatisch anzupassen, oder den Cluster Autoscaler verwenden, um die Anzahl der Knoten in einem vorhandenen Knotenpool automatisch anzupassen. Mit den Autoscaling-Funktionen der GKE können Sie die Menge der Ressourcen, die Ihre Inferenzarbeitslast benötigt, effizient an die Anwendungsnachfrage anpassen.

Zustand und Leistung Ihrer Inferenzarbeitslast überwachen

Die GKE ist in die Google Cloud Beobachtbarkeits-Suite (Cloud Logging und Cloud Monitoring) eingebunden. Sie können die integrierten Beobachtbarkeitsfunktionen verwenden, um Zustand 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.

Die GKE meldet automatisch Infrastrukturmesswerte wie CPU-, Arbeitsspeicher- und Beschleunigernutzung. Um Fragen zur modellspezifischen Leistung zu beantworten, können Sie Google Cloud Managed Service for Prometheus verwenden oder benutzerdefinierte Messwerte aus Ihrer Inferenzanwendung an Cloud Monitoring senden. Sie können beispielsweise die automatische Anwendungsüberwachung konfigurieren und wichtige Inferenzmesswerte wie Anfragen pro Sekunde (Requests per Second, RPS) überwachen. Sie können das Konzept-Drift überwachen, indem Sie modellspezifische Messwerte wie die Verteilung der Eingabedaten analysieren, und Probleme beheben, indem Sie historische Loganalysen durchführen.

GKE für Portabilität und Flexibilität verwenden

Durch die Verwendung offener Standards wie Container und Open-Source-Technologien wie Kubernetes bietet Ihnen die GKE die Möglichkeit, Ihre Inferenzbereitstellungsarbeitslasten an verschiedene Standorte zu verschieben und verschiedene Ressourcen und Tools zu verwenden, wenn sich Ihre Anforderungen ändern. Sie können beispielsweise Ihre Inferenzanwendung in der GKE entwickeln und testen und dieselbe containerisierte Anwendung dann in Ihrer lokalen Umgebung für die Produktion bereitstellen.

Zusammenfassend lässt sich sagen, dass Sie mit der GKE den Übergang Ihrer KI-/ML-Modelle von der Entwicklung zur Produktion optimieren können. Die GKE übernimmt viele Komplexitäten, die mit der Infrastrukturverwaltung verbunden sind. So können Sie sich darauf konzentrieren, Ihre Inferenzarbeitslasten in einer leistungsstarken, skalierbaren und beobachtbaren Umgebung auszuführen. Im Laufe dieser Reihe erfahren Sie, wie Sie mit der GKE Ihre KI-/ML-Modelle in leistungsstarke, produktionsreife Anwendungen umwandeln können.

Nächste Schritte