Mettre à niveau l’exécution du script vers le SDK v2
Dans le SDK v2, les « expériences » et les « exécutions » sont regroupées en travaux.
Un travail possède un type. La plupart d’entre eux sont des travaux de commande qui exécutent une command
, comme python main.py
. Ce qui s’exécute dans un travail est indépendant du langage de programmation. Vous pouvez donc exécuter des scripts bash
, appeler des interpréteurs python
, exécuter un ensemble de commandes curl
ou toute autre chose.
Pour effectuer la mise à niveau, vous devez modifier votre code pour envoyer les travaux vers SDK 2. Ce que vous exécutez au sein du travail n’a pas besoin d’être migré vers le Kit de développement logiciel (SDK) v2. Cependant, il est recommandé de supprimer tout code propre à Azure Machine Learning de vos scripts d’entraînement de modèle. Cette séparation permet une transition plus facile entre l’environnement local et le cloud et est considérée comme une bonne pratique pour un MLOps mature. Dans la pratique, cela suppose de supprimer des lignes de code azureml.*
. Le code de journalisation et de suivi de modèle doit être remplacé par MLflow. Pour plus d’informations, consultez comment utiliser MLflow dans v2.
Cet article fournit une comparaison des scénarios dans le SDK v1 et le SDK v2.
Envoyer une exécution de script
Kit de développement logiciel (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
Mappage des fonctionnalités clés de la version v1 et de la version v2
Fonctionnalités dans le SDK v1 | Mappage approximatif dans le SDK v2 |
---|---|
experiment.submit | MLCLient.jobs.create_or_update |
ScriptRunConfig() | command() |
Étapes suivantes
Pour plus d'informations, consultez les pages suivantes :