Trainieren von Modellen mit Azure Machine Learning (v1)
GILT FÜR: Python SDK azureml v1
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 Laufzeitkonfiguration Eine typische Art des Trainings von Modellen ist die Verwendung eines Trainingsskripts und einer Auftragskonfiguration. Die Auftragskonfiguration stellt die erforderlichen Informationen zum Konfigurieren der Trainingsumgebung bereit, in der Ihr Modell trainiert wird. Sie können Ihr Trainingsskript, Ihr Computeziel und Ihre Azure Machine Learning-Umgebung in Ihrer Auftragskonfiguration angeben und einen Trainingsauftrag ausführen. 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. Das Training kann dabei Teil des Workflows sein. 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.
- Was ist das Azure Machine Learning SDK für Python?
- Installieren/Aktualisieren des SDKs
- Konfigurieren einer Entwicklungsumgebung für Azure Machine Learning
Laufzeitkonfiguration
Ein generischer Trainingsauftrag mit Azure Machine Learning kann unter Verwendung von ScriptRunConfig definiert werden. Die Skriptlaufzeitkonfiguration wird dann zusammen mit Ihren Trainingsskripts verwendet, um ein Modell auf einem Computeziel zu trainieren.
Sie können mit einer Laufzeitkonfiguration für Ihren lokalen Computer beginnen und dann bei Bedarf zu einer Laufzeitkonfiguration für ein cloudbasiertes Computeziel wechseln. Wenn Sie das Computeziel ändern, wird nur die von Ihnen verwendete Laufzeitkonfiguration geändert. Eine Ausführung protokolliert auch Informationen zum Trainingsauftrag wie Eingaben, Ausgaben und Protokolle.
- Was ist eine Laufzeitkonfiguration?
- Tutorial: Trainieren Ihres ersten ML-Modells
- Beispiele: Jupyter Notebook- und Python-Beispiele für Trainingsmodelle
- Vorgehensweise: Konfigurieren einer Trainingsausführung
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
- Beispiele: Jupyter Notebook-Beispiele für automatisiertes maschinelles Lernen
- Vorgehensweise: Konfigurieren automatisierter ML-Experimente in Python
- Vorgehensweise: Automatisches Trainieren eines Modells für die Zeitreihenprognose
- 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. In einer Pipeline können Sie ein Modell mit automatisiertem maschinellen Lernen oder Laufzeitkonfigurationen trainieren.
- Was sind ML-Pipelines in Azure Machine Learning?
- Erstellen und Ausführen von Machine Learning-Pipelines mit dem Azure Machine Learning SDK
- Tutorial: Verwenden von Azure Machine Learning-Pipelines für die Batchbewertung
- Beispiele: Jupyter Notebook-Beispiele für Machine Learning-Pipelines
- Beispiele: Pipeline mit automatisiertem maschinellen Lernen
Verstehen, was beim Übermitteln eines Trainingsauftrags passiert
Der Azure-Trainingslebenszyklus besteht aus folgenden Schritten:
- Zippen der Dateien in Ihrem Projektordner, wobei die in .amlignore oder .gitignore angegebenen Dateien ignoriert werden
- Hochskalieren Ihres Computeclusters
- 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)
- Der Conda-Definitions-YAML-Datei (siehe Erstellen und Verwenden von Softwareumgebungen in Azure Machine Learning)
- Das System verwendet diesen Hash als Schlüssel in einer Suche nach der Azure Container Registry (ACR) für den Arbeitsbereich.
- Wenn er nicht gefunden wird, wird nach einer Übereinstimmung in der globalen ACR gesucht.
- 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 Serverknoten - Speichern von Protokollen, Modelldateien und anderen Dateien, die in dem Speicherkonto, das dem Arbeitsbereich zugeordnet ist, in
./outputs
geschrieben werden - Herunterskalieren der Computevorgänge, einschließlich Entfernen des temporären Speichers
Wenn Sie das Training auf Ihrem lokalen Computer ausführen möchten („für lokale Ausführung konfigurieren“), ist Docker nicht notwendig. Sie können Docker aber lokal verwenden, wenn Sie dies wünschen (ein Beispiel finden Sie im Abschnitt Konfigurieren der ML-Pipeline).
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.
Nächste Schritte
Machen Sie sich mit dem Konfigurieren einer Trainingsausführung vertraut.