Управление рабочими областями Машинного обучения Azure с помощью Azure CLI

ОБЛАСТЬ ПРИМЕНЕНИЯ:расширение Машинного обучения для Azure CLI версии 2 (текущая версия)

Из этой статьи вы узнаете, как создавать рабочие области Машинного обучения Azure и управлять ими с помощью интерфейса командной строки Azure. Интерфейс командной строки Azure предоставляет команды для управления ресурсами Azure и призван помочь вам быстро приступить к работе с Azure, используя возможности автоматизации. Расширение машинного обучения для интерфейса командной строки предоставляет команды для работы с ресурсами Машинного обучения Azure.

Вы также можете управлять рабочими областями с помощью пакета SDK для портал Azure и Python, Azure PowerShell или расширения VS Code.

Необходимые компоненты

Ограничения

  • При создании рабочей области можно либо автоматически создать службы, необходимые для рабочей области, либо использовать существующие службы. Если вы хотите использовать существующие службы из подписки Azure, отличной от рабочей области, необходимо зарегистрировать пространство имен Машинного обучения Azure в подписке, которая содержит эти службы. Например, при создании рабочей области в подписке A, которая использует учетную запись хранения из подписки B, пространство имен Машинного обучения Azure должно быть зарегистрировано в подписке B, прежде чем можно будет использовать учетную запись хранения с рабочей областью.

    Поставщик ресурсов для Машинного обучения Azure — Microsoft.MachineLearningServices. Сведения о том, как проверить регистрацию поставщика и зарегистрировать его, см. в разделе Поставщики и типы ресурсов Azure.

    Важно!

    Это относится только к ресурсам, предоставленным при создании рабочей области: учетные записи хранения Azure, реестр контейнеров Azure, Azure Key Vault и Application Insights.

Совет

Экземпляр Azure Application Insights создается при создании рабочей области. При необходимости экземпляр Application Insights можно удалить после создания кластера. При его удалении будут ограничены сведения, собираемые из рабочей области. Это также может усложнить устранение неполадок. При удалении экземпляра Application Insights, созданного рабочей областью, его будет невозможно создать повторно без удаления и повторного создания рабочей области.

Дополнительные сведения об использовании этого экземпляра Application Insights см. в разделе Мониторинг и получение данных из конечных точек службы Машинного обучения.

Безопасный обмен данными в CLI

Некоторые команды Azure CLI взаимодействуют с Azure Resource Manager через Интернет. Этот обмен данными защищается с использованием протоколов HTTPS/TLS 1.2.

В расширении CLI для Машинного обучения Azure версии 2 ("ml") все команды взаимодействуют с Azure Resource Manager. Сюда входят рабочие данные, такие как параметры и метаданные YAML. Если рабочая область Машинного обучения Azure является общедоступной (то есть не скрыта за виртуальной сетью), дополнительная настройка не требуется. Обмен данными защищен с помощью протоколов HTTPS/TLS 1.2.

Если в рабочей области Машинного обучения Azure применяются частная конечная точка и виртуальная сеть и вы используете CLI версии 2, выберите одну из следующих конфигураций:

Дополнительные сведения об обмене данными для CLI версии 2 см. в разделе Установка и настройка CLI.

Подключение интерфейса командной строки к своей подписке Azure

Важно!

Если вы используете Azure Cloud Shell, этот раздел можно пропустить. Cloud Shell автоматически выполняет аутентификацию, используя учетную запись, с помощью которой вы вошли в подписку Azure.

Существует несколько способов проверки подлинности в подписке Azure с помощью интерфейса командной строки. Самый простой — выполнить интерактивную аутентификацию с помощью браузера. Чтобы выполнить аутентификацию в интерактивном режиме, откройте командную строку или терминал и выполните следующую команду:

az login

Если CLI сможет запустить браузер по умолчанию, он откроет в браузере страницу входа. Или откройте браузер и выполните инструкции из командной строки. В инструкции входит переход к https://aka.ms/devicelogin и ввод кода авторизации.

Совет

После входа в систему появится список подписок, связанных с учетной записью Azure. В сведениях о подписке с isDefault: true указана текущая активная подписка для команд Azure CLI. Эта подписка должна быть той же, которая содержит рабочую область Машинного обучения Azure. Идентификатор подписки можно найти на портал Azure, перейдя на страницу обзора рабочей области.

Чтобы выбрать другую подписку, укажите имя или идентификатор этой подписки с помощью команды az account set -s <subscription name or ID>. См. дополнительные сведения о выборе нужной подписки при использовании нескольких подписок Azure.

Другие методы аутентификации см. в статье Вход с помощью Azure CLI.

Создание или изменение группы ресурсов

Рабочая область Машинного обучения Azure должна создаваться внутри группы ресурсов. Вы можете выбрать существующую группу ресурсов или создать новую. Выполните следующую команду, чтобы создать новую группу ресурсов. Замените <resource-group-name> именем, которое будет использоваться для этой группы ресурсов. Замените <location> регионом Azure, который будет использоваться для этой группы ресурсов:

Примечание.

Необходимо выбрать регион, в котором доступно Машинное обучение Azure. Дополнительные сведения см. в статье Доступность продуктов по регионам.

az group create --name <resource-group-name> --location <location>

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

{
  "id": "/subscriptions/<subscription-GUID>/resourceGroups/<resourcegroupname>",
  "location": "<location>",
  "managedBy": null,
  "name": "<resource-group-name>",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null,
  "type": null
}

Дополнительные сведения о работе с группами ресурсов см. в разделе az group.

Создание рабочей области

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

Важно!

При присоединении собственной учетной записи хранения убедитесь, что она соответствует следующим критериям:

  • Учетная запись хранения не является учетной записью "Премиум" (Premium_LRS и Premium_GRS)
  • Включены как BLOB-объекты Azure, так и функции файлов Azure
  • Иерархическое пространство имен (ADLS 2-го поколения) отключено. Эти требования относятся только к учетной записи хранения, используемой рабочей областью по умолчанию.

При подключении реестра контейнеров Azure необходимо включить учетную запись администратора перед использованием реестра контейнеров с рабочей областью Машинного обучения Azure.

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

az ml workspace create -n <workspace-name> -g <resource-group-name>

Важно!

При подключении имеющихся ресурсов не требуется указывать все данные. Можно указать один или несколько. Например, можно указать существующую учетную запись хранения, и рабочая область создаст остальные ресурсы.

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

{
  "applicationInsights": "/subscriptions/<service-GUID>/resourcegroups/<resource-group-name>/providers/microsoft.insights/components/<application-insight-name>",
  "containerRegistry": "/subscriptions/<service-GUID>/resourcegroups/<resource-group-name>/providers/microsoft.containerregistry/registries/<acr-name>",
  "creationTime": "2019-08-30T20:24:19.6984254+00:00",
  "description": "",
  "friendlyName": "<workspace-name>",
  "id": "/subscriptions/<service-GUID>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name>",
  "identityPrincipalId": "<GUID>",
  "identityTenantId": "<GUID>",
  "identityType": "SystemAssigned",
  "keyVault": "/subscriptions/<service-GUID>/resourcegroups/<resource-group-name>/providers/microsoft.keyvault/vaults/<key-vault-name>",
  "location": "<location>",
  "name": "<workspace-name>",
  "resourceGroup": "<resource-group-name>",
  "storageAccount": "/subscriptions/<service-GUID>/resourcegroups/<resource-group-name>/providers/microsoft.storage/storageaccounts/<storage-account-name>",
  "type": "Microsoft.MachineLearningServices/workspaces",
  "workspaceid": "<GUID>"
}

Расширенные конфигурации

Настройка рабочей области для подключения к частной сети

В зависимости от варианта использования и требований организации, вы можете настроить Машинное обучение Azure с подключением к частной сети. С помощью Azure CLI можно развернуть рабочую область и конечную точку приватного канала для ресурса рабочей области. Дополнительные сведения об использовании частной конечной точки и виртуальной сети с рабочей областью см. в разделе Общие сведения об изоляции виртуальной сети и конфиденциальности. Для сложных конфигураций ресурсов также можно использовать варианты развертывания на основе шаблонов, в том числе Azure Resource Manager.

В случае приватного канала ваша рабочая область не сможет использовать Реестр контейнеров Azure для создания образов Docker. Поэтому необходимо задать имя вычислительного кластера ЦП в качестве значения свойства image_build_compute, чтобы использовать его для сборки среды образов Docker. Можно также указать, будет ли доступ к рабочей области приватного канала осуществляться через Интернет с помощью свойства public_network_access.

$schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json
name: mlw-privatelink-prod
location: eastus
display_name: Private Link endpoint workspace-example
description: When using private link, you must set the image_build_compute property to a cluster name to use for Docker image environment building. You can also specify whether the workspace should be accessible over the internet.
image_build_compute: cpu-compute
public_network_access: Disabled
tags:
  purpose: demonstration
az ml workspace create -g <resource-group-name> --file privatelink.yml

После создания рабочей области используйте команды CLI сети Azure, чтобы создать конечную точку приватного канала для рабочей области.

az network private-endpoint create \
    --name <private-endpoint-name> \
    --vnet-name <vnet-name> \
    --subnet <subnet-name> \
    --private-connection-resource-id "/subscriptions/<subscription>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name>" \
    --group-id amlworkspace \
    --connection-name workspace -l <location>

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

# Add privatelink.api.azureml.ms
az network private-dns zone create \
    -g <resource-group-name> \
    --name 'privatelink.api.azureml.ms'

az network private-dns link vnet create \
    -g <resource-group-name> \
    --zone-name 'privatelink.api.azureml.ms' \
    --name <link-name> \
    --virtual-network <vnet-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group create \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name myzonegroup \
    --private-dns-zone 'privatelink.api.azureml.ms' \
    --zone-name 'privatelink.api.azureml.ms'

# Add privatelink.notebooks.azure.net
az network private-dns zone create \
    -g <resource-group-name> \
    --name 'privatelink.notebooks.azure.net'

az network private-dns link vnet create \
    -g <resource-group-name> \
    --zone-name 'privatelink.notebooks.azure.net' \
    --name <link-name> \
    --virtual-network <vnet-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group add \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name myzonegroup \
    --private-dns-zone 'privatelink.notebooks.azure.net' \
    --zone-name 'privatelink.notebooks.azure.net'

Управляемый клиентом ключ и рабочая область с сильным влиянием на организацию

По умолчанию метаданные для рабочей области хранятся в экземпляре Azure Cosmos DB, который обслуживается Майкрософт. Эти данные шифруются с помощью ключей, управляемых Майкрософт. Вместо ключа, управляемого корпорацией Майкрософт, также можно использовать собственный ключ. При этом в подписке Azure будет создан дополнительный набор ресурсов для хранения данных.

Дополнительные сведения о ресурсах, создаваемых при использовании собственного ключа для шифрования, см. в статье Шифрование данных в Машинном обучении Azure.

Используйте параметр customer_managed_key и включенные в него параметры key_vault и key_uri, чтобы указать идентификатор ресурса и URI ключа в хранилище.

Чтобы ограничить сбор данных корпорацией Майкрософт в своей рабочей области, вы также можете указать свойство hbi_workspace.

$schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json
name: mlw-cmkexample-prod
location: eastus
display_name: Customer managed key encryption-example
description: This configurations shows how to create a workspace that uses customer-managed keys for encryption.
customer_managed_key: 
  key_vault: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.KeyVault/vaults/<KEY_VAULT>
  key_uri: https://<KEY_VAULT>.vault.azure.net/keys/<KEY_NAME>/<KEY_VERSION>
tags:
  purpose: demonstration

Затем вы можете ссылаться на файл конфигурации в команде CLI для создания рабочей области.

az ml workspace create -g <resource-group-name> --file cmk.yml

Примечание.

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

Примечание.

Azure Cosmos DB не используется для хранения таких сведений, как показатели производительности модели, данные, регистрируемые экспериментами, или сведения, зарегистрированные в процессе развертывания модели.

Важно!

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

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

Управление рабочими областями с помощью CLI

Получение сведений о рабочей области

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

az ml workspace show -n <workspace-name> -g <resource-group-name>

Дополнительные сведения см. в документации по команде az ml workspace show.

Обновление рабочей области

Обновите рабочую область с помощью следующей команды:

az ml workspace update -n <workspace-name> -g <resource-group-name>

Дополнительные сведения см. в документации по команде az ml workspace update.

Ключи синхронизации для зависимых ресурсов

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

az ml workspace sync-keys -n <workspace-name> -g <resource-group-name>

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

Дополнительные сведения о команде синхронизации ключей см. в разделе az ml workspace sync-keys.

Удаление рабочей области

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

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

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

az ml workspace delete -n <workspace-name> -g <resource-group-name>

Важно!

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

Вы можете удалить группу ресурсов. При этом будет удалена рабочая область и все остальные ресурсы Azure из этой группы ресурсов. Чтобы удалить группу ресурсов, используйте следующую команду:

az group delete -g <resource-group-name>

Дополнительные сведения см. в документации по команде az ml workspace delete.

Совет

Поведение по умолчанию для Машинное обучение Azure заключается в обратимом удалении рабочей области. Это означает, что рабочая область не сразу удаляется, но вместо этого помечается для удаления. Дополнительные сведения см. в статье "Обратимое удаление".

Устранение неполадок

Ошибки поставщика ресурсов

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

  • No registered resource provider found for location {location}
  • The subscription is not registered to use namespace {resource-provider-namespace}

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

В следующей таблице содержится список поставщиков ресурсов, необходимых для Машинного обучения Azure:

Поставщик ресурсов Роль
Microsoft.MachineLearningServices Создание рабочей области машинного обучения Azure.
Microsoft.Storage Учетная запись службы хранилища Azure используется в качестве хранилища данных по умолчанию для рабочей области.
Microsoft.ContainerRegistry Реестр контейнеров Azure используется рабочей областью для создания образов Docker.
Microsoft.KeyVault Azure Key Vault используется рабочей областью для хранения секретов.
Microsoft.Notebooks Интегрированные записные книжки в вычислительном экземпляре машинного обучения Azure.
Microsoft.ContainerService Если вы планируете развертывать обученные модели в службах Azure Kubernetes.

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

Поставщик ресурсов Роль
Microsoft.DocumentDB Экземпляр Azure CosmosDB, который регистрирует метаданные для рабочей области.
Microsoft.Search Служба "Поиск Azure" предоставляет возможности индексирования для рабочей области.

Если вы планируете использовать управляемую виртуальную сеть с Машинное обучение Azure, необходимо зарегистрировать поставщика ресурсов Microsoft.Network. Этот поставщик ресурсов используется рабочей областью при создании частных конечных точек для управляемой виртуальной сети.

Сведения о регистрации поставщиков ресурсов см. в статье Устранение ошибок регистрации поставщика ресурсов.

Перемещение рабочей области

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

Перемещение рабочей области Машинного обучения Azure в другую подписку или перемещение главной подписки на новый клиент не поддерживается. Это может привести к ошибкам.

Удаление Реестра контейнеров Azure

Для некоторых операций в рабочей области Машинного обучения Azure используется реестр контейнеров Azure (ACR) Он автоматически создает экземпляр ACR при необходимости.

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

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

Следующие шаги

Дополнительные сведения о расширении Azure CLI для машинного обучения см. в документации по az ml.

Чтобы проверить наличие проблем с рабочей областью, обратитесь к статье Использование диагностики для рабочей области.

Чтобы узнать, как переместить рабочую область в новую подписку Azure, обратитесь к статье Как переместить рабочую область.

Сведения о том, как поддерживать Машинное обучение Azure актуальности последних обновлений системы безопасности, см. в разделе "Управление уязвимостями".