Erstellen von Azure Machine Learning-Aufträgen

Abgeschlossen

Der erste Schritt zum Operationalisieren eines Machine Learning-Modells besteht in der Ausführung als Azure Machine Learning-Auftrag. Sie können einzelne Skripts als Befehlsaufträge oder mehrere Skripts als Pipeline ausführen.

Das Data Science-Team stellt Ihnen ihre Arbeit in einer Jupyter Notebook-Instanz bereit, in der Daten geladen, transformiert und trainiert werden. Zur Vorbereitung von Code und Modell für die Produktion sind folgende Schritte erforderlich:

  • Umgestalten des Notebooks in Skripts.
  • Verweisen auf die Skripts in der Auftragsdefinition.
  • Auslösen des Auftrags zum Trainieren des Modells.

Umgestalten von Code in Skripts

Zur Vorbereitung eines Machine Learning-Modells für die Produktion müssen Sie zunächst den Code für die Produktion vorbereiten. Wenn Sie eine Jupyter Notebook-Instanz verwenden, die in Produktionscode konvertiert werden muss, sind folgende Schritte erforderlich:

  • Bereinigen von unwichtigem Code.
  • Exportieren von Code in Python-Skripts.
  • Verwenden von Funktionen in den Skripts.

Durch die Verwendung von Funktionen in den Skripts ist es einfacher, die Codequalität zu testen. Zum Ausführen eines Skripts können Sie den Code mithilfe eines Azure Machine Learning-Auftrags ausführen.

Definieren eines Azure Machine Learning-Auftrags

Zum Definieren eines Auftrags in Azure Machine Learning können Sie eine YAML-Datei erstellen. Dabei spielt es keine Roll, ob Sie ein Skript als Befehlsauftrag oder mehrere Skripts sequenziell als Pipeline ausführen möchten. Sowohl für Befehls- als auch für Pipeline-Aufträge müssen Sie eine YAML-Datei erstellen, die folgende Angaben enthält:

  • Welche Skripts ausgeführt werden sollen.
  • Welche Eingaben und Ausgaben für die einzelnen Skripts vorgesehen sind.
  • Die Compute-Instanz, die zum Ausführen der Skripts verwendet werden soll.
  • Die Umgebung, die zum Ausführen der Skripts auf der Compute-Instanz installiert werden muss.

Im folgenden YAML-Code ist ein Beispiel für einen Befehlsauftrag dargestellt, bei dem bei der Ausführung des Skripts main.py ein registriertes Datenobjekt als Eingabe verwendet wird.

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >-
  python main.py 
  --diabetes-csv ${{inputs.diabetes}}
inputs:
  diabetes:
    path: azureml:diabetes-data:1
    mode: ro_mount
environment: azureml:basic-env-scikit@latest
compute: azureml:aml-instance
experiment_name: diabetes-data-example
description: Train a classification model on diabetes data using a registered dataset as input.

In der YAML-Datei finden Sie die erforderlichen Angaben, die Sie einfügen müssen:

  • Der code bezieht sich auf den lokalen Ordner, in dem die Skripts gespeichert sind, die Sie ausführen möchten. Der command-Schlüssel gibt an, dass das main.py-Skript im Ordner src ausgeführt werden soll, wobei der Wert inputs.diabetes für den Parameter diabetes-csv verwendet wird.
  • Version 1 des registrierten Datenobjekts diabetes-data im Azure Machine Learning-Arbeitsbereich wird in der Compute-Instanz zur Verwendung als Eingabe für das Skript bereitgestellt.
  • Die Compute-Instanz aml-instancewird zum Ausführen der Skripts verwendet.
  • Die neueste Version der registrierten benutzerdefinierten basic-env-scikit-Umgebung wird vor dem Ausführen des Skripts in der Compute-Instanz installiert.

Zum Testen der YAML-Definition des Auftrags können Sie sie mithilfe von CLI v2 auslösen.

Auslösen eines Azure Machine Learning-Auftrags

Zum Ausführen eines Azure Machine Learning-Auftrags können Sie CLI v2 verwenden. CLI v2 kann auf dem lokalen Gerät installiert werden. Alternativ kann auch Azure Cloud Shell verwendet werden.

Unabhängig davon, ob Sie Ausführungen über Ihr lokales Gerät auslösen oder Azure Cloud Shell verwenden möchten, Sie müssen zunächst die Azure Machine Learning-Erweiterung installieren.

Verwenden Sie zum Installieren unter Windows den folgenden Befehl:

az extension add -n ml -y

Wenn Sie die Azure Machine Learning-Erweiterung für die CLI installiert und Zugriff auf das gewünschte Azure-Abonnement haben, können Sie mit dem folgenden Befehl einen Azure Machine Learning-Auftrag übermitteln:

az ml job create --file job.yml

Hinweis

Weitere Informationen zum Verwalten von Azure Machine Learning-Aufträgen mit der CLI (v2) finden Sie in der Referenzdokumentation zum az ml-Auftrag.