Execução de um script de atualização para o 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 é independente de qualquer linguagem de programação, ou seja, você possa executar scripts bash
, invocar interpretadores python
, executar vários comandos curl
ou qualquer outra coisa.
Para atualizar, você precisará alterar o código para enviar trabalhos para o SDK v2. O que você executa dentro do trabalho não precisa de upgrade para o SDK v2. No entanto, recomendamos remover qualquer código específico do Azure Machine Learning dos scripts de treinamento de modelo. Essa separação permite uma transição mais fácil entre o local e a nuvem e é considerada a melhor prática para um MLOps maduro. Na prática, isso significa remover as linhas de código azureml.*
. O log e o código de acompanhamento do modelo devem ser substituídos pelo MLflow. Para obter mais detalhes, confira como usar o MLflow na v2.
Este artigo fornece uma comparação de cenários no SDK v1 e no 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 da funcionalidade de chave na v1 e na v2
Funcionalidade no SDK v1 | Mapeamento aproximado no SDK v2 |
---|---|
experiment.submit | MLCLient.jobs.create_or_update |
ScriptRunConfig() | command() |
Próximas etapas
Para obter mais informações, consulte: