Vorteile von GKE für KI-/ML-Inferenz

Dieses Dokument ist der erste Teil einer Reihe, die sich an ML-Ingenieure (Machine Learning) richtet, die neu in der Verwendung von Google Kubernetes Engine (GKE) sind 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 zu erklären. 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:

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 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. Es ü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

Die 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 latenzsensiblen 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. Für eine genauere Kontrolle der Knotenkonfiguration 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 freigeben. 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. Dies ist eine flexible und kostengünstige Methode, um spezielle Rechenressourcen wie GPUs oder TPUs zu nutzen. 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 die Integrität und 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 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 Freiheit, Ihre Inferenz-Serving-Arbeitslasten 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 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