Создание и использование вычислительного кластера

Завершено

После экспериментирования и разработки вы хотите, чтобы код был готов к работе. При запуске кода в рабочих средах лучше использовать скрипты вместо записных книжек. При запуске скрипта необходимо использовать масштабируемый целевой объект вычислений.

В Машинном обучении Azure вычислительных кластеров идеально подходят для выполнения сценариев. Вы можете создать вычислительный кластер в студии машинного обучения Azure, используя интерфейс командной строки Azure (CLI) или пакет средств разработки программного обеспечения Python (SDK).

Создание вычислительного кластера с помощью пакета SDK для Python

Чтобы создать вычислительный кластер с помощью пакета SDK для Python, можно использовать следующий код:

from azure.ai.ml.entities import AmlCompute

cluster_basic = AmlCompute(
    name="cpu-cluster",
    type="amlcompute",
    size="STANDARD_DS3_v2",
    location="westus",
    min_instances=0,
    max_instances=2,
    idle_time_before_scale_down=120,
    tier="low_priority",
)
ml_client.begin_create_or_update(cluster_basic).result()

Чтобы понять, какие параметры ожидает класс AmlCompute, ознакомьтесь с справочной документацией .

При создании вычислительного кластера необходимо учитывать три основных параметра:

  • size. Указывает тип виртуальной машины каждого узла в вычислительном кластере. На основе размеров виртуальных машин в Azure. Рядом с размером можно также указать, следует ли использовать ЦП или GPU.
  • max_instances. Указывает максимальное количество узлов, до которого может масштабироваться ваш вычислительный кластер. Число параллельных рабочих нагрузок, которые может обрабатывать вычислительный кластер, аналогично количеству узлов, в которых может масштабироваться кластер.
  • tier. Указывает, являются ли виртуальные машины низкоприоритетными или выделенными. Если вы не гарантируете доступность, параметр "Низкий приоритет" может снизить затраты.

Использование вычислительного кластера

Существует три основных сценария, в которых можно использовать вычислительный кластер:

  • Выполнение задания конвейера, созданного в конструкторе.
  • Выполнение задания автоматизированного машинного обучения.
  • Выполнение скрипта в качестве задания.

В каждом из этих сценариев вычислительный кластер идеально подходит, так как вычислительный кластер автоматически масштабируется при отправке задания и автоматически завершает работу при завершении задания.

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

Вы можете запустить задание для конвейера конструктора и задание автоматизированного машинного обучения через студию машинного обучения Azure. При отправке задания через студию можно задать целевой объект вычислений для созданного вычислительного кластера.

Если вы предпочитаете подход с кодом, вы можете задать целевой объект вычислений для вычислительного кластера с помощью пакета SDK для Python.

Например, при запуске скрипта в качестве задания команды можно задать целевой объект вычислений для вычислительного кластера со следующим кодом:

from azure.ai.ml import command

# configure job
job = command(
    code="./src",
    command="python diabetes-training.py",
    environment="AzureML-sklearn-0.24-ubuntu18.04-py37-cpu@latest",
    compute="cpu-cluster",
    display_name="train-with-cluster",
    experiment_name="diabetes-training"
    )

# submit job
returned_job = ml_client.create_or_update(job)
aml_url = returned_job.studio_url
print("Monitor your job at", aml_url)

После отправки задания, использующего вычислительный кластер, вычислительный кластер масштабируется до одного или нескольких узлов. Изменение размера занимает несколько минут, и задание запускается после подготовки необходимых узлов. Когда состояние задания подготовке, подготавливается вычислительный кластер. Когда состояние выполняется, вычислительный кластер готов и выполняется задание.