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: