Создание вычислительного кластера Машинного обучения Azure
ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)Python SDK azure-ai-ml версии 2 (current)
В этой статье объясняется, как создать вычислительный кластер и управлять им в рабочей области Машинное обучение Azure.
Вычислительную среду Машинного обучения Azure можно использовать для распространения процесса обучения или пакетного вывода в кластере вычислительных узлов на основе ЦП или GPU, размещенном в облаке. Дополнительные сведения о размерах виртуальных машин, которые содержат GPU, см. в статье Размеры виртуальных машин, оптимизированных для GPU.
Вы узнаете, как выполнять следующие задачи:
- Создайте вычислительный кластер.
- Снижение затрат на вычислительный кластер с низкоприоритетными виртуальными машинами.
- Настройте управляемое удостоверение для кластера.
Примечание.
Вместо создания вычислительного кластера используйте бессерверные вычисления для разгрузки управления жизненным циклом вычислений в Машинное обучение Azure.
Необходимые компоненты
- Рабочая область Машинного обучения Azure. Дополнительные сведения см. в статье Управление рабочей областью Машинного обучения Azure.
Выберите соответствующую вкладку для остальных необходимых компонентов на основе предпочтительного метода создания вычислительного кластера.
Если код не запущен в вычислительном экземпляре, установите пакет SDK для Python Машинное обучение Azure. Этот пакет SDK уже установлен для вас в вычислительном экземпляре.
Подключитесь к рабочей области в скрипте Python:
Запустите этот код, чтобы подключиться к рабочей области Машинное обучение Azure.
Замените идентификатор подписки, имя группы ресурсов и имя рабочей области в следующем коде. Вот как найти эти значения:
- Войдите в Студию машинного обучения Azure.
- Откройте рабочую область, которую вы хотите использовать.
- Выберите имя рабочей области в правом верхнем углу панели инструментов Студия машинного обучения Azure.
- Скопируйте значение рабочей области, группы ресурсов и идентификатор подписки в код.
ОБЛАСТЬ ПРИМЕНЕНИЯ: Пакет SDK для Python azure-ai-ml версии 2 (current)
# Enter details of your AML workspace subscription_id = "<SUBSCRIPTION_ID>" resource_group = "<RESOURCE_GROUP>" workspace = "<AML_WORKSPACE_NAME>"
# get a handle to the workspace from azure.ai.ml import MLClient from azure.identity import DefaultAzureCredential ml_client = MLClient( DefaultAzureCredential(), subscription_id, resource_group, workspace )
ml_client
— это обработчик рабочей области, которая используется для управления другими ресурсами и заданиями.
Что такое вычислительный кластер?
Вычислительный кластер Машинного обучения Azure — это управляемая вычислительная инфраструктура, которая позволяет c легкостью создавать одно- и многоузловые вычислительные среды. Вычислительный кластер — это ресурс, который можно использовать совместно с другими пользователями в рабочей области. Вычислительная среда автоматически масштабируется при отправке задания, а также может быть размещена в виртуальной сети Azure. Вычислительный кластер не поддерживает развертывание общедоступных IP-адресов , а также в виртуальной сети. Она выполняется в контейнерной среде, упаковывая зависимости вашей модели в контейнер Docker.
Вычислительные кластеры могут безопасно выполнять задания в управляемой виртуальной сети или виртуальной сети Azure, не требуя от предприятий открывать порты SSH. Задание выполняется в контейнерной среде и упаковывает зависимости модели в контейнер Docker.
Ограничения
Вычислительные кластеры можно создать в регионе, отличном от региона рабочей области. Эта функция доступна только для вычислительных кластеров, а не для вычислительных экземпляров.
Предупреждение
При использовании вычислительного кластера в другом регионе, отличном от рабочей области или хранилища данных, может возникнуть повышенная задержка сети и затраты на передачу данных. Задержка и затраты могут возникать при создании кластера и при выполнении заданий на нем.
Вычислительная среда Машинного обучения Azure имеет ограничения по умолчанию, такие как количество ядер, которые могут быть выделены. Дополнительные сведения см. в статье Управление квотами для ресурсов Azure и их запрашивание.
Azure позволяет размещать блокировки ресурсов, чтобы их нельзя было удалить или можно было использовать только для чтения. Не применяйте блокировки ресурсов к группе ресурсов, содержащей рабочую область. Применение блокировки к группе ресурсов, содержащей рабочую область, предотвращает масштабирование для Машинное обучение Azure вычислительных кластеров. Дополнительные сведения о блокировке ресурсов см. в статье Блокировка ресурсов для предотвращения непредвиденных изменений.
Создание
Оценка времени: около пяти минут.
Примечание.
Если вы используете бессерверные вычисления, вам не нужно создавать вычислительный кластер.
Вычислительную среду Машинного обучения Azure можно многократно использовать при различных запусках. Вычислительные ресурсы можно совместно использовать с другими пользователями в рабочей области и храниться между запусками, автоматически масштабировать узлы вверх или вниз на основе количества отправленных запусков и max_nodes
набора в кластере. Параметр min_nodes
управляет минимальными доступными узлами.
Квота выделенных ядер на регион на семейство ВМ и суммарная региональная квота, применяемая при создании вычислительного кластера, объединяется и используется совместно с квотой вычислительного экземпляра Машинного обучения Azure.
Внимание
Чтобы исключить взимание оплаты при отсутствии выполняющихся заданий, установите минимальное количество узлов равным 0. Такая настройка позволяет службе Машинного обучения Azure отменять распределение узлов, когда они не используются. При любом значении больше 0 количество работающих узлов остается равным этому значению, даже если они не используются.
Когда вычислительная среда не используется, она автоматически масштабируется до нуля узлов. Выделенные виртуальные машины создаются для выполнения заданий по мере необходимости.
Используйте следующие примеры для создания вычислительного кластера:
Чтобы создать постоянный Машинное обучение Azure вычислительный ресурс в Python, укажите size
и max_instances
свойства. Затем Машинное обучение Azure использует интеллектуальные значения по умолчанию для остальных свойств.
- размер: семейство виртуальных машин узлов, созданных Машинное обучение Azure Вычисление.
- max_instances. Максимальное количество узлов для автомасштабирования до запуска задания в Машинное обучение Azure вычислений.
ОБЛАСТЬ ПРИМЕНЕНИЯ: Пакет SDK для Python azure-ai-ml версии 2 (current)
from azure.ai.ml.entities import AmlCompute
cluster_basic = AmlCompute(
name="basic-example",
type="amlcompute",
size="STANDARD_DS3_v2",
location="westus",
min_instances=0,
max_instances=2,
idle_time_before_scale_down=120,
)
ml_client.begin_create_or_update(cluster_basic).result()
При создании Вычислительной среды машинного обучения Azure вы можете также настроить несколько дополнительных свойств. Эти свойства позволяют создать постоянный кластер фиксированного размера, который может размещаться в существующей виртуальной сети Azure в вашей подписке. Дополнительные сведения см. в разделе о классе AmlCompute.
Предупреждение
При настройке location
параметра, если это другой регион, отличный от рабочей области или хранилища данных, может возникнуть повышенная задержка сети и затраты на передачу данных. Задержка и затраты могут возникать при создании кластера и при выполнении заданий на нем.
Снижение затрат на вычислительный кластер с низкоприоритетными виртуальными машинами
Вы также можете использовать низкоприоритетные виртуальные машины для выполнения некоторых или всех рабочих нагрузок. Эти виртуальные машины не имеют гарантированной доступности и могут быть упрещены во время использования. Необходимо перезапустить предварительно созданное задание.
Использование Виртуальные машины с низким приоритетом Azure позволяет воспользоваться неиспользуемой емкостью Azure при значительной экономии затрат. В любой момент времени, когда Azure нуждается в емкости, инфраструктура Azure вытесниет azure с низким приоритетом Виртуальные машины. Поэтому виртуальная машина с низким приоритетом Azure отлично подходит для рабочих нагрузок, которые могут обрабатывать прерывания. Объем доступной емкости может варьироваться в зависимости от размера, региона, времени суток и других параметров. При развертывании azure с низким приоритетом Виртуальные машины Azure выделяет виртуальные машины, если есть доступная емкость, но для этих виртуальных машин нет соглашение об уровне обслуживания. Виртуальная машина с низким приоритетом Azure не гарантирует высокий уровень доступности. В любой момент времени, когда Azure нуждается в емкости, инфраструктура Azure вытесниет azure с низким приоритетом Виртуальные машины.
Используйте любой из следующих способов, чтобы указать виртуальную машину с низким приоритетом:
ОБЛАСТЬ ПРИМЕНЕНИЯ: Пакет SDK для Python azure-ai-ml версии 2 (current)
from azure.ai.ml.entities import AmlCompute
cluster_low_pri = AmlCompute(
name="low-pri-example",
size="STANDARD_DS3_v2",
min_instances=0,
max_instances=2,
idle_time_before_scale_down=120,
tier="low_priority",
)
ml_client.begin_create_or_update(cluster_low_pri).result()
Удаление
Хотя вычислительный кластер масштабируется до нуля узлов, если он не используется, непропроектированные узлы способствуют использованию квоты. Удаление вычислительного кластера удаляет целевой объект вычислений из рабочей области и освобождает квоту.
ОБЛАСТЬ ПРИМЕНЕНИЯ: Пакет SDK для Python azure-ai-ml версии 2 (current)
При этом удаляется базовый вычислительный кластер, созданный из create_basic
объекта ранее в этой статье.
from azure.ai.ml.entities import AmlCompute
ml_client.compute.begin_delete(cluster_basic.name).wait()
Настройка управляемого удостоверения
Сведения о настройке управляемого удостоверения в вычислительном кластере см. в статье "Настройка проверки подлинности между Машинное обучение Azure и другими службами".
Устранение неполадок
Существует вероятность того, что некоторые пользователи, создавшие свою рабочую область Машинного обучения Azure на портале Azure до выпуска общедоступной версии, не смогут создать AmlCompute в этой рабочей области. Можно отправить соответствующий запрос в службу поддержки или создать новую рабочую область с помощью портала или пакета SDK, чтобы немедленно устранить эту проблему.
Внимание
Если вычислительный экземпляр или вычислительные кластеры основаны на любой из этих рядов, создайте повторное создание с другим размером виртуальной машины.
Эта серия прекращена 31 августа 2023 г.:
Эта серия прекращена 31 августа 2024 г.:
Зависание при изменении размера
Если Машинное обучение Azure вычислительный кластер отображается с изменением размера (0 –> 0) для состояния узла, блокировка ресурсов Azure может быть причиной.
Azure позволяет размещать блокировки ресурсов, чтобы их нельзя было удалить или можно было использовать только для чтения. Блокировка ресурса может привести к непредвиденным результатам. Для некоторых операций, которые на первый взгляд не изменяют ресурс, на самом деле требуются действия, выполнение которых становится невозможным из-за блокировки.
При работе с Машинным обучением Azure применение блокировки удаления к группе ресурсов для рабочей области препятствует масштабированию для вычислительных кластеров Azure ML. Чтобы обойти эту проблему, рекомендуется удалить блокировку из группы ресурсов, а затем применить ее к отдельным элементам в группе.
Внимание
Не применяйте блокировку к следующим ресурсам:
Имя ресурса | Тип ресурса |
---|---|
<GUID>-azurebatch-cloudservicenetworksecurityggroup |
группу безопасности сети; |
<GUID>-azurebatch-cloudservicepublicip |
Общедоступный IP-адрес |
<GUID>-azurebatch-cloudserviceloadbalancer |
Подсистема балансировки нагрузки |
Эти ресурсы используются для взаимодействия с вычислительным кластером и выполнения в нем таких операций, как масштабирование. Удаление блокировки для этих ресурсов разрешает автоматическое масштабирование для вычислительных кластеров.
Дополнительные сведения о блокировке ресурсов см. в статье Блокировка ресурсов для предотвращения непредвиденных изменений.
Следующий шаг
Используйте вычислительный кластер для следующего: