Share via


Ausführen des Upgradeskripts auf SDK v2

In SDK v2 wurden „Experimente“ und „Ausführungen“ in Aufträge konsolidiert.

Ein Auftrag verfügt über einen Typ. Die meisten Aufträge sind Befehlsaufträge, die einen command ausführen, wie z. B. python main.py. Was in einem Auftrag ausgeführt wird, ist unabhängig von der jeweiligen Programmiersprache, sodass Sie bash-Skripts ausführen, python-Interpreter aufrufen, eine Reihe von curl-Befehlen oder beliebige andere Aktionen ausführen können.

Für ein Upgrade müssen Sie Ihren Code ändern, damit Aufträge an SDK v2 übermittelt werden. Was Sie innerhalb des Auftrags ausführen, benötigt kein Upgrade zum SDK v2. Azure Machine Learning-spezifischer Code sollte jedoch aus den Modelltrainingsskripts entfernt werden. Diese Trennung ermöglicht einen einfacheren Übergang zwischen der lokalen Umgebung und der Cloud und wird als bewährte Methode für ausgereifte MLOps angesehen. In der Praxis bedeutet dies, dass azureml.*-Codezeilen entfernt werden. Code für Modellprotokollierung und -nachverfolgung sollte durch MLflow ersetzt werden. Weitere Informationen finden Sie unter Nachverfolgen von ML-Experimenten und -Modellen mit MLflow oder der Azure Machine Learning CLI (v2).

Dieser Artikel enthält einen Vergleich der Szenarien in SDK v1 und SDK v2.

Senden einer Skriptausführung

  • 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
    

Zuordnung der wichtigsten Funktionen in v1 und v2

Funktionalität im SDK v1 Grobe Zuordnung in SDK v2
experiment.submit MLCLient.jobs.create_or_update
ScriptRunConfig() command()

Nächste Schritte

Weitere Informationen finden Sie unter