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


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

ПРИМЕНЯЕТСЯ К:Расширение Azure CLI ML версии 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 . Этот поставщик ресурсов используется рабочей областью при создании частных конечных точек для управляемой виртуальной сети.

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

  • Дополнительные сведения о расширении Azure CLI для машинного обучения см. в документации az ml .
  • Сведения о диагностике, которая может выявлять и устранять проблемы с рабочей областью, см. в разделе "Как использовать диагностику рабочей области".
  • Сведения о том, как обновлять машинное обучение Azure с помощью последних обновлений системы безопасности, см. в статье "Управление уязвимостями".