Condividi tramite


Eseguire lo script di aggiornamento a SDK v2

In SDK v2 "esperimenti" e "esecuzioni" vengono consolidati nei processi.

Un processo ha un tipo. La maggior parte dei processi sono processi di comando che eseguono un commandoggetto , ad esempio python main.py. Le esecuzioni in un processo sono agnostiche per qualsiasi linguaggio di programmazione, quindi è possibile eseguire script, richiamare python interpreti, eseguire bash un gruppo di curl comandi o qualsiasi altro elemento.

Per aggiornare, è necessario modificare il codice per l'invio di processi a SDK v2. L'esecuzione all'interno del processo non deve essere aggiornata a SDK v2. È tuttavia consigliabile rimuovere qualsiasi codice specifico per Azure Machine Learning dagli script di training del modello. Questa separazione consente una transizione più semplice tra locale e cloud ed è considerata una procedura consigliata per mlOps maturi. In pratica, ciò significa rimuovere azureml.* righe di codice. La registrazione del modello e il codice di rilevamento devono essere sostituiti con MLflow. Per altre informazioni, vedere come usare MLflow in v2.

Questo articolo fornisce un confronto tra scenari in SDK v1 e SDK v2.

Inviare un'esecuzione di 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
    

Mapping delle funzionalità chiave in v1 e v2

Funzionalità in SDK v1 Mapping approssimativo in SDK v2
experiment.submit MLCLient.jobs.create_or_update
ScriptRunConfig() command()

Passaggi successivi

Per altre informazioni, vedere: