In diesem Artikel stellen wir ein Tool vor, das unsere praktischen Erfahrungen mit Vertex AI in einem Projekt in der Produktionsumgebung veranschaulicht.
Ein umfassendes Tutorial darüber, wie man ein benutzerdefiniertes ML-Modell mithilfe von Vertex AI und Kubeflow v2 trainiert und in der Produktionsumgebung bereitstellt. Wenn Sie sich nicht sicher sind, wie Sie mit Vertex AI umgehen sollen, finden Sie hier die richtigen Ansätze, da alles in diesem Tutorial auf praktischen Erfahrungen basiert. Es gibt viele Beispiele für Pipelines, die veranschaulichen, wie bestimmte coole Funktionen von Vertex AI Kubeflow genutzt werden können. Außerdem finden Sie ein Makefile, das Ihnen hilft, wichtige Schritte auszuführen, und Ihnen viel Zeit beim Erstellen Ihres Modells und dessen Inbetriebnahme in der Produktion spart.
Pipelines in ML lassen sich als Gruppen miteinander verbundener Jobs definieren, die den gesamten ML-Workflow oder bestimmte Teile davon ausführen (z. B. eine Trainingspipeline).

Beispiel für eine einfache Trainingspipeline

Beispiel für eine Trainingspipeline auf Vertex AI unter Verwendung von Kubeflow
Bei richtiger Konzeption bieten Pipelines den Vorteil, dass sie reproduzierbar und in hohem Maße anpassbar sind. Diese beiden Eigenschaften machen das Experimentieren mit ihnen und ihre Bereitstellung in der Produktion zu einer relativ einfachen Aufgabe. Durch die Verwendung von Vertex AI in Verbindung mit Kubeflow konnten wir schnell benutzerdefinierte Pipelines entwerfen und ausführen, die die oben genannten Eigenschaften aufweisen. Die Pipeline-Beispiele, die wir im Starter-Kit vorstellen, sind sehr repräsentativ für das, was man bei der Arbeit an einem ML-Projekt antreffen könnte, das in der Produktion bereitgestellt werden muss. Wir haben außerdem einige Tipps und automatisierte Skripte bereitgestellt, damit Sie sich ganz darauf konzentrieren können, sich mit Vertex AI vertraut zu machen.
Als ich anfing, Vertex AI zu nutzen, war ich von den vielen Möglichkeiten, genau dieselbe Aufgabe zu erledigen, ziemlich überwältigt. Ich war mir nicht ganz sicher, wie ich meine Pipelines am besten aufbauen sollte. Nach einigen Monaten hatten wir uns zurechtgefunden und einige Erkenntnisse gewonnen, zumindest was den wichtigsten Aspekt der Verwaltung des Lebenszyklus eines Projekts in der Produktion mit dieser Technologie betrifft.
Wie bereits erwähnt, soll dieser Artikel ein Einsteigerpaket vorstellen, das anhand praktischer Methoden unsere Erfahrungen und Erkenntnisse bei der Nutzung von Vertex AI vermittelt. Wir hoffen, dass dies Neueinsteigern dabei hilft, dieses leistungsstarke Tool schnell zu erlernen, ohne hohe Einstiegskosten in Kauf nehmen zu müssen.
In den folgenden Abschnitten stellen wir die interessantesten Konzepte und Funktionen vor, die wir bei der Verwendung von Vertex AI entdeckt haben. Zur Veranschaulichung nutzen wir außerdem ein einfaches Prognoseprojekt (den M5-Wettbewerb). Wir werden uns bewusst nicht auf den Modellierungsaspekt konzentrieren, sondern stattdessen die verschiedenen Schritte hervorheben, die erforderlich sind, um ein Modell in der Produktion einzusetzen.
Erstellen Sie ein benutzerdefiniertes Basis-Image und nutzen Sie es als Grundlage für Ihre Komponenten
Wenn Sie schon einmal mit Kubeflow-Pipelines gearbeitet haben, stellt sich Ihnen vielleicht die Frage, wann Sie containerbasierte Komponenten und wann funktionsbasierte Komponenten verwenden sollten. Beide Optionen haben viele Vor- und Nachteile, doch es gibt auch einen Mittelweg. Containerbasierte Komponenten eignen sich besser für komplexe Aufgaben, bei denen es viele Code-Abhängigkeiten gibt, im Vergleich zu funktionsbasierten Komponenten, die alle Code-Abhängigkeiten innerhalb einer Funktion enthalten und in der Regel einfacher sind. Letztere laufen schneller, da wir nicht jedes Mal, wenn wir unseren Code bearbeiten, ein Image erstellen und bereitstellen müssen. Bei funktionsbasierten Komponenten wird ein Standard-Python-3.7-Image verwendet, um Ihre Funktion auszuführen.
Unsere Lösung, um sowohl komplexe als auch einfache Komponenten auf dieselbe Weise auszuführen, besteht darin, mit einer überarbeiteten Version des Standard-Basisimages zu arbeiten. In dieses angepasste Basisimage haben wir unseren gesamten Code als Paket installiert. Anschließend importieren wir diese Funktionen in funktionsbasierte Komponenten, so wie man es beispielsweise bei Pandas tun würde. So profitieren wir davon, dass komplexe und einfache Aufgaben auf dieselbe Weise ausgeführt werden, und reduzieren die Image-Erstellungszeit auf nur 1 (das Basisimage).
Außerdem strukturieren wir unsereKonfigurationsdateienso, dass sich die Eingaben Ihrer Komponenten und Pipelines leicht anpassen lassen.

Verwendung eines überschriebenen Basis-Images als einheitliche Grundlage für alle Ihre Komponenten
Teile Ihrer Pipelines zu parallelisieren ist so einfach wie das Schreiben einer for-Schleife
Wenn wir mit maschinellem Lernen experimentieren, müssen wir in der Regel viele Iterationen eines einfachen Trainingsablaufs durchführen, entweder um einen Hyperparameter zu optimieren oder um mehrere Modelle zu erstellen (z. B. ein Modell pro Produktkategorie).
Um dies optimal zu bewerkstelligen, müssten die verschiedenen Trainingsabläufe parallelisiert werden, um Zeit zu sparen und Ressourcen optimal zu nutzen. Mit Vertex Pipelines und Kubeflow ist der Aufwand von vornherein minimal; Sie müssen lediglich eine for-Schleife schreiben. Und beim Kompilieren Ihrer Pipeline ermittelt Kubeflow, welche Schritte und/oder Schrittgruppen parallel ausgeführt werden können und welche nacheinander abgearbeitet werden müssen.

Beispiel für eine Pipeline mit parallel ablaufenden Teilen
Bedingte Bereitstellung für den reibungslosen Betrieb Ihres ML-Modells
Mit „kfp.dsl.condition“ können Sie ein trainiertes Modell ganz einfach bereitstellen und mit etwas Code-Logik für die spätere Wiederverwendung vorbereiten. Wenn Sie mit vielen Einstellungen experimentieren und hoffen, die Ergebnisse unter bestimmten Bedingungen nahtlos in die Produktion zu überführen, wird Ihnen diese Funktion von Kubeflow sehr zugute kommen. In Kombination mit einem leistungsstarken CI/CD-System können Sie den Lebenszyklus Ihres ML-Modells reibungslos verwalten.

Beispiel für eine bedingte Bereitstellung
Zusätzlich zu diesen Funktionen (die Liste ist nicht vollständig) profitieren Sie vonReproduzierbarkeit, Rückverfolgbarkeit, einfacher Verwaltungund nicht zuletzt einer hervorragenden Benutzeroberfläche, über die Sie alles auf der AI in GCP überwachen können.
Fazit
Heutzutage wird von vielen ML-Modellen erwartet, dass sie in der Produktion laufen. Wenn Sie also mit GCP arbeiten und planen, Vertex AI zu nutzen, hoffen wir, dass dieses Starter-Kit Ihnen dabei hilft, einen reibungslosen Einstieg in die Arbeit mit dem Tool zu finden. Sie sollten es sich auch ansehen, wenn Sie Ihre Projekte mit dem Ziel starten, sie so schnell wie möglich nutzbar zu machen, d. h. sie in der Produktion bereitzustellen.
Vielen Dank an Luca Serra, Jeffrey Kayne und Robin Doumerc (Artefact), die bei der Erstellung dieses Starter-Kits geholfen haben, sowie an Maxime Lutel, der die Modellierung für das von uns verwendete Spielzeugprojekt übernommen hat.
Wenn Sie einen Schritt weiter gehen möchten, finden Sie in der Dokumentation von GCP Anleitungen dazu, wie Sie:

BLOG






