Script bijwerken naar SDK v2
In SDK v2 worden 'experimenten' en 'runs' samengevoegd in taken.
Een taak heeft een type. De meeste taken zijn opdrachttaken die een command
, zoals python main.py
. Wat in een taak wordt uitgevoerd, is agnostisch voor elke programmeertaal, zodat u scripts kunt uitvoeren, interpreters kunt aanroepen bash
python
, een aantal curl
opdrachten kunt uitvoeren of iets anders.
Als u een upgrade wilt uitvoeren, moet u uw code wijzigen voor het verzenden van taken naar SDK v2. Wat u binnen de taak uitvoert, hoeft niet te worden bijgewerkt naar SDK v2. Het is echter raadzaam om code te verwijderen die specifiek is voor Azure Machine Learning 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 dat regels code worden verwijderd azureml.*
. Modelregistratie- en traceringscode moet worden vervangen door MLflow. Zie voor meer informatie hoe u MLflow gebruikt in v2.
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 belangrijke 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: