Настройка и использование целевых объектов вычислений для обучения моделиSet up and use compute targets for model training

Применимо к: даБазовый выпуск даКорпоративный выпуск                    (Обновление до выпуска "Корпоративный")APPLIES TO: yesBasic edition yesEnterprise edition                    (Upgrade to Enterprise edition)

С Машинное обучение Azure можно обучить модель на различных ресурсах или средах, совместно называемых целевыми показателями вычислений.With Azure Machine Learning, you can train your model on a variety of resources or environments, collectively referred to as compute targets. Они могут быть локальными или облачными, например Вычислительная среда машинного обучения Azure, Azure HDInsight или удаленная виртуальная машина.A compute target can be a local machine or a cloud resource, such as an Azure Machine Learning Compute, Azure HDInsight or a remote virtual machine. Можно также создать целевые объекты вычислений для развертывания моделей, как описано в статье Развертывание моделей с помощью Службы машинного обучения Azure.You can also create compute targets for model deployment as described in "Where and how to deploy your models".

Вы можете создавать целевые объекты вычислений и управлять ими с помощью расширения Машинное обучение Azure SDK, Машинное обучение Azure Studio, Azure CLI или Машинное обучение Azure VS Code.You can create and manage a compute target using the Azure Machine Learning SDK, Azure Machine Learning studio, Azure CLI or Azure Machine Learning VS Code extension. Если у вас есть целевые объекты вычислений, созданные с помощью другой службы (например, кластер HDInsight), их можно использовать, присоединив их к рабочей области Машинное обучение Azure.If you have compute targets that were created through another service (for example, an HDInsight cluster), you can use them by attaching them to your Azure Machine Learning workspace.

В этой статье вы узнаете об использовании разных целевых объектов вычисления для обучения моделей.In this article, you learn how to use various compute targets for model training. Шаги для всех вычислительных целей выполняются в том же рабочем процессе.The steps for all compute targets follow the same workflow:

  1. Создание целевого объекта вычислений, если такого еще нет.Create a compute target if you don’t already have one.
  2. Присоединение целевого объекта вычислений в рабочую область.Attach the compute target to your workspace.
  3. Настройка целевого объекта вычислений так, чтобы он содержал необходимые сценарии зависимости среды и пакет Python.Configure the compute target so that it contains the Python environment and package dependencies needed by your script.

Примечание

Код в этой статье был протестирован с Машинное обучение Azure SDK версии 1.0.74.Code in this article was tested with Azure Machine Learning SDK version 1.0.74.

Целевые объекты вычислений для обученияCompute targets for training

Машинное обучение Azure обладает различной поддержкой в различных целевых объектах вычислений.Azure Machine Learning has varying support across different compute targets. Жизненный цикл разработки обычной модели начинается с разработки и экспериментов с небольшим объемом данных.A typical model development lifecycle starts with dev/experimentation on a small amount of data. На этом этапе мы рекомендуем использовать локальную среду.At this stage, we recommend using a local environment. Например, ваш локальный компьютер или облачную виртуальную машину.For example, your local computer or a cloud-based VM. По мере перехода к обучению на больших наборах данных или распределенному обучению мы рекомендуем использовать Вычислительную среду Машинного обучения Azure, чтобы создать одно- или многоузловой кластер, который автоматически масштабируется при каждой отправке запроса на запуск.As you scale up your training on larger data sets, or do distributed training, we recommend using Azure Machine Learning Compute to create a single- or multi-node cluster that autoscales each time you submit a run. Можно также подключить собственный вычислительный ресурс, хотя не все сценарии могут поддерживаться. Подробнее об этом рассказывается ниже.You can also attach your own compute resource, although support for various scenarios may vary as detailed below:

Целевые объекты вычислений можно повторно использовать из одного учебного задания к другому.Compute targets can be reused from one training job to the next. Например, после присоединения удаленной виртуальной машины к рабочей области ее можно повторно использовать для нескольких заданий.For example, once you attach a remote VM to your workspace, you can reuse it for multiple jobs. Для конвейеров машинного обучения используйте соответствующий Шаг конвейера для каждого целевого объекта вычислений.For machine learning pipelines, use the appropriate pipeline step for each compute target.

Цели обучения  Training  targets Автоматический MLAutomated ML Конвейеры машинного обученияML pipelines Конструктор Машинное обучение AzureAzure Machine Learning designer
Локальный компьютерLocal computer Даyes    
Кластер Машинное обучение Azure COMPUTEAzure Machine Learning compute cluster Да &yes &
Настройка параметровhyperparameter tuning
Даyes Даyes
Удаленная виртуальная машинаRemote VM Да &yes &
Настройка гиперпараметровhyperparameter tuning
Даyes  
Azure ные кирпичиAzure Databricks Даyes Даyes  
Аналитика озера данных AzureAzure Data Lake Analytics   Даyes  
Azure HDInsightAzure HDInsight   Даyes  
Пакетная служба AzureAzure Batch   Даyes  

Примечание

Вычислительную среду Машинного обучения Azure можно создать как постоянный ресурс или создать динамически при запросе запуска.Azure Machine Learning Compute can be created as a persistent resource or created dynamically when you request a run. Созданные при запуске целевые объекты вычислений будут удалены после завершения обучающего запуска, поэтому объекты вычислений, созданные таким способом, невозможно использовать повторно.Run-based creation removes the compute target after the training run is complete, so you cannot reuse compute targets created this way.

Что являет собой конфигурация запуска?What's a run configuration?

При обучении этот учебный сценарий обычно запускают на локальном компьютере, а затем запускают в другом целевом объекте вычислений.When training, it is common to start on your local computer, and later run that training script on a different compute target. С помощью Машинное обучение Azure сценарий можно выполнять в различных целевых объектах вычислений без необходимости изменения сценария.With Azure Machine Learning, you can run your script on various compute targets without having to change your script.

Все, что нужно сделать, — это определить среду для каждого целевого объекта вычислений в конфигурации запуска.All you need to do is define the environment for each compute target within a run configuration. Затем, если вы хотите запустить обучающий эксперимент на другом целевом объекте вычислений, укажите конфигурацию запуска для этого вычисления.Then, when you want to run your training experiment on a different compute target, specify the run configuration for that compute. Дополнительные сведения об указании среды и ее привязке для запуска конфигурации см. в статье создание сред для обучения и развертывания и управление ими.For details of specifying an environment and binding it to run configuration, see Create and manage environments for training and deployment.

Дополнительные сведения об отправке экспериментов см. в конце этой статьи.Learn more about submitting experiments at the end of this article.

Что такое оценщик?What's an estimator?

Для упрощения обучения модели с помощью популярных платформ пакет SDK для Машинное обучение Azure Python предоставляет альтернативную абстракцию более высокого уровня, класс оценщика.To facilitate model training using popular frameworks, the Azure Machine Learning Python SDK provides an alternative higher-level abstraction, the estimator class. Мы рекомендуем использовать оценку для обучения, так как класс содержит методы, позволяющие легко создавать и настраивать конфигурации запуска.We recommend using an estimator for training since the class contains methods that allow you to easily construct and customize run configurations. Вы можете создать и использовать универсальный оценщик для отправки сценариев обучения, использующих любую выбранную платформу обучения (например, scikit-учиться).You can create and use a generic Estimator to submit training scripts that use any learning framework you choose (such as scikit-learn). Если необходимо сделать файлы данных доступными для целевого объекта вычислений, см. статью обучение с помощью машинное обучение Azure DataSets.If you need to make your data files available to your compute target, see Train with Azure Machine Learning datasets.

Для задач PyTorch, TensorFlow и Chain Машинное обучение Azure также предоставляет соответствующие средства оценки PyTorch, TensorFlowи формирователя цепочки для упрощения использования этих платформ.For PyTorch, TensorFlow, and Chainer tasks, Azure Machine Learning also provides respective PyTorch, TensorFlow, and Chainer estimators to simplify using these frameworks.

Дополнительные сведения см. в статье обучение моделей ml с помощью оценщиков.For more information, see Train ML Models with estimators.

Что такое конвейер машинного обучения?What's an ML Pipeline?

С помощью конвейеров машинного обучения можно оптимизировать рабочий процесс, используя простоту, скорость, переносимость и повторное использование.With ML pipelines, you can optimize your workflow with simplicity, speed, portability, and reuse. При создании конвейеров с помощью Машинное обучение Azure вы можете сосредоточиться на своих навыках, машинном обучении, а не на инфраструктуре и автоматизации.When building pipelines with Azure Machine Learning, you can focus on your expertise, machine learning, rather than on infrastructure and automation.

Конвейеры машинного обучения создаются на основе нескольких шагов, которые являются отдельными вычислительными единицами в конвейере.ML pipelines are constructed from multiple steps, which are distinct computational units in the pipeline. Каждый шаг может выполняться независимо и использовать изолированные ресурсы вычислений.Each step can run independently and use isolated compute resources. Это позволяет нескольким специалистам по обработке данных работать в одном конвейере одновременно без избыточных вычислений, а также упрощает использование различных типов вычислений и размеров для каждого шага.This allows multiple data scientists to work on the same pipeline at the same time without over-taxing compute resources, and also makes it easy to use different compute types/sizes for each step.

Совет

Конвейеры МАШИНного обучения могут использовать конфигурацию запуска или средства оценки при обучении моделей.ML Pipelines can use run configuration or estimators when training models.

Хотя конвейеры ML могут обучать модели, они также могут подготавливать данные перед обучением и развертыванием моделей после обучения.While ML pipelines can train models, they can also prepare data before training and deploy models after training. Одним из основных вариантов использования конвейеров является пакетная оценка.One of the primary use cases for pipelines is batch scoring. Дополнительные сведения см. в разделе конвейеры: Оптимизация рабочих процессов машинного обучения.For more information, see Pipelines: Optimize machine learning workflows.

Настройка в PythonSet up in Python

Чтобы настроить эти целевые объекты вычислений, используйте следующие разделы.Use the sections below to configure these compute targets:

Локальный компьютерLocal computer

  1. Создание и присоединение: нет необходимости создавать или подключать целевой объект вычислений для использования локального компьютера в качестве среды обучения.Create and attach: There's no need to create or attach a compute target to use your local computer as the training environment.

  2. Настройка: при использовании локального компьютера в качестве целевого объекта вычислений в среде разработкибудет выполняться обучающий код.Configure: When you use your local computer as a compute target, the training code is run in your development environment. Если эта среда уже содержит пакеты Python, необходимо использовать среду, управляемую пользователем.If that environment already has the Python packages you need, use the user-managed environment.

from azureml.core.runconfig import RunConfiguration

# Edit a run configuration property on the fly.
run_local = RunConfiguration()

run_local.environment.python.user_managed_dependencies = True

Теперь, после подключения вычислительной среды и настройки запуска, следующий шаг — отправить запуск на выполнение обучения.Now that you’ve attached the compute and configured your run, the next step is to submit the training run.

Вычислительная среда Машинного обучения AzureAzure Machine Learning Compute

Вычислительная среда Машинного обучения Azure — это управляемая вычислительная инфраструктура, которая позволяет пользователю легко создавать одно- и многоузловые вычислительные среды.Azure Machine Learning Compute is a managed-compute infrastructure that allows the user to easily create a single or multi-node compute. Она создается в регионе вашей рабочей области и является ресурсом, который можно использовать совместно с другими пользователями в этой рабочей области.The compute is created within your workspace region as a resource that can be shared with other users in your workspace. Вычислительная среда автоматически масштабируется при отправке задания, а также может быть размещена в виртуальной сети Azure.The compute scales up automatically when a job is submitted, and can be put in an Azure Virtual Network. Она выполняется в контейнерной среде, упаковывая зависимости вашей модели в контейнер Docker.The compute executes in a containerized environment and packages your model dependencies in a Docker container.

Вычислительную среду Машинного обучения Azure можно использовать для распространения процесса обучения в кластере вычислительных узлов на основе ЦП или GPU, размещенном в облаке.You can use Azure Machine Learning Compute to distribute the training process across a cluster of CPU or GPU compute nodes in the cloud. Дополнительные сведения о размерах виртуальных машин, которые содержат GPU, см. в статье Размеры виртуальных машин, оптимизированных для GPU.For more information on the VM sizes that include GPUs, see GPU-optimized virtual machine sizes.

Вычислительная среда Машинного обучения Azure имеет ограничения по умолчанию, такие как количество ядер, которые могут быть выделены.Azure Machine Learning Compute has default limits, such as the number of cores that can be allocated. Дополнительные сведения см. в статье Управление квотами для ресурсов Azure и их запрашивание.For more information, see Manage and request quotas for Azure resources.

Можно создать Вычислительную среду Машинного обучения Azure по запросу при запланированном запуске или создать ее в качестве постоянного ресурса.You can create an Azure Machine Learning compute environment on demand when you schedule a run, or as a persistent resource.

Создание при запускеRun-based creation

Вы можете создать Вычислительную среду Машинного обучения Azure в качестве целевого объекта вычислений во время выполнения.You can create Azure Machine Learning Compute as a compute target at run time. Вычислительная среда создается автоматически для запуска.The compute is automatically created for your run. Эта среда автоматически удаляется после завершения выполнения запуска.The compute is deleted automatically once the run completes.

Важно!

Функция создания Вычислительной среды Машинного обучения Azure при запуске в настоящее время находится в предварительной версии.Run-based creation of Azure Machine Learning compute is currently in Preview. Не применяйте создание при запуске, если вы используете автоматическую настройку гиперпараметров или автоматическое машинное обучение.Don't use run-based creation if you use automated hyperparameter tuning or automated machine learning. Чтобы использовать настройку гиперпараметров или автоматическое машинное обучение, создайте постоянный целевой объект вычислений вместо этого.To use hyperparameter tuning or automated machine learning, create a persistent compute target instead.

  1. Создание, присоединение и настройка: при создании на основе выполнения выполняются все необходимые действия для создания, присоединения и настройки целевого объекта вычислений с конфигурацией запуска.Create, attach, and configure: The run-based creation performs all the necessary steps to create, attach, and configure the compute target with the run configuration.
from azureml.core.compute import ComputeTarget, AmlCompute

# First, list the supported VM families for Azure Machine Learning Compute
print(AmlCompute.supported_vmsizes(workspace=ws))

from azureml.core.runconfig import RunConfiguration
# Create a new runconfig object
run_temp_compute = RunConfiguration()

# Signal that you want to use AmlCompute to execute the script
run_temp_compute.target = "amlcompute"

# AmlCompute is created in the same region as your workspace
# Set the VM size for AmlCompute from the list of supported_vmsizes
run_temp_compute.amlcompute.vm_size = 'STANDARD_D2_V2'

Теперь, после подключения вычислительной среды и настройки запуска, следующий шаг — отправить запуск на выполнение обучения.Now that you’ve attached the compute and configured your run, the next step is to submit the training run.

Постоянная вычислительная средаPersistent compute

Постоянную Вычислительную среду машинного обучения Azure можно многократно использовать в заданиях.A persistent Azure Machine Learning Compute can be reused across jobs. Ее можно использовать совместно с другими пользователями в рабочей области, и она сохраняется после выполнения заданий.The compute can be shared with other users in the workspace and is kept between jobs.

  1. Создание и присоединение: чтобы создать постоянный машинное обучение Azureный ресурс вычислений в Python, укажите свойства vm_size и max_nodes .Create and attach: To create a persistent Azure Machine Learning Compute resource in Python, specify the vm_size and max_nodes properties. Затем Машинное обучение Azure использует интеллектуальные значения по умолчанию для остальных свойств.Azure Machine Learning then uses smart defaults for the other properties. Когда вычислительная среда не используется, она автоматически масштабируется до нуля узлов.The compute autoscales down to zero nodes when it isn't used. Выделенные виртуальные машины создаются для выполнения заданий по мере необходимости.Dedicated VMs are created to run your jobs as needed.

    • vm_size: семейство виртуальных машин для узлов, созданных машинное обучение Azure COMPUTE.vm_size: The VM family of the nodes created by Azure Machine Learning Compute.
    • max_nodes: максимальное число узлов, на которое автоматически масштабируется при выполнении задания на машинное обучение Azure вычислений.max_nodes: The max number of nodes to autoscale up to when you run a job on Azure Machine Learning Compute.
    from azureml.core.compute import ComputeTarget, AmlCompute
    from azureml.core.compute_target import ComputeTargetException
    
    # Choose a name for your CPU cluster
    cpu_cluster_name = "cpucluster"
    
    # Verify that cluster does not exist already
    try:
        cpu_cluster = ComputeTarget(workspace=ws, name=cpu_cluster_name)
        print('Found existing cluster, use it.')
    except ComputeTargetException:
        compute_config = AmlCompute.provisioning_configuration(vm_size='STANDARD_D2_V2',
                                                               max_nodes=4)
        cpu_cluster = ComputeTarget.create(ws, cpu_cluster_name, compute_config)
    
    cpu_cluster.wait_for_completion(show_output=True)
    

    При создании Вычислительной среды машинного обучения Azure вы можете также настроить несколько дополнительных свойств.You can also configure several advanced properties when you create Azure Machine Learning Compute. Эти свойства позволяют создать постоянный кластер фиксированного размера, который может размещаться в существующей виртуальной сети Azure в вашей подписке.The properties allow you to create a persistent cluster of fixed size, or within an existing Azure Virtual Network in your subscription. Дополнительные сведения см. в разделе о классе AmlCompute.See the AmlCompute class for details.

    Кроме того, можно создать и присоединить устойчивый Машинное обучение Azureный ресурс в машинное обучение Azure Studio.Or you can create and attach a persistent Azure Machine Learning Compute resource in Azure Machine Learning studio.

  2. Настройка: Создайте конфигурацию запуска для постоянного целевого объекта вычислений.Configure: Create a run configuration for the persistent compute target.

    from azureml.core.runconfig import RunConfiguration
    from azureml.core.conda_dependencies import CondaDependencies
    from azureml.core.runconfig import DEFAULT_CPU_IMAGE
    
    # Create a new runconfig object
    run_amlcompute = RunConfiguration()
    
    # Use the cpu_cluster you created above. 
    run_amlcompute.target = cpu_cluster
    
    # Enable Docker
    run_amlcompute.environment.docker.enabled = True
    
    # Set Docker base image to the default CPU-based image
    run_amlcompute.environment.docker.base_image = DEFAULT_CPU_IMAGE
    
    # Use conda_dependencies.yml to create a conda environment in the Docker image for execution
    run_amlcompute.environment.python.user_managed_dependencies = False
    
    # Specify CondaDependencies obj, add necessary packages
    run_amlcompute.environment.python.conda_dependencies = CondaDependencies.create(conda_packages=['scikit-learn'])
    

Теперь, после подключения вычислительной среды и настройки запуска, следующий шаг — отправить запуск на выполнение обучения.Now that you’ve attached the compute and configured your run, the next step is to submit the training run.

Удаленные виртуальные машиныRemote virtual machines

Машинное обучение Azure также поддерживает использование собственных вычислительных ресурсов и подключение их к рабочей области.Azure Machine Learning also supports bringing your own compute resource and attaching it to your workspace. Один такой тип ресурса — произвольная Удаленная виртуальная машина, если она доступна из Машинное обучение Azure.One such resource type is an arbitrary remote VM, as long as it's accessible from Azure Machine Learning. Ресурсом может быть виртуальная машина Azure, удаленный или локальный сервер в вашей организации.The resource can be an Azure VM, a remote server in your organization, or on-premises. В частности, указав IP-адрес и учетные данные (имя пользователя и пароль или ключ SSH), можно использовать любую доступную виртуальную машину для удаленного запуска.Specifically, given the IP address and credentials (user name and password, or SSH key), you can use any accessible VM for remote runs.

Можно использовать системную среду Conda, существующую среду Python или контейнер Docker.You can use a system-built conda environment, an already existing Python environment, or a Docker container. Для выполнения контейнера Docker на виртуальной машине должен быть запущен модуль Docker.To execute on a Docker container, you must have a Docker Engine running on the VM. Эта функция особенно удобна в случаях, когда необходима более гибкая облачная среда разработки и проведения экспериментов, чем локальный компьютер.This functionality is especially useful when you want a more flexible, cloud-based dev/experimentation environment than your local machine.

Используйте Виртуальную машину для обработки и анализа данных в качестве виртуальной машины Azure.Use the Azure Data Science Virtual Machine (DSVM) as the Azure VM of choice for this scenario. Эта виртуальная машина является предварительно настроенной обработкой и анализом данных и средой разработки искусственного интеллекта в Azure.This VM is a pre-configured data science and AI development environment in Azure. Виртуальная машина предлагает выбор средств и платформ для разработки машинного обучения в течение всего жизненного цикла.The VM offers a curated choice of tools and frameworks for full-lifecycle machine learning development. Дополнительных сведения об использовании DSVM со Службой машинного обучения Azure см. в статье Настройка среды разработки для Машинного обучения Azure.For more information on how to use the DSVM with Azure Machine Learning, see Configure a development environment.

  1. Создание. Создайте DSVM, прежде чем использовать его для обучения модели.Create: Create a DSVM before using it to train your model. Подробные сведения о создании этого ресурса см. в разделе Подготовка виртуальной машины Linux (Ubuntu) для обработки и анализа данных.To create this resource, see Provision the Data Science Virtual Machine for Linux (Ubuntu).

    Предупреждение

    Машинное обучение Azure поддерживает только виртуальные машины под управлением Ubuntu.Azure Machine Learning only supports virtual machines that run Ubuntu. Поэтому создаваемая виртуальная или существующая виртуальная машина, которую вы выбираете, должна работать под управлением Ubuntu.When you create a VM or choose an existing VM, you must select a VM that uses Ubuntu.

  2. Подключить: чтобы подключить существующую виртуальную машину в качестве целевого объекта вычислений, необходимо указать полное доменное имя, имя пользователя и пароль для виртуальной машины.Attach: To attach an existing virtual machine as a compute target, you must provide the fully qualified domain name (FQDN), user name, and password for the virtual machine. В приведенном примере замените <fqdn> на общедоступное полное доменное имя виртуальной машины или общедоступный IP-адрес.In the example, replace <fqdn> with the public FQDN of the VM, or the public IP address. Замените <username> и <password> именем пользователя и паролем SSH для виртуальной машины.Replace <username> and <password> with the SSH user name and password for the VM.

    from azureml.core.compute import RemoteCompute, ComputeTarget
    
    # Create the compute config 
    compute_target_name = "attach-dsvm"
    attach_config = RemoteCompute.attach_configuration(address = "<fqdn>",
                                                     ssh_port=22,
                                                     username='<username>',
                                                     password="<password>")
    
    # If you authenticate with SSH keys instead, use this code:
    #                                                  ssh_port=22,
    #                                                  username='<username>',
    #                                                  password=None,
    #                                                  private_key_file="<path-to-file>",
    #                                                  private_key_passphrase="<passphrase>")
    
    # Attach the compute
    compute = ComputeTarget.attach(ws, compute_target_name, attach_config)
    
    compute.wait_for_completion(show_output=True)
    

    Вы также можете подключить DSVM к рабочей области с помощью машинное обучение Azure Studio.Or you can attach the DSVM to your workspace using Azure Machine Learning studio.

  3. Настройка: Создайте конфигурацию запуска для целевого объекта вычислений DSVM.Configure: Create a run configuration for the DSVM compute target. Для создания и настройки среды обучения на DSVM используются Docker и Conda.Docker and conda are used to create and configure the training environment on the DSVM.

    import azureml.core
    from azureml.core.runconfig import RunConfiguration
    from azureml.core.conda_dependencies import CondaDependencies
    
    run_dsvm = RunConfiguration(framework = "python")
    
    # Set the compute target to the Linux DSVM
    run_dsvm.target = compute_target_name 
    
    # Use Docker in the remote VM
    run_dsvm.environment.docker.enabled = True
    
    # Use the CPU base image 
    # To use GPU in DSVM, you must also use the GPU base Docker image "azureml.core.runconfig.DEFAULT_GPU_IMAGE"
    run_dsvm.environment.docker.base_image = azureml.core.runconfig.DEFAULT_CPU_IMAGE
    print('Base Docker image is:', run_dsvm.environment.docker.base_image)
    
    # Specify the CondaDependencies object
    run_dsvm.environment.python.conda_dependencies = CondaDependencies.create(conda_packages=['scikit-learn'])
    

Теперь, после подключения вычислительной среды и настройки запуска, следующий шаг — отправить запуск на выполнение обучения.Now that you’ve attached the compute and configured your run, the next step is to submit the training run.

Azure HDInsightAzure HDInsight

Azure HDInsight — это популярная платформа для анализа больших данных.Azure HDInsight is a popular platform for big-data analytics. Она предоставляет Apache Spark, который можно использовать для обучения модели.The platform provides Apache Spark, which can be used to train your model.

  1. Создание. Создайте кластер HDInsight, прежде чем использовать его для обучения модели.Create: Create the HDInsight cluster before you use it to train your model. Инструкции по созданию Spark в кластере HDInsight см. в статье Краткое руководство. Создание кластера Apache Spark в HDInsight с помощью шаблона.To create a Spark on HDInsight cluster, see Create a Spark Cluster in HDInsight.

    При создании кластера необходимо указать имя пользователя SSH и пароль.When you create the cluster, you must specify an SSH user name and password. Запишите эти значения — они вам потребуются при использовании HDInsight в качестве целевого объекта вычислений.Take note of these values, as you need them to use HDInsight as a compute target.

    После создания кластера подключите его, указав такое имя узла: <имя кластера>-ssh.azurehdinsight.net, где <имя кластера> — это имя, которое вы указали для кластера.After the cluster is created, connect to it with the hostname <clustername>-ssh.azurehdinsight.net, where <clustername> is the name that you provided for the cluster.

  2. Attach: чтобы подключить кластер hdinsight в качестве целевого объекта вычислений, необходимо указать имя узла, пользователя и пароль для кластера hdinsight.Attach: To attach an HDInsight cluster as a compute target, you must provide the hostname, user name, and password for the HDInsight cluster. В следующем примере пакет SDK используется для присоединения кластера к рабочей области.The following example uses the SDK to attach a cluster to your workspace. В примере замените <имя кластера> именем кластера.In the example, replace <clustername> with the name of your cluster. Замените <username> и <password> именем пользователя и паролем SSH для кластера.Replace <username> and <password> with the SSH user name and password for the cluster.

    from azureml.core.compute import ComputeTarget, HDInsightCompute
    from azureml.exceptions import ComputeTargetException
    
    try:
     # if you want to connect using SSH key instead of username/password you can provide parameters private_key_file and private_key_passphrase
     attach_config = HDInsightCompute.attach_configuration(address='<clustername>-ssh.azurehdinsight.net', 
                                                           ssh_port=22, 
                                                           username='<ssh-username>', 
                                                           password='<ssh-pwd>')
     hdi_compute = ComputeTarget.attach(workspace=ws, 
                                        name='myhdi', 
                                        attach_configuration=attach_config)
    
    except ComputeTargetException as e:
     print("Caught = {}".format(e.message))
    
    hdi_compute.wait_for_completion(show_output=True)
    

    Кластер HDInsight можно подключить к рабочей области с помощью машинное обучение Azure Studio.Or you can attach the HDInsight cluster to your workspace using Azure Machine Learning studio.

  3. Настройка: Создайте конфигурацию запуска для целевого объекта вычислений HDi.Configure: Create a run configuration for the HDI compute target.

    from azureml.core.runconfig import RunConfiguration
    from azureml.core.conda_dependencies import CondaDependencies
    
    
    # use pyspark framework
    run_hdi = RunConfiguration(framework="pyspark")
    
    # Set compute target to the HDI cluster
    run_hdi.target = hdi_compute.name
    
    # specify CondaDependencies object to ask system installing numpy
    cd = CondaDependencies()
    cd.add_conda_package('numpy')
    run_hdi.environment.python.conda_dependencies = cd
    

Теперь, после подключения вычислительной среды и настройки запуска, следующий шаг — отправить запуск на выполнение обучения.Now that you’ve attached the compute and configured your run, the next step is to submit the training run.

Пакетная служба AzureAzure Batch

Пакетная служба Azure используется для эффективного выполнения крупномасштабных параллельных и высокопроизводительных вычислительных приложений (HPC) в облаке.Azure Batch is used to run large-scale parallel and high-performance computing (HPC) applications efficiently in the cloud. Азуребатчстеп можно использовать в конвейере Машинное обучение Azure для отправки заданий в пул виртуальных машин пакетной службы Azure.AzureBatchStep can be used in an Azure Machine Learning Pipeline to submit jobs to an Azure Batch pool of machines.

Чтобы подключить пакетную службу Azure в качестве целевого объекта вычислений, необходимо использовать пакет SDK для Машинное обучение Azure и предоставить следующие сведения:To attach Azure Batch as a compute target, you must use the Azure Machine Learning SDK and provide the following information:

  • Имя пакетного вычислений Azure: понятное имя, которое будет использоваться для вычислений в рабочей области.Azure Batch compute name: A friendly name to be used for the compute within the workspace
  • Имя учетной записи пакетной службы Azure: имя учетной записи пакетной службы Azure.Azure Batch account name: The name of the Azure Batch account
  • Группа ресурсов. Группа ресурсов, содержащая учетную запись пакетной службы Azure.Resource Group: The resource group that contains the Azure Batch account.

В следующем коде показано, как подключить пакетную службу Azure в качестве целевого объекта вычислений:The following code demonstrates how to attach Azure Batch as a compute target:

from azureml.core.compute import ComputeTarget, BatchCompute
from azureml.exceptions import ComputeTargetException

# Name to associate with new compute in workspace
batch_compute_name = 'mybatchcompute'

# Batch account details needed to attach as compute to workspace
batch_account_name = "<batch_account_name>"  # Name of the Batch account
# Name of the resource group which contains this account
batch_resource_group = "<batch_resource_group>"

try:
    # check if the compute is already attached
    batch_compute = BatchCompute(ws, batch_compute_name)
except ComputeTargetException:
    print('Attaching Batch compute...')
    provisioning_config = BatchCompute.attach_configuration(
        resource_group=batch_resource_group, account_name=batch_account_name)
    batch_compute = ComputeTarget.attach(
        ws, batch_compute_name, provisioning_config)
    batch_compute.wait_for_completion()
    print("Provisioning state:{}".format(batch_compute.provisioning_state))
    print("Provisioning errors:{}".format(batch_compute.provisioning_errors))

print("Using Batch compute:{}".format(batch_compute.cluster_resource_id))

Настройка в Машинное обучение Azure StudioSet up in Azure Machine Learning studio

Вы можете получить доступ к целевым объектам вычислений, связанным с рабочей областью, в Машинное обучение Azure Studio.You can access the compute targets that are associated with your workspace in the Azure Machine Learning studio. С помощью студии можно выполнять следующие задачи:You can use the studio to:

После того как целевой объект будет создан и присоединен к рабочему пространству, вы будете использовать его в конфигурации запуска с объектом ComputeTarget.After a target is created and attached to your workspace, you will use it in your run configuration with a ComputeTarget object:

from azureml.core.compute import ComputeTarget
myvm = ComputeTarget(workspace=ws, name='my-vm-name')

Просмотр целевых объектов вычисленийView compute targets

Чтобы просмотреть целевые объекты вычислений для своей рабочей области, сделайте следующее:To see the compute targets for your workspace, use the following steps:

  1. Перейдите в машинное обучение Azure Studio.Navigate to Azure Machine Learning studio.

  2. В разделе Приложения выберите Вычисления.Under Applications, select Compute.

    Вкладка "" представления "вычисление"View compute tab

Создание целевого объекта вычисленийCreate a compute target

Выполните указанные выше шаги, чтобы просмотреть список целевых объектов вычислений.Follow the previous steps to view the list of compute targets. Затем выполните следующие действия, чтобы создать целевой объект вычислений.Then use these steps to create a compute target:

  1. Щелкните значок плюса (+), чтобы добавить целевой объект вычислений.Select the plus sign (+) to add a compute target.

    Добавление целевого объекта вычислений

  2. Введите имя для целевого объекта вычислений.Enter a name for the compute target.

  3. Выберите Вычислительная среда Машинного обучения в качестве типа вычислительной среды для среды обучения.Select Machine Learning Compute as the type of compute to use for Training.

    Примечание

    Машинное обучение Azure COMPUTE — это единственный ресурс управляемого вычислений, который можно создать в Машинное обучение Azure Studio.Azure Machine Learning Compute is the only managed-compute resource you can create in Azure Machine Learning studio. После создания все вычислительные ресурсы можно присоединить.All other compute resources can be attached after they are created.

  4. Заполните форму.Fill out the form. Введите значения для обязательных свойств, в частности, укажите семейство виртуальных машин и максимальное количество узлов, до которого можно развернуть вычислительный объект.Provide values for the required properties, especially VM Family, and the maximum nodes to use to spin up the compute.

  5. Нажмите кнопку Создать.Select Create.

  6. Чтобы увидеть состояние операции создания, выберите целевой объект вычислений из списка.View the status of the create operation by selecting the compute target from the list:

    Выбор целевого объекта вычислений, чтобы просмотреть состояние операции создания

  7. Ниже приведены сведения о выбранном целевом объекте вычислений.You then see the details for the compute target:

    Просмотр сведений о целевом объекте вычислений

Присоединение целевых объектов вычисленийAttach compute targets

Чтобы использовать целевые объекты вычислений, созданные за пределами рабочей области Машинное обучение Azure, необходимо присоединить их.To use compute targets created outside the Azure Machine Learning workspace, you must attach them. Присоединение целевого объекта вычислений сделает его доступным для рабочей области.Attaching a compute target makes it available to your workspace.

Выполните описанные ранее шаги, чтобы просмотреть список целевых объектов вычислений.Follow the steps described earlier to view the list of compute targets. Выполните следующие действия, чтобы присоединить целевой объект вычислений.Then use the following steps to attach a compute target:

  1. Щелкните значок плюса (+), чтобы добавить целевой объект вычислений.Select the plus sign (+) to add a compute target.

  2. Введите имя для целевого объекта вычислений.Enter a name for the compute target.

  3. Выберите тип вычислительной среды, который нужно подключить для обучения.Select the type of compute to attach for Training:

    Важно!

    Не все типы вычислений можно присоединить из Машинное обучение Azure Studio.Not all compute types can be attached from Azure Machine Learning studio. Типы вычислительных сред, которые в настоящее время можно подключить для обучения:The compute types that can currently be attached for training include:

    • Удаленная виртуальная машина.A remote VM
    • Azure Databricks (для использования в конвейерах машинного обучения).Azure Databricks (for use in machine learning pipelines)
    • Azure Data Lake Analytics (для использования в конвейерах машинного обучения).Azure Data Lake Analytics (for use in machine learning pipelines)
    • Azure HDInsightAzure HDInsight
  4. Заполните форму и укажите значения для обязательных свойств.Fill out the form and provide values for the required properties.

    Примечание

    Корпорация Майкрософт рекомендует использовать ключи SSH, так как они безопаснее, чем пароли.Microsoft recommends that you use SSH keys, which are more secure than passwords. Пароли подвержены атакам методом подбора.Passwords are vulnerable to brute force attacks. Ключи SSH задействуют криптографические подписи.SSH keys rely on cryptographic signatures. Сведения о создании ключей SSH для использования на Виртуальных машинах Azure см. в следующих документах:For information on how to create SSH keys for use with Azure Virtual Machines, see the following documents:

  5. Выберите Подключить.Select Attach.

  6. Чтобы просмотреть состояние операции подключения, выберите целевой объект вычислений из списка.View the status of the attach operation by selecting the compute target from the list.

Настройка с помощью интерфейса командной строкиSet up with CLI

Вы можете получить доступ к целевым объектам вычислений, связанным с рабочей областью, с помощью расширения CLI для машинное обучение Azure.You can access the compute targets that are associated with your workspace using the CLI extension for Azure Machine Learning. Вы можете использовать Azure CLI для таких целей.You can use the CLI to:

  • Создание управляемого целевого объекта вычислений.Create a managed compute target
  • Обновление управляемого целевого объекта вычислений.Update a managed compute target
  • Присоединение управляемого целевого объекта вычислений.Attach an unmanaged compute target

Дополнительные сведения см. в разделе Управление ресурсами.For more information, see Resource management.

Настройка с помощью VS CodeSet up with VS Code

Вы можете получать доступ, создавать и администрировать целевые объекты вычислений, связанные с рабочей областью, с помощью расширения VS Code для машинное обучение Azure.You can access, create, and manage the compute targets that are associated with your workspace using the VS Code extension for Azure Machine Learning.

Отправка учебного прогона с помощью пакета SDK для Машинное обучение AzureSubmit training run using Azure Machine Learning SDK

После создания конфигурации запуска, используйте ее для выполнения эксперимента.After you create a run configuration, you use it to run your experiment. Шаблон кода для отправки запуска на выполнение обучения одинаковый для всех типов целевых объектов вычислений.The code pattern to submit a training run is the same for all types of compute targets:

  1. Создание эксперимента для запускаCreate an experiment to run
  2. Выполните прогон.Submit the run.
  3. Дождитесь завершения прогона.Wait for the run to complete.

Важно!

При отправке обучающего запуска создается моментальный снимок каталога, содержащего сценарии обучения, которые отправляются в целевой объект вычислений.When you submit the training run, a snapshot of the directory that contains your training scripts is created and sent to the compute target. Он также хранится в рамках эксперимента в рабочей области.It is also stored as part of the experiment in your workspace. Если изменить файлы и отправить запуск снова, будут отправлены только измененные файлы.If you change files and submit the run again, only the changed files will be uploaded.

Чтобы предотвратить включение файлов в моментальный снимок, создайте файл . gitignore или .amlignore в каталоге и добавьте в него файлы.To prevent files from being included in the snapshot, create a .gitignore or .amlignore file in the directory and add the files to it. Файл .amlignore использует тот же синтаксис и шаблоны, что и файл gitignore .The .amlignore file uses the same syntax and patterns as the .gitignore file. Если оба файла существуют, приоритет имеет файл .amlignore.If both files exist, the .amlignore file takes precedence.

Дополнительные сведения см. в разделе о моментальных снимках.For more information, see Snapshots.

Создание экспериментаCreate an experiment

Сначала создайте эксперимент в рабочей области.First, create an experiment in your workspace.

from azureml.core import Experiment
experiment_name = 'my_experiment'

exp = Experiment(workspace=ws, name=experiment_name)

Отправка экспериментаSubmit the experiment

Отправка эксперимента с помощью объекта ScriptRunConfig.Submit the experiment with a ScriptRunConfig object. Этот объект включает в себя следующее.This object includes the:

  • source_directory: исходный каталог, содержащий сценарий обученияsource_directory: The source directory that contains your training script
  • Скрипт: указание обучающего скриптаscript: Identify the training script
  • run_config: конфигурация запуска, которая, в свою очередь, определяет, где будет выполняться обучение.run_config: The run configuration, which in turn defines where the training will occur.

Например, чтобы использовать локальную конфигурацию целевого объекта, выполните следующее.For example, to use the local target configuration:

from azureml.core import ScriptRunConfig
import os 

script_folder = os.getcwd()
src = ScriptRunConfig(source_directory = script_folder, script = 'train.py', run_config = run_local)
run = exp.submit(src)
run.wait_for_completion(show_output = True)

Переключите тот же эксперимент для запуска в другом целевом объекте вычислений, используя другую конфигурацию запуска, такую ​​как amlcompute target.Switch the same experiment to run in a different compute target by using a different run configuration, such as the amlcompute target:

from azureml.core import ScriptRunConfig

src = ScriptRunConfig(source_directory = script_folder, script = 'train.py', run_config = run_amlcompute)
run = exp.submit(src)
run.wait_for_completion(show_output = True)

Совет

В этом примере по умолчанию используется только один узел целевого объекта вычислений для обучения.This example defaults to only using one node of the compute target for training. Чтобы использовать несколько узлов, задайте нужное число узлов в node_count конфигурации запуска.To use more than one node, set the node_count of the run configuration to the desired number of nodes. Например, следующий код задает количество узлов, используемых для обучения, до четырех:For example, the following code sets the number of nodes used for training to four:

src.run_config.node_count = 4

Также вы можете:Or you can:

Дополнительные сведения см. в документации по скриптрунконфиг и RunConfiguration .For more information, see the ScriptRunConfig and RunConfiguration documentation.

Создание конфигурации запуска и отправка выполнения с помощью Машинное обучение Azure CLICreate run configuration and submit run using Azure Machine Learning CLI

Расширение CLI Azure CLI и машинное обучение можно использовать для создания конфигураций запуска и отправки запусков на различных целевых объектах вычислений.You can use Azure CLI and Machine Learning CLI extension to create run configurations and submit runs on different compute targets. В следующих примерах предполагается, что у вас есть существующий рабочая область машинного обучения Azure и вы вошли в Azure с помощью команды az login CLI.The following examples assume that you have an existing Azure Machine Learning Workspace and you have logged in to Azure using az login CLI command.

Создать конфигурацию запускаCreate run configuration

Самый простой способ создать конфигурацию запуска — переходить по папке, содержащей скрипты Python машинного обучения, и использовать команду CLI.The simplest way to create run configuration is to navigate the folder that contains your machine learning Python scripts, and use CLI command

az ml folder attach

Эта команда создает вложенную папку .azureml, содержащую файлы конфигурации запуска шаблона для различных целевых объектов вычислений.This command creates a subfolder .azureml that contains template run configuration files for different compute targets. Вы можете скопировать и изменить эти файлы, чтобы настроить конфигурацию, например добавить пакеты Python или изменить параметры DOCKER.You can copy and edit these files to customize your configuration, for example to add Python packages or change Docker settings.

Структура файла конфигурации запускаStructure of run configuration file

Файл конфигурации запуска YAML отформатирован со следующими разделамиThe run configuration file is YAML formatted, with following sections

  • Выполняемый скрипт и его аргументыThe script to run and its arguments
  • Имя целевого объекта вычислений (local) или имя вычислений в рабочей области.Compute target name, either "local" or name of a compute under the workspace.
  • Параметры для выполнения запуска: Framework, Communicator для распределенных запусков, максимальная длительность и количество вычислений на узлах.Parameters for executing the run: framework, communicator for distributed runs, maximum duration, and number of compute nodes.
  • Раздел "среда".Environment section. Дополнительные сведения о полях в этом разделе см. в статье Создание и управление средами для обучения и развертывания .See Create and manage environments for training and deployment for details of the fields in this section.
    • Чтобы указать пакеты Python для установки для запуска, создания файла среды condaи установки поля кондадепенденЦиесфиле .To specify Python packages to install for the run, create conda environment file, and set condaDependenciesFile field.
  • Сведения журнала выполнения позволяют указать папку файла журнала, а также включить или отключить сбор выходных данных и моментальные снимки журнала выполнения.Run history details to specify log file folder, and to enable or disable output collection and run history snapshots.
  • Сведения о конфигурации, относящиеся к выбранной платформе.Configuration details specific to the framework selected.
  • Сведения о ссылках на данные и хранилище данных.Data reference and data store details.
  • Сведения о конфигурации, относящиеся к Вычислительная среда Машинного обучения для создания нового кластера.Configuration details specific for Machine Learning Compute for creating a new cluster.

См. пример JSON-файла для полной схемы runconfig.See the example JSON file for a full runconfig schema.

Создание экспериментаCreate an experiment

Сначала создайте эксперимент для своих запусков.First, create an experiment for your runs

az ml experiment create -n <experiment>

Запустить скриптScript run

Чтобы отправить скрипт, выполните командуTo submit a script run, execute a command

az ml run submit-script -e <experiment> -c <runconfig> my_train.py

Запуск устройстваHyperDrive run

С помощью Azure CLI можно выполнять настройку параметров.You can use HyperDrive with Azure CLI to perform parameter tuning runs. Сначала создайте файл конфигурации для диска в следующем формате.First, create a HyperDrive configuration file in the following format. Дополнительные сведения о параметрах настройки параметров см. в разделе Настройка параметров для статьи о модели.See Tune hyperparameters for your model article for details on hyperparameter tuning parameters.

# hdconfig.yml
sampling: 
    type: random # Supported options: Random, Grid, Bayesian
    parameter_space: # specify a name|expression|values tuple for each parameter.
    - name: --penalty # The name of a script parameter to generate values for.
      expression: choice # supported options: choice, randint, uniform, quniform, loguniform, qloguniform, normal, qnormal, lognormal, qlognormal
      values: [0.5, 1, 1.5] # The list of values, the number of values is dependent on the expression specified.
policy: 
    type: BanditPolicy # Supported options: BanditPolicy, MedianStoppingPolicy, TruncationSelectionPolicy, NoTerminationPolicy
    evaluation_interval: 1 # Policy properties are policy specific. See the above link for policy specific parameter details.
    slack_factor: 0.2
primary_metric_name: Accuracy # The metric used when evaluating the policy
primary_metric_goal: Maximize # Maximize|Minimize
max_total_runs: 8 # The maximum number of runs to generate
max_concurrent_runs: 2 # The number of runs that can run concurrently.
max_duration_minutes: 100 # The maximum length of time to run the experiment before cancelling.

Добавьте этот файл вместе с файлами конфигурации запуска.Add this file alongside the run configuration files. Затем отправьте запрос на запуск с помощью:Then submit a HyperDrive run using:

az ml run submit-hyperdrive -e <experiment> -c <runconfig> --hyperdrive-configuration-name <hdconfig> my_train.py

Обратите внимание на раздел arguments в runconfig и пространстве параметров в файле config. Они содержат аргументы командной строки, передаваемые в сценарий обучения.Note the arguments section in runconfig and parameter space in HyperDrive config. They contain the command-line arguments to be passed to training script. Значение в runconfig остается неизменным для каждой итерации, в то время как диапазон в файле конфигурации для работы с ними перебирается.The value in runconfig stays the same for each iteration, while the range in HyperDrive config is iterated over. Не указывайте один и тот же аргумент в обоих файлах.Do not specify the same argument in both files.

Дополнительные сведения об этих az ml командах интерфейса командной строки и полном наборе аргументов см. в справочной документации.For more details on these az ml CLI commands and full set of arguments, see the reference documentation.

Отслеживание и интеграция GitGit tracking and integration

При запуске обучающего запуска, в котором исходный каталог является локальным репозиторием Git, сведения о репозитории хранятся в журнале выполнения.When you start a training run where the source directory is a local Git repository, information about the repository is stored in the run history. Дополнительные сведения см. в статье Интеграция Git для машинное обучение Azure.For more information, see Git integration for Azure Machine Learning.

Примеры записных книжекNotebook examples

Посмотрите примеры обучения различных целевых объектов вычислений в следующих записных книжках.See these notebooks for examples of training with various compute targets:

Узнайте, как запускать записные книжки, следуя указаниям из статьи Использование записных книжек Jupyter в Машинном обучении Azure.Learn how to run notebooks by following the article Use Jupyter notebooks to explore this service.

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