Поделиться через


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

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

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

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

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

Ограничения

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

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

    Внимание

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

Подключение к подписке Azure

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

Существует несколько способов локальной проверки подлинности в подписке Azure из Azure CLI. Самый простой способ — использовать браузер.

Чтобы выполнить интерактивную проверку подлинности, откройте командную строку или терминал и запустите az login. Если интерфейс командной строки может открыть браузер по умолчанию, он делает это и загружает страницу входа. В противном случае следуйте инструкциям командной строки, чтобы открыть браузер https://aka.ms/devicelogin и ввести код авторизации устройства.

Совет

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

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

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

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

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

Примечание.

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

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

Ответ на эту команду похож на следующий код JSON. Выходные значения можно использовать для поиска созданных ресурсов или передачи их в качестве входных данных другим командам Или автоматизации Azure 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 рабочая область требует различных других служб в качестве зависимых ресурсов. При использовании Azure CLI для создания рабочей области интерфейс командной строки может создавать новые связанные ресурсы или присоединять существующие ресурсы.

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

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

Чтобы создать новую рабочую область, которая использует существующие ресурсы, сначала определите ресурсы в файле конфигурации YAML, как описано в следующем разделе. Затем вы ссылаетесь на ФАЙЛ YAML в команде создания рабочей области Azure CLI следующим образом:

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

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

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

Файл конфигурации YAML

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

$schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json
name: mlw-basicex-prod
location: eastus
display_name: Bring your own dependent resources-example
description: This configuration specifies a workspace configuration with existing dependent resources
storage_account: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT>
container_registry: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.ContainerRegistry/registries/<CONTAINER_REGISTRY>
key_vault: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.KeyVault/vaults/<KEY_VAULT>
application_insights: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.insights/components/<APP_INSIGHTS>
tags:
  purpose: demonstration

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

Идентификаторы существующих ресурсов в YAML-файле необходимо указать. Эти идентификаторы можно получить, просмотрев свойства ресурса в портал Azure или выполнив следующие команды Azure CLI:

  • Azure Application Insights.
    az monitor app-insights component show --app <application-insight-name> -g <resource-group-name> --query "id"
  • Реестр контейнеров Azure.
    az acr show --name <container-registry-name> -g <resource-group-name> --query "id"
  • Azure Key Vault.
    az keyvault show --name <key-vault-name> --query "id"
  • Учетная запись хранения Azure.
    az storage account show --name <storage-account-name> --query "id"

Результаты запроса выглядят следующим образом:
"/subscriptions/<subscription-GUID>/resourceGroups/<resource-group-name>/providers/<provider>/<subresource>/<id>".

Связанные зависимые ресурсы

Следующие рекомендации и ограничения применяются к зависимым ресурсам, связанным с рабочими областями.

Application Insights

Совет

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

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

Реестр контейнеров

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

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

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

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

Учетная запись хранения

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

  • Учетная запись не может быть Premium_LRS или Premium_GRS.
  • Возможности BLOB-объектов Azure и файлов Azure должны быть включены.
  • Иерархическое пространство имен должно быть отключено для Azure Data Lake Storage.

Защита обмена данными Azure CLI

Все команды Машинное обучение Azure версии 2 az ml передают операционные данные, такие как параметры YAML и метаданные, в Azure Resource Manager. Некоторые команды Azure CLI взаимодействуют с Azure Resource Manager через Интернет.

Если ваша Машинное обучение Azure рабочая область является общедоступной и не находится за виртуальной сетью, обмен данными защищен с помощью ПРОТОКОЛА HTTPS/TLS 1.2. Дополнительная конфигурация не требуется.

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

  • Чтобы обмениваться данными через общедоступный Интернет, задайте --public-network-access для параметра Enabledзначение .

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

Подключение к частной сети

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

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

В файле конфигурации рабочей области YAML необходимо задать image_build_compute для свойства имя вычислительного кластера, используемое для создания среды образа Docker. Вы также можете указать, что рабочая область приватного канала недоступна через Интернет, задав public_network_access для свойства значение Disabled.

В следующем коде показан пример файла конфигурации рабочей области для подключения к частной сети.

$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

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

az network private-endpoint create \
    --name <private-endpoint-name> \
    --vnet-name <virtual-network-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 <virtual-network-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group create \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name <zone-group-name> \
    --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 <virtual-network-name> \
    --registration-enabled false

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

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

Для защиты связи со всеми ресурсами Azure Resource Manager в группе управления Azure можно использовать следующий процесс, используя Приватный канал:

  1. Создайте приватную ссылку для управления ресурсами Azure.
  2. Создайте частную конечную точку для приватного канала, созданного на предыдущем шаге.

Внимание

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

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

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

Ключи, управляемые клиентом

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

Примечание.

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

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

$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

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

Примечание.

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

Рабочие области с высоким уровнем влияния на бизнес

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

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

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

Для управления рабочими областями можно использовать команды az ml workspace .

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

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

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 -n <workspace-name> -g <resource-group-name> --public-network-access enabled

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

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

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

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

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

Перемещение рабочей области Машинное обучение Azure в настоящее время находится в предварительной версии. Дополнительные сведения см. в разделе "Перемещение Машинное обучение Azure рабочих областей между подписками (предварительная версия)".

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

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

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

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

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

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

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

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

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

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

При создании рабочей области машинного обучения 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. Этот поставщик ресурсов используется рабочей областью при создании частных конечных точек для управляемой виртуальной сети.

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