Ejecución del script de actualización al SDK v2
En SDK v2, los "experimentos" y las "ejecuciones" se consolidan en trabajos.
Un trabajo tiene un tipo. La mayoría de los trabajos son trabajos de comando que ejecutan command
, como python main.py
. Lo que se ejecuta en un trabajo es independiente de cualquier lenguaje de programación, por lo que puede ejecutar scripts bash
, invocar intérpretes python
, ejecutar un montón de comandos curl
o cualquier otra cosa.
Para actualizar, deberá cambiar el código para enviar trabajos a v2 SDK. Lo que se ejecuta dentro del trabajo no es preciso actualizarlo a la versión 2 del SDK. Sin embargo, se recomienda quitar cualquier código específico de Azure Machine Learning de los scripts de entrenamiento del modelo. Esta separación permite una transición más sencilla entre local y nube y se considera un procedimiento recomendado para MLOps maduro. En la práctica, esto significa quitar líneas de código de azureml.*
. El registro de modelos y el código de seguimiento deben reemplazarse por MLflow. Para más información, consulte cómo usar MLflow en v2.
En este artículo se comparan los escenarios de SDK v1 con los de SDK v2.
Envío de una ejecución 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
Asignación de la funcionalidad clave en v1 y v2
Funcionalidad en SDK v1 | Asignación aproximada en SDK v2 |
---|---|
experiment.submit | MLCLient.jobs.create_or_update |
ScriptRunConfig() | command() |
Pasos siguientes
Para más información, consulte: