Eseguire lo script di aggiornamento all'SDK v2
Nell'SDK v2 gli "esperimenti" e le "esecuzioni" vengono consolidati in processi.
Un processo ha un tipo. La maggior parte dei processi sono processi di comando che eseguono un command
oggetto , ad esempio python main.py
. Ciò che viene eseguito in un processo è indipendente da qualsiasi linguaggio di programmazione, quindi è possibile eseguire script bash
, richiamare interpreti python
, eseguire una serie di comandi curl
o qualsiasi altra operazione.
Per eseguire l'aggiornamento, è necessario modificare il codice per l'invio di processi all'SDK v2. L'esecuzione all'interno del processo non deve essere aggiornata all'SDK v2. È tuttavia consigliabile rimuovere qualsiasi codice specifico per Azure Machine Learning dagli script di training del modello. Questa separazione consente una transizione più semplice tra locale e cloud ed è considerata una procedura consigliata per MLOps maturi. In pratica, ciò significa rimuovere azureml.*
righe di codice. La registrazione del modello e il codice di rilevamento devono essere sostituiti con MLflow. Per altre informazioni, vedere come usare MLflow nella versione 2.
Questo articolo offre un confronto tra scenari in SDK v1 e SDK v2.
Inviare un'esecuzione di script
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
Mapping delle funzionalità chiave in v1 e v2
Funzionalità nell'SDK v1 | Mapping approssimativo in SDK v2 |
---|---|
experiment.submit | MLCLient.jobs.create_or_update |
ScriptRunConfig() | command() |
Passaggi successivi
Per altre informazioni, vedi: