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

Ü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.

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.

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.

Verstehen, was beim Übermitteln eines Trainingsauftrags passiert

Der Azure-Trainingslebenszyklus besteht aus folgenden Schritten:

  1. 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.

  2. Skalierung Ihres Computeclusters (oder serverlosen Computing

  3. Erstellen oder Herunterladen des Dockerfiles auf den Computeknoten

    1. Das System berechnet einen Hashwert aus:
    2. Das System verwendet diesen Hash als Schlüssel in einer Suche nach der Azure Container Registry (ACR) für den Arbeitsbereich.
    3. Wenn er nicht gefunden wird, wird nach einer Übereinstimmung in der globalen ACR gesucht.
    4. Wenn keine gefunden wird, erstellt das System ein neues Image (das zwischengespeichert und bei der ACR des Arbeitsbereichs registriert wird).
  4. Herunterladen der gezippten Projektdatei in den temporären Speicher auf dem Serverknoten

  5. Entzippen der Projektdatei

  6. Ausführen von python <entry script> <arguments> auf dem Serverknoten

  7. Speichern von Protokollen, Modelldateien und anderen Dateien, die in dem Speicherkonto, das dem Arbeitsbereich zugeordnet ist, in ./outputs geschrieben werden

  8. Herunterskalieren 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.