Ausführen des Upgradeskripts auf SDK v2
In SDK v2 wurden „Experimente“ und „Ausführungen“ in Aufträge konsolidiert.
Ein Auftrag verfügt über einen Typ. Die meisten Aufträge sind Befehlsaufträge, die einen command
ausführen, wie z. B. python main.py
. Was in einem Auftrag ausgeführt wird, ist unabhängig von der jeweiligen Programmiersprache, sodass Sie bash
-Skripts ausführen, python
-Interpreter aufrufen, eine Reihe von curl
-Befehlen oder beliebige andere Aktionen ausführen können.
Für ein Upgrade müssen Sie Ihren Code ändern, damit Aufträge an SDK v2 übermittelt werden. Was Sie innerhalb des Auftrags ausführen, benötigt kein Upgrade zum SDK v2. Azure Machine Learning-spezifischer Code sollte jedoch aus den Modelltrainingsskripts entfernt werden. Diese Trennung ermöglicht einen einfacheren Übergang zwischen der lokalen Umgebung und der Cloud und wird als bewährte Methode für ausgereifte MLOps angesehen. In der Praxis bedeutet dies, dass azureml.*
-Codezeilen entfernt werden. Code für Modellprotokollierung und -nachverfolgung sollte durch MLflow ersetzt werden. Weitere Informationen finden Sie unter Nachverfolgen von ML-Experimenten und -Modellen mit MLflow oder der Azure Machine Learning CLI (v2).
Dieser Artikel enthält einen Vergleich der Szenarien in SDK v1 und SDK v2.
Senden einer Skriptausführung
SDK v1
from azureml.core import Workspace, Experiment, Environment, ScriptRunConfig # connect to the workspace ws = Workspace.from_config() # define and configure the experiment experiment = Experiment(workspace=ws, name='day1-experiment-train') config = ScriptRunConfig(source_directory='./src', script='train.py', compute_target='cpu-cluster') # set up pytorch environment env = Environment.from_conda_specification( name='pytorch-env', file_path='pytorch-env.yml') config.run_config.environment = env run = experiment.submit(config) aml_url = run.get_portal_url() print(aml_url)
SDK v2
#import required libraries from azure.ai.ml import MLClient, command from azure.ai.ml.entities import Environment from azure.identity import DefaultAzureCredential #connect to the workspace ml_client = MLClient.from_config(DefaultAzureCredential()) # set up pytorch environment env = Environment( image="mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04", conda_file="pytorch-env.yml", name="pytorch-env" ) # define the command command_job = command( code="./src", command="train.py", environment=env, compute="cpu-cluster", ) returned_job = ml_client.jobs.create_or_update(command_job) returned_job
Zuordnung der wichtigsten Funktionen in v1 und v2
Funktionalität im SDK v1 | Grobe Zuordnung in SDK v2 |
---|---|
experiment.submit | MLCLient.jobs.create_or_update |
ScriptRunConfig() | command() |
Nächste Schritte
Weitere Informationen finden Sie unter