AI Platform bildet die Grundlage für zahlreiche Abschnitte des Workflows für maschinelles Lernen (ML). Dieses Dokument bietet eine einführende Beschreibung des gesamten ML-Prozesses und erläutert, wo jeder AI Platform-Dienst in den Prozess passt.
Eine Einführung in die Dienste finden Sie in der technischen Übersicht über AI Platform.
Kurze Beschreibung des maschinellen Lernens
Maschinelles Lernen (ML) ist ein Teilgebiet der künstlichen Intelligenz (KI). Bei ML sollen Computer aus Daten, die Sie eingegeben haben, lernen. Statt Code zu schreiben, der die vom Computer auszuführende Aktion beschreibt, liefert Ihr Code einen Algorithmus, der sich selbst anpasst, d. h., er orientiert sich an Beispielen für beabsichtigtes Verhalten. Das resultierende Programm, das aus dem Algorithmus und den zugehörigen erlernten Parametern besteht, wird als trainiertes Modell bezeichnet.
ML-Workflow
Das folgende Diagramm bietet eine Übersicht über die verschiedenen Phasen in einem ML-Workflow. Die blauen Felder zeigen, wo AI Platform verwaltete Dienste und APIs bereitstellt:
Für die Entwicklung und Verwaltung eines produktionsfertigen Modells müssen Sie die folgenden Phasen durchlaufen:
Beschaffen und Aufbereiten der Daten
Entwickeln des Modells
Trainieren eines ML-Modells mit Ihren Daten:
- Modell trainieren
- Modellgenauigkeit bewerten
- Hyperparameter abstimmen
Erstellen des trainierten Modells
Senden von Vorhersageanfragen an Ihr Modell:
- Onlinevorhersage
- Batchvorhersage
Fortlaufendes Überwachen der Vorhersagen
Verwalten Ihrer Modelle und Versionen
Diese Phasen wiederholen sich. An jedem Punkt des Prozesses kann es sein, dass Sie neu evaluieren und zu einem vorherigen Schritt zurückkehren müssen.
Die Phasen werden im Folgenden im Detail behandelt.
Analysieren Sie das Problem, bevor Sie anfangen
Bevor Sie sich damit befassen, wie man ein Problem mit ML lösen kann, nehmen Sie sich etwas Zeit, über das Problem an sich nachzudenken. Stellen Sie sich folgende Fragen:
Ist das zu lösende Problem klar definiert?
Es gibt viele verschiedene Ansätze dafür, mithilfe von ML Muster in Daten zu erkennen. Es ist wichtig zu definieren, welche Informationen Sie aus dem Modell herausholen möchten und warum Sie diese benötigen.
Ist ML die beste Lösung für das Problem?
Beaufsichtigtes ML (die in dieser Dokumentation beschriebene ML-Art) eignet sich gut für bestimmte Arten von Problemen.
Sie sollten ML nur dann für Ihr Problem in Betracht ziehen, wenn Sie auf umfangreiche Daten zurückgreifen und Ihr Modell damit trainieren können. Man kann nicht pauschal sagen, welche Datenmenge ausreicht. Durch jedes Feature (Datenattribut oder Merkmal), das Sie in Ihr Modell aufnehmen, erhöht sich die Anzahl der Instanzen (Datensätze), die Sie zum richtigen Trainieren des Modells benötigen. In den Best Practices für ML finden Sie einige Hinweise zum Feature Engineering.
Denken Sie auch daran, dass Ihr Dataset in drei Teilmengen aufgeteilt werden muss: eine für das Training, eine für die Evaluation (oder Validierung) und eine für das Testen.
Prüfen Sie, ob es Alternativen gibt, mit denen das Problem auf einfachere und konkretere Art gelöst werden kann.
Wie wird der Erfolg des Modells gemessen?
Beim Erstellen eines ML-Modells ist es besonders schwierig zu erkennen, wann die Modellentwicklungsphase abgeschlossen ist. Es ist verlockend, das Modell immer weiter zu verfeinern, wobei die erzielten Genauigkeitsverbesserungen immer kleiner werden. Wenn Sie den Prozess beginnen, sollten Sie eine klare Vorstellung über den Erfolg Ihres Modells haben. Überlegen Sie, wie viel Genauigkeit Ihr Modell für Ihre Anforderungen braucht. Überlegen Sie, welche Konsequenzen der dann noch verbleibende Fehler hat.
Daten beschaffen und aufbereiten
Sie brauchen eine große Menge von Trainingsdaten, in denen das Attribut (in ML Feature genannt) enthalten ist, das Sie auf der Grundlage der anderen Features ableiten (vorhersagen) möchten.
Angenommen, Ihr Modell soll den Verkaufspreis eines Hauses vorhersagen. Beginnen Sie mit einer großen Menge von Daten, die die Eigenschaften von Häusern in einem bestimmten Viertel beschreiben, darunter auch den Verkaufspreis jedes Hauses.
Datenanalyse
Nach der Beschaffung der Daten müssen Sie sie analysieren, auswerten und als Eingangsdaten für den Trainingsvorgang vorbereiten. Dazu können zum Beispiel folgende Schritte gehören:
- Zusammenführen von Daten aus mehreren Quellen und Rationalisieren der Daten in einem Dataset.
- Visualisieren der Daten, um nach Trends zu suchen.
- Verwenden von datenorientierten Sprachen und Tools, um Muster in den Daten zu erkennen.
- Identifizieren der Features in den Daten. Die Features umfassen eine Teilmenge der Datenattribute, die Sie im Modell verwenden.
- Bereinigen der Daten, um anormale Werte zu ermitteln, die durch fehlerhafte Dateneingaben oder Messwerte verursacht werden können.
Datenvorverarbeitung
Im Vorverarbeitungsschritt wandeln Sie gültige, bereinigte Daten in das Format um, das den Anforderungen Ihres Modells am besten entspricht. Hier einige Beispiele für die Datenvorverarbeitung:
- Normalisierung der numerischen Daten auf eine gemeinsame Skala.
- Anwenden von Formatierungsregeln auf Daten. Zum Beispiel das Entfernen von HTML-Tags aus einem Textattribut.
- Verringern der Datenredundanz durch Vereinfachung. Ein Beispiel dafür ist die Konvertierung eines Textattributs in eine Bag of Words-Darstellung.
- Numerische Darstellung von Text. Dazu kann jedem möglichen Wert in einem kategorischen Merkmal ein Zahlenwert zugeordnet werden.
- Zuweisung von Schlüssel/Wert-Paaren zu Dateninstanzen.
Google Cloud-Unterstützung bei der Datenexploration und -vorbereitung
TensorFlow verfügt über mehrere Vorverarbeitungsbibliotheken, die Sie mit AI Platform verwenden können. Ein Beispiel dafür ist tf.transform.
Sie können scikit-learn-Pipelines in AI Platform bereitstellen, um integrierte Transformationen für das Training und für Onlinevorhersagen anzuwenden. Das Anwenden benutzerdefinierter Transformationen ist in der Betaphase.
Sie können eine benutzerdefinierte Vorhersageroutine (Beta) bereitstellen, damit AI Platform Eingaben zur Vorhersagezeit auf dieselbe Weise vorverarbeitet, wie Sie Daten während des Trainings vorverarbeitet haben.
Achten Sie außerdem auf die folgenden Google Cloud-Dienste:
Von Nutzern verwaltete Vertex AI Workbench-Notebooks sind Deep Learning VM Images-Instanzen, die mit JupyterLab-Notebooks vorkonfiguriert und für Deep-Learning-Data-Science-Aufgaben wie die Vorbereitung und Untersuchung von Daten oder die schnelle Entwicklung von Prototypen optimiert sind.
BigQuery ist ein vollständig verwalteter Data Warehouse-Dienst, der eine Ad-hoc-Analyse von Echtzeitdaten mit Standard-SQL ermöglicht.
Dataproc ist ein vollständig verwalteter Cloud-Dienst, mit dem Apache Spark-Cluster und Apache Hadoop-Cluster ausgeführt werden können.
Dataflow ist ein vollständig verwalteter Dienst zum Transformieren und Anreichern von Daten im Streammodus (Echtzeit) und Batchmodus (Verlauf) mit gleicher Zuverlässigkeit und Aussagekraft.
Dataprep ist ein intelligenter, serverloser Dienst für die Untersuchung, Bereinigung und Vorbereitung von strukturierten und unstrukturierten Daten.
Modell programmieren
Entwickeln Sie Ihr Modell mit etablierten ML-Techniken oder definieren Sie neue Vorgänge und Ansätze.
Eine Einführung in die Arbeit mit TensorFlow finden Sie im entsprechenden Startleitfaden. Sie können auch die scikit-learn-Dokumentation oder die XGBoost-Dokumentation verwenden, um Ihr Modell zu erstellen. Untersuchen Sie dann einige Codebeispiele, die für die Arbeit mit AI Platform entwickelt wurden.
Modell trainieren, evaluieren und optimieren
AI Platform bietet die Dienste, die Sie benötigen, um Ihr Modell in der Cloud zu trainieren und zu bewerten. Darüber hinaus gibt es in AI Platform Optimierungsfunktionen für Hyperparameter, mit denen der Trainingsvorgang optimiert werden kann.
Trainieren Sie Ihr Modell durch die Eingabe von Daten, für die Sie bereits den Wert des Zielattributs (Feature) kennen. Sie führen das Modell so aus, dass es diese Zielwerte für Ihre Trainingsdaten vorhersagt. Damit kann das Modell die zugehörigen Einstellungen besser an die Daten anpassen und den Zielwert genauer vorhersagen.
Wenn Sie Ihr trainiertes Modell evaluieren, füttern Sie es ebenfalls mit Daten, in denen die Zielwerte enthalten sind. Vergleichen Sie die Ergebnisse Ihrer Modellvorhersagen mit den tatsächlichen Werten der Evaluationsdaten und verwenden Sie zur Erfolgsmessung statistische Methoden, die auf Ihr Modell ausgerichtet sind.
Sie können zum Verfeinern des Modells auch die Vorgänge oder Einstellungen ändern, die den Trainingsprozess steuern, z. B. die Anzahl der auszuführenden Trainingsschritte. Diese Technik wird als Hyperparameter-Optimierung bezeichnet.
Modell testen
Während des Trainings wenden Sie das Modell auf bekannte Daten an, ändern die Einstellungen und verbessern damit die Ergebnisse. Wenn Ihre Ergebnisse den Anforderungen Ihrer Anwendung entsprechen, sollten Sie das Modell auf dem von der Anwendung verwendeten System bereitstellen und testen.
Zum Testen des Modells führen Sie es mit Daten aus, die so nah wie möglich am Kontext der endgültigen Anwendung und der Produktionsinfrastruktur liegen.
Verwenden Sie dafür ein anderes Dataset als für Training und Evaluierung. Im Idealfall verwenden Sie bei jedem Test einen separaten Satz von Trainingsdaten, damit Ihr Modell mit Daten getestet wird, die es noch nie zuvor verarbeitet hat.
Sie haben auch die Möglichkeit, entsprechend den Eigenschaften Ihres Modells verschiedene Sätze von Testdaten zu erstellen. Zum Beispiel können Sie verschiedene Datensätze für bestimmte Standorte oder Zeitpunkte verwenden oder Sie können die Instanzen aufteilen, um unterschiedliche demografische Merkmale zu imitieren.
Während des Testprozesses passen Sie die Modellparameter und Hyperparameter auf der Grundlage der Testergebnisse an. Dabei können Sie Probleme in Ihrem Modell oder bei der Interaktion des Modells mit dem Rest Ihrer Anwendung aufdecken.
Modell in der Cloud hosten
AI Platform bietet Tools, mit denen ein trainiertes ML-Modell in die Cloud hochgeladen werden kann. Anschließend können Sie Vorhersageanfragen an das Modell senden.
Zur Bereitstellung des trainierten Modells in AI Platform müssen Sie es mit den Tools Ihres Frameworks für maschinelles Lernen speichern. Dazu gehört das Serialisieren der Informationen, die Ihr trainiertes Modell repräsentieren, in einer Datei, die Sie für die Vorhersage in der Cloud bereitstellen können.
Dann laden Sie das gespeicherte Modell in einen Cloud Storage-Bucket hoch und erstellen in AI Platform eine Modellressource, die den Cloud Storage-Pfad zu Ihrem gespeicherten Modell angibt.
Wenn Sie das Modell bereitstellen, können Sie auch benutzerdefinierten Code (Beta) angeben, um die Verarbeitung von Vorhersageanfragen anzupassen.
Vorhersageanfragen an Ihr Modell senden
AI Platform bietet die Dienste, die Sie benötigen, um Vorhersagen von Ihrem Modell in der Cloud anzufordern.
Es gibt zwei Möglichkeiten, Vorhersagen von trainierten Modellen zu erhalten: Onlinevorhersagen, auch HTTP-Vorhersagen genannt, und Batchvorhersagen. In beiden Fällen übergeben Sie Eingabedaten an ein in der Cloud gehostetes Modell für maschinelles Lernen und erhalten Inferenzen für jede Dateninstanz.
Vorhersagedienst überwachen
Überwachen Sie die Vorhersagen fortlaufend. AI Platform stellt APIs zum Untersuchen von Jobs bereit, die gerade ausgeführt werden. Darüber hinaus unterstützen verschiedene Google Cloud-Tools den Betrieb Ihres bereitgestellten Modells, z. B. Cloud Logging und Cloud Monitoring.
Modelle und Versionen verwalten
AI Platform bietet verschiedene Oberflächen zur Verwaltung des Modells und der zugehörigen Versionen, einschließlich einer REST API, des gcloud ai-platform
- Befehlszeilentools und der Google Cloud Console.
Nächste Schritte
- Erste Schritte mit AI Platform Training und AI Platform Prediction mit Keras
- Benutzerdefinierte Container zum Trainieren verwenden
- TensorFlow- und XGBoost-Modelle mit integrierten Algorithmen der AI Platform trainieren, ohne Code schreiben zu müssen
- Benutzerdefinierte Vorhersageroutinen verwenden, um Funktionen zur Vorverarbeitung und Nachbearbeitung für Onlinevorhersageanfragen hinzuzufügen
- Benutzerdefinierten Code und benutzerdefinierte scikit-learn-Transformationen zur Onlinevorhersage-Pipeline hinzufügen
- Weitere Informationen zu AI Platform Training und AI Platform Prediction