Создание и использование вычислительного кластера
После экспериментирования и разработки вы хотите, чтобы код был готов к работе. При запуске кода в рабочих средах лучше использовать скрипты вместо записных книжек. При запуске скрипта необходимо использовать масштабируемый целевой объект вычислений.
В Машинном обучении 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)
После отправки задания, использующего вычислительный кластер, вычислительный кластер масштабируется до одного или нескольких узлов. Изменение размера занимает несколько минут, и задание запускается после подготовки необходимых узлов. Когда состояние задания подготовке, подготавливается вычислительный кластер. Когда состояние выполняется, вычислительный кластер готов и выполняется задание.