Freigeben über


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.

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.

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. In einer Pipeline können Sie ein Modell mit automatisiertem maschinellen Lernen oder Laufzeitkonfigurationen trainieren.

Verstehen, was beim Übermitteln eines Trainingsauftrags passiert

Der Azure-Trainingslebenszyklus besteht aus folgenden Schritten:

  1. Zippen der Dateien in Ihrem Projektordner, wobei die in .amlignore oder .gitignore angegebenen Dateien ignoriert werden
  2. Hochskalieren Ihres Computeclusters
  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

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.