Trainieren von Modellen mit Azure Machine Learning
GILT FÜR: Python SDK azure-ai-ml v2 (aktuell)
Azure Machine Learning bietet verschiedene Methoden zum Trainieren von Modellen, von Code-First-Lösungen mit dem SDK bis zu Low-Code-Lösungen wie automatisiertes maschinelles Lernen und visueller Designer. Anhand der folgenden Liste können Sie ermitteln, welche Trainingsmethode für Sie die richtige ist:
Azure Machine Learning SDK für Python: Das Python SDK bietet verschiedene Möglichkeiten, Modelle mit jeweils unterschiedlichen Funktionen zu trainieren.
Trainingsmethode BESCHREIBUNG command() Ein typischer Weg zum Trainineren von Modellen ist die Übermittlung von command(), das ein Trainingsskript, eine Umgebung und Informationen zur Compute-Instanz enthält. Automatisiertes maschinelles Lernen Mithilfe des automatisierten maschinellen Lernens können Sie Modelle ohne umfassende Data Science- oder Programmierkenntnisse trainieren. Für Personen mit Data Science- und Programmierungshintergrund bietet es eine Möglichkeit, Zeit und Ressourcen zu sparen, indem die Algorithmusauswahl und die Hyperparameteroptimierung automatisiert werden. Bei Verwendung des automatisierten maschinellen Lernens müssen Sie sich nicht um die Definition einer Auftragskonfiguration kümmern. Machine Learning-Pipeline Pipelines sind keine andere Trainingsmethode, sondern eine Möglichkeit, einen Workflow mit modularen, wiederverwendbaren Schritten zu definieren, die Training als Teil des Workflows enthalten können. Machine Learning-Pipelines unterstützen die Verwendung des automatisierten maschinellen Lernens sowie der Laufzeitkonfiguration zum Trainieren von Modellen. Da Pipelines nicht speziell auf das Training ausgerichtet sind, variieren die Gründe für den Einsatz einer Pipeline stärker als die anderen Trainingsmethoden. Im Allgemeinen können Sie eine Pipeline in folgenden Situationen verwenden:
* Sie möchten unbeaufsichtigte Prozesse planen, z. B. zeitintensive Trainingsaufträge oder Datenaufbereitungen.
* Sie möchten mehrere Schritte verwenden, die über heterogene Computeressourcen und Speicherorte hinweg koordiniert sind.
* Sie möchten die Pipeline als wiederverwendbare Vorlage für bestimmte Szenarien verwenden, z. B. für erneutes Training oder Batchbewertungen.
* Nachverfolgung und Versionierung von Datenquellen, Eingaben und Ausgaben für Ihren Workflow.
* Ihr Workflow wird von verschiedenen Teams implementiert, die unabhängig voneinander an bestimmten Schritten arbeiten. Die Schritte können dann in einer Pipeline zusammengeführt werden, um den Workflow zu implementieren.Designer: Azure Machine Learning-Designer bietet einen einfachen Einstiegspunkt in das maschinelle Lernen zum Erstellen von Proof of Concepts oder für Benutzer mit wenig Programmiererfahrung. Sie ermöglicht es Ihnen, Modelle per Drag & Drop über eine webbasierte Benutzeroberfläche zu trainieren. Sie können Python-Code als Teil des Designs verwenden oder Modelle trainieren, ohne Code zu schreiben.
Azure CLI: Die Machine Learning-Befehlszeilenschnittstelle stellt Befehle für gängige Machine Learning-Aufgaben bereit und wird häufig für Skripting- und Automatisierungsaufgaben verwendet. Nachdem Sie ein Trainingsskript oder eine Pipeline erstellt haben, können Sie z. B. über die Azure CLI einen Trainingsauftrag starten, der zeitplanbasiert oder nach der Aktualisierung der für das Training verwendeten Datendateien ausgeführt wird. Für Trainingsmodelle werden Befehle bereitgestellt, die Trainingsaufträge übermitteln. Sie kann Aufträge über Laufzeitkonfigurationen oder Pipelines übermitteln.
Jede dieser Trainingsmethoden kann verschiedene Arten von Computeressourcen für das Training verwenden. Zusammenfassend werden diese Ressourcen als Computeziele bezeichnet. Ein Computeziel kann ein lokaler Computer oder eine Cloudressource sein, wie beispielsweise Azure Machine Learning Compute, Azure HDInsight oder ein virtueller Remotecomputer.
Python SDK
Das Azure Machine Learning SDK für Python ermöglicht es Ihnen, Workflows für maschinelles Lernen mit Azure Machine Learning zu erstellen und auszuführen. Sie können mit dem Dienst über eine interaktive Python-Sitzung, Jupyter Notebooks, Visual Studio Code oder eine andere integrierte Entwicklungsumgebung (IDE) interagieren.
- Installieren/Aktualisieren des SDKs
- Konfigurieren einer Entwicklungsumgebung für Azure Machine Learning
Übermitteln eines Befehls
Ein generischer Trainingsauftrag mit Azure Machine Learning kann unter Verwendung von command() definiert werden. Der Befehl wird dann zusammen mit Ihren Trainingsskripts verwendet, um ein Modell auf dem angegebenen Computeziel zu trainieren.
Sie können mit einem Befehl für Ihren lokalen Computer beginnen und dann bei Bedarf zu einem Befehl für ein cloudbasiertes Computeziel wechseln. Wenn Sie das Computeziel ändern, ändern Sie nur den Computeparameter in dem Befehl, den Sie verwenden. Eine Ausführung protokolliert auch Informationen zum Trainingsauftrag wie Eingaben, Ausgaben und Protokolle.
- Tutorial: Trainieren Ihres ersten ML-Modells
- Beispiele: Jupyter Notebook- und Python-Beispiele für Trainingsmodelle
Automatisiertes maschinelles Lernen
Definieren Sie Iterationen, Hyperparametereinstellungen, Featurebereitstellungen und andere Einstellungen. Während des Trainings testet Azure Machine Learning verschiedene Algorithmen und Parameter gleichzeitig. Das Training wird beendet, sobald es die von Ihnen definierten Beendigungskriterien erfüllt.
Tipp
Zusätzlich zum Python SDK können Sie automatisiertes maschinelles Lernen auch über Azure Machine Learning-Studio verwenden.
- Was ist automatisiertes maschinelles Lernen?
- Tutorial: Erstellen Ihres ersten Klassifizierungsmodells mit automatisiertem maschinellen Lernen
- Vorgehensweise: Konfigurieren automatisierter ML-Experimente in Python
- Vorgehensweise: Erstellen, Untersuchen und Bereitstellen von Experimenten mit automatisiertem maschinellem Lernen mit Azure Machine Learning Studio
Machine Learning-Pipeline
Von Machine Learning-Pipelines können die zuvor erwähnten Trainingsmethoden verwendet werden. Bei Pipelines geht es mehr um die Erstellung eines Workflows, daher umfassen sie mehr als nur das Training von Modellen.
- Was sind ML-Pipelines in Azure Machine Learning?
- Tutorial: Erstellen von Produktions-ML-Pipelines mit dem Python SDK v2 in einem Jupyter Notebook
Verstehen, was beim Übermitteln eines Trainingsauftrags passiert
Der Azure-Trainingslebenszyklus besteht aus folgenden Schritten:
Zippen der Dateien in Ihrem Projektordner und Hochladen in die Cloud
Tipp
Um zu verhindern, dass nicht benötigte Dateien in die Momentaufnahme eingeschlossen werden, erstellen Sie im Verzeichnis eine Ignore-Datei (
.gitignore
oder.amlignore
). Fügen Sie dieser Datei die Dateien und Verzeichnisse hinzu, die ignoriert werden sollen. Weitere Informationen zur Syntax, die in dieser Datei zu verwenden ist, finden Sie unter Syntax und Muster für.gitignore
. Die.amlignore
-Datei verwendet die gleiche Syntax. Wenn beide Dateien vorhanden sind, wird die Datei.amlignore
verwendet, und die Datei.gitignore
wird nicht verwendet.Skalierung Ihres Computeclusters (oder serverlosen Computing
Erstellen oder Herunterladen des Dockerfiles auf den Computeknoten
- Das System berechnet einen Hashwert aus:
- Dem Basisimage
- Benutzerdefinierten Docker-Schritten (siehe Bereitstellen eines Modells mithilfe eines benutzerdefinierten Docker-Basisimages)
- Die YAML-Datei mit der Conda-Definition (siehe Verwalten von Azure Machine Learning-Umgebungen mit der Befehlszeilenschnittstelle (v2))
- Das System verwendet diesen Hash als Schlüssel in einer Suche nach der Azure Container Registry (ACR) für den Arbeitsbereich.
- Wenn es nicht gefunden wird, sucht es nach einer Übereinstimmung im globalen ACR
- Wenn keine gefunden wird, erstellt das System ein neues Image (das zwischengespeichert und bei der ACR des Arbeitsbereichs registriert wird).
- Das System berechnet einen Hashwert aus:
Herunterladen der gezippten Projektdatei in den temporären Speicher auf dem Serverknoten
Entzippen der Projektdatei
Ausführen von
python <entry script> <arguments>
auf dem ServerknotenSpeichern von Protokollen, Modelldateien und anderen Dateien, die in dem Speicherkonto, das dem Arbeitsbereich zugeordnet ist, in
./outputs
geschrieben werdenHerunterskalieren der Computevorgänge, einschließlich Entfernen des temporären Speichers
Azure Machine Learning-Designer
Mit dem Designer können Sie Modelle über eine Drag & Drop-Oberfläche in Ihrem Webbrowser trainieren.
Azure CLI
Die Machine Learning-Befehlszeilenschnittstelle ist eine Erweiterung für die Azure-Befehlszeilenschnittstelle. Es bietet plattformübergreifende CLI-Befehle für die Arbeit mit Azure Machine Learning. In der Regel verwenden Sie die Befehlszeilenschnittstelle zur Automatisierung von Aufgaben, z. B. das Training eines Machine Learning-Modells.
VS-Code
Sie können mit der VS Code-Erweiterung Ihre Trainingsaufträge ausführen und verwalten. Weitere Informationen finden Sie unter Verwalten von Azure Machine Learning-Ressourcen mit der VS Code-Erweiterung (Vorschau).
Nächste Schritte
Erfahren Sie mehr im Tutorial: Erstellen von Produktions-ML-Pipelines mit dem Python SDK v2 in einem Jupyter Notebook.