Script de atualização executado para SDK v2
No SDK v2, "experimentos" e "execuções" são consolidados em trabalhos.
Um trabalho tem um tipo. A maioria dos trabalhos são trabalhos de comando que executam um command
, como python main.py
. O que é executado em um trabalho é agnóstico a qualquer linguagem de programação, então você pode executar bash
scripts, invocar python
intérpretes, executar um monte de curl
comandos ou qualquer outra coisa.
Para atualizar, você precisará alterar seu código para enviar trabalhos para o SDK v2. O que você executa no trabalho não precisa ser atualizado para o SDK v2. No entanto, é recomendável remover qualquer código específico do Azure Machine Learning de seus scripts de treinamento de modelo. Essa separação permite uma transição mais fácil entre local e nuvem e é considerada uma prática recomendada para MLOps maduros. Na prática, isso significa remover azureml.*
linhas de código. O registro em log do modelo e o código de rastreamento devem ser substituídos pelo MLflow. Para obter mais detalhes, consulte como usar o MLflow na v2.
Este artigo fornece uma comparação de cenário(s) no SDK v1 e SDK v2.
Enviar uma execução de 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
Mapeamento de funcionalidades-chave em v1 e v2
Funcionalidade no SDK v1 | Mapeamento aproximado no SDK v2 |
---|---|
experimentar.submeter | MLCLient.jobs.create_or_update |
ScriptRunConfig() | comando() |
Próximos passos
Para obter mais informações, consulte: