Script upgrade uitvoeren naar SDK v2
In SDK v2 worden 'experimenten' en 'uitvoeringen' samengevoegd tot taken.
Een taak heeft een type. De meeste taken zijn opdrachttaken die een command
uitvoeren, zoals python main.py
. Wat in een taak wordt uitgevoerd, is agnostisch voor elke programmeertaal, zodat u scripts kunt uitvoeren bash
, interpreters kunt aanroepen python
, een aantal curl
opdrachten kunt uitvoeren of iets anders.
Als u een upgrade wilt uitvoeren, moet u de code voor het verzenden van taken naar SDK v2 wijzigen. Wat u in de taak uitvoert, hoeft niet te worden bijgewerkt naar SDK v2. Het is echter raadzaam om code die specifiek is voor Azure Machine Learning te verwijderen uit uw modeltrainingsscripts. Deze scheiding maakt een eenvoudigere overgang tussen lokale en cloud mogelijk en wordt beschouwd als best practice voor volwassen MLOps. In de praktijk betekent dit het verwijderen azureml.*
van coderegels. Modelregistratie- en traceringscode moet worden vervangen door MLflow. Zie MLflow gebruiken in v2 voor meer informatie.
Dit artikel bevat een vergelijking van scenario('s) in SDK v1 en SDK v2.
Een scriptuitvoering verzenden
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
Toewijzing van de belangrijkste functionaliteit in v1 en v2
Functionaliteit in SDK v1 | Ruwe toewijzing in SDK v2 |
---|---|
experiment.submit | MLCLient.jobs.create_or_update |
ScriptRunConfig() | command() |
Volgende stappen
Zie voor meer informatie: