Поделиться через


Запуск скрипта обновления до пакета SDK версии 2

В пакете SDK версии 2 "эксперименты" и "запуски" объединяются в задания.

Каждое задание имеет тип. Большинство заданий commandявляются заданиями команд, которые выполняют , например python main.py. То, что выполняется в задании, не зависит от языка программирования, поэтому вы можете запускать скрипты bash, вызывать интерпретаторы python, выполнять набор команд curl или что-либо еще.

Для обновления необходимо изменить код для отправки заданий в пакет SDK версии 2. То, что выполняется в задании, не требуется обновлять до пакета SDK версии 2. Тем не менее рекомендуется удалить любой код, характерный для Машинного обучения Azure, из скриптов обучения модели. Такое разделение позволяет легче переходить от локальной к облачной среде и считается лучшей практикой для развитого набора MLOps. На практике это означает удаление строк кода azureml.*. Код ведения журнала и отслеживания моделей следует заменить MLflow. Дополнительные сведения см. статье об использовании MLflow в версии 2.

В этой статье приведено сравнение сценариев в пакетах SDK версии 1 и SDK версии 2.

Отправка выполнения скрипта

  • Пакет SDK версии 1

    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 версии 2

    #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
    

Сопоставление основных функциональных возможностей в версиях 1 и 2

Функциональные возможности пакета SDK версии 1 Грубое сопоставление в пакете SDK версии 2
experiment.submit MLCLient.jobs.create_or_update
ScriptRunConfig() command()

Дальнейшие действия

Дополнительные сведения см. в разделе: