Gerir espaços de trabalho do Azure Machine Learning utilizando o CLI do Azure

APLICA-SE A: Extensão de ML da CLI do Azurev2 (atual)

Nesse artigo, você aprende a criar e gerenciar espaços de trabalho do Azure Machine Learning usando a CLI do Azure. A CLI do Azure fornece comandos para gerenciar recursos do Azure e foi criada para ajudar você a trabalhar de maneira rápida com o Azure, com ênfase na automação. A extensão de aprendizagem automática CLI do Azure fornece comandos para trabalhar com recursos do Azure Machine Learning.

Também pode utilizar os seguintes métodos para criar e gerir espaços de trabalho do Azure Machine Learning:

Pré-requisitos

  • Uma assinatura do Azure com uma versão gratuita ou paga do Azure Machine Learning. Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

  • CLI do Azure instalado, se quiser executar localmente os comandos da CLI do Azure neste artigo.

    Se você executar os comandos da CLI do Azure no Azure Cloud Shell, não precisará instalar nada. O navegador acessa a versão em nuvem mais recente da CLI do Azure e a extensão Azure Machine Learning.

Limitações

  • Ao criar um novo workspace, é possível criar automaticamente os serviços necessários para o workspace ou usar os serviços existentes. Se você quiser usar os serviços existentes de uma assinatura do Azure diferente do espaço de trabalho, deverá registrar o namespace Azure Machine Learning na assinatura que contém esses serviços. Por exemplo, se criar um workspace na assinatura A que utiliza uma conta de armazenamento na assinatura B, o namespace do Azure Machine Learning deve ser registrado na assinatura B antes que o workspace possa usar a conta de armazenamento.

    O provedor de recursos do Azure Machine Learning é o Microsoft. MachineLearningServices. Para obter informações sobre como ver se isso já está registrado ou em processo de registro, confira Provedores e tipos de recursos do Azure.

    Importante

    Essas informações aplicam-se apenas aos recursos fornecidos durante a criação do espaço de trabalho: Contas de Armazenamento do Microsoft Azure, Registro de Contêiner do Azure, Azure Key Vault e Application Insights.

Conecte-se à sua assinatura do Azure

Se utilizar o Azure Cloud Shell a partir do portal do Azure, pode ignorar esta secção. O Cloud Shell autentica você automaticamente usando a assinatura do Azure com a qual você está conectado.

Existem várias formas de autenticar localmente a sua subscrição do Azure a partir do CLI do Azure. A maneira mais simples é usando um navegador.

Para autenticar interativamente, abra uma linha de comando ou terminal e execute az login. Se a CLI puder abrir seu navegador padrão, ela o fará e carregará uma página de login. Caso contrário, siga as instruções da linha de comando para abrir um navegador em https://aka.ms/devicelogin e insira um código de autorização do dispositivo.

Dica

Depois de entrar, você verá uma lista de assinaturas associadas à sua conta do Azure. A informação de assinatura com isDefault: true é a assinatura ativada no momento para os comandos da CLI do Azure. Essa assinatura precisa ser a mesma que contém o seu workspace do Azure Machine Learning. Você pode encontrar as informações de assinatura na página de visão geral do seu workspace no portal do Azure.

Para selecionar outra assinatura para usar nos comandos da CLI do Azure, execute o comando az account set -s <subscription> e especifique o nome ou ID da assinatura para a qual alternar. Para obter mais informações sobre a seleção da assinatura, confira Usar várias assinaturas do Azure.

Para outros métodos de autenticação, confira Entrar com a CLI do Azure.

Criar um grupo de recursos

O espaço de trabalho Azure Machine Learning deve ser criado dentro de um grupo de recursos existente ou novo. Para criar um novo grupo de recursos, execute o comando a seguir. Substitua <resource-group-name> pelo nome e <location> pela região do Azure que pretende utilizar para este grupo de recursos.

Observação

Certifique-se de selecionar uma região onde o Azure Machine Learning esteja disponível. Para obter informações, veja Produtos disponíveis por região.

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

A resposta a esse comando é semelhante ao JSON a seguir. Você pode usar os valores de saída para localizar os recursos criados ou passá-los como entrada para outros comandos ou automação da CLI do Azure.

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

Para obter mais informações sobre como trabalhar com grupos de recursos, confira az group.

Criar um workspace

Um espaço de trabalho Azure Machine Learning implantado requer vários outros serviços como recursos associados dependentes. Quando utiliza o CLI do Azure para criar um espaço de trabalho, o CLI pode criar os novos recursos associados ou pode anexar recursos existentes.

Para criar um novo espaço de trabalho com novos serviços dependentes criados automaticamente, execute o seguinte comando:

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

Para criar um novo espaço de trabalho que use recursos existentes, primeiro defina os recursos em um arquivo de configuração YAML, conforme descrito na seção a seguir. Em seguida, faça referência ao ficheiro YAML no comando de criação do espaço de trabalho CLI do Azure da seguinte forma:

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

A saída do comando de criação do workspace é semelhante ao documento JSON a seguir. Você pode usar os valores de saída para localizar os recursos criados ou passá-los como entrada para outros comandos da CLI do Azure.

{
  "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>"
}

Arquivo de configuração YAML

Para usar recursos existentes para um novo espaço de trabalho, defina os recursos em um arquivo de configuração YAML. O exemplo a seguir mostra um arquivo de configuração do espaço de trabalho 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

Não é necessário especificar todos os recursos dependentes associados no arquivo de configuração. Você pode especificar um ou mais recursos e permitir que os outros sejam criados automaticamente.

Você deve fornecer os IDs dos recursos existentes no arquivo YAML. Você pode obter essas IDs visualizando o recurso Propriedades no portal do Azure ou executando os seguintes comandos da CLI do Azure:

  • Azure Application Insights:
    az monitor app-insights component show --app <application-insight-name> -g <resource-group-name> --query "id"
  • Registro de Contêiner do 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"
  • Conta de Armazenamento do Azure:
    az storage account show --name <storage-account-name> --query "id"

Os resultados da consulta se parecem com a seguinte cadeia de caracteres:
"/subscriptions/<subscription-GUID>/resourceGroups/<resource-group-name>/providers/<provider>/<subresource>/<id>".

Recursos dependentes associados

As considerações e limitações a seguir se aplicam aos recursos dependentes associados aos espaços de trabalho.

Application Insights

Dica

Uma instância do Azure Application Insights é criada quando você cria o espaço de trabalho. Se quiser, você pode excluir a instância do Application Insights após a criação do cluster. Essa exclusão limita as informações coletadas do workspace e pode dificultar a solução de problemas. Se você excluir a instância do Application Insights criada pelo workspace, a única maneira de recriá-la é excluindo e recriando o workspace.

Para obter mais informações sobre como usar a instância do Application Insights, veja Monitorar e coletar dados de pontos de extremidade de serviço Web do Machine Learning.

Registro de Contêiner

O espaço de trabalho Azure Machine Learning utiliza o Registo de Contêiner do Azure para algumas operações e cria automaticamente uma instância do Registro de Contêiner quando precisa de uma pela primeira vez.

Aviso

Depois que um Registro de Contêiner do Azure for criado para um workspace, não o exclua. Isso interrompe seu espaço de trabalho do Azure Machine Learning.

Para utilizar um registo de contentores Azure existente com um espaço de trabalho Azure Machine Learning, tem de habilitar a conta de administração no registo de contêiner.

Conta de Armazenamento

Se utilizar uma conta de armazenamento existente para o espaço de trabalho, esta deverá satisfazer os seguintes critérios. Esses requisitos aplicam-se apenas à conta de armazenamento padrão.

  • A conta não pode ser Premium_LRS ou Premium_GRS.
  • As capacidades Azure Blob e Azure File devem estar habilitadas.
  • O namespace hierárquico deve ser desabilitado para o Azure Data Lake Storage.

Comunicações seguras da CLI do Azure

Todos os comandos do Azure Machine Learning V2 az ml comunicam dados operacionais, como parâmetros e metadados YAML, ao Azure Resource Manager. Alguns dos comandos da CLI do Azure se comunicam com o Azure Resource Manager pela Internet.

Se o seu espaço de trabalho Azure Machine Learning for público e não estiver atrás de uma rede virtual, as comunicações serão protegidas utilizando HTTPS/TLS 1.2. Não é necessária configuração adicional.

Se o seu espaço de trabalho Azure Machine Learning utilizar um ponto de extremidade privado e uma rede virtual, deve escolher uma das seguintes configurações para utilizar o CLI do Azure:

  • Para se comunicar pela Internet pública, defina o parâmetro --public-network-access comoEnabled.

  • Para evitar a comunicação através da Internet pública por motivos de segurança, configure o Azure Machine Learning para utilizar a conectividade de rede privada com um ponto de extremidade do Link Privado do Azure, conforme descrito na secção seguinte.

Conectividade de rede privada

Dependendo do seu caso de uso e dos requisitos organizacionais, pode configurar o Azure Machine Learning para utilizar a conectividade de rede privada. Você pode usar a CLI do Azure para implantar um espaço de trabalho e um ponto de extremidade de Link Privado para o recurso de espaço de trabalho.

Se utilizar pontos finais de ligação privada para o Registro de Contêiner do Azure e para o Azure Machine Learning, não poderá utilizar tarefas do Registo de Contêiner para construir imagens do ambiente Docker. Em vez disso, você deve criar imagens usando um cluster de computação do Azure Machine Learning.

No arquivo de configuração do espaço de trabalho YAML, você deve definir a propriedade image_build_compute como um nome de cluster de cálculo a ser usado para construção do ambiente de imagem do Docker. Você também pode especificar que o espaço de trabalho do link privado não pode ser acessado pela Internet definindo a propriedade public_network_access como Disabled.

O código a seguir mostra um exemplo de arquivo de configuração de espaço de trabalho para conectividade de rede privada.

$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

Depois de criar o espaço de trabalho, utilize os comandos CLI de rede do Azure para criar um ponto final de ligação privada para o espaço de trabalho.

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>

Para criar as entradas de zona privada do Sistema de Nomes de Domínio (DNS) para o espaço de trabalho, use os seguintes comandos:

# 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'

Para obter mais informações sobre a utilização de um ponto extremidade privado e uma rede virtual com o seu espaço de trabalho, veja os seguintes artigos:

Pode utilizar o seguinte processo para proteger as comunicações com todos os recursos do Azure Resource Manager num grupo de gestão do Azure utilizando o Private Link:

  1. Crie um link privado para gerenciar recursos do Azure.
  2. Crie um ponto de extremidade privado para o link privado criado no passo anterior.

Importante

Para configurar um link privado para o Azure Resource Manager, você deve ser o Proprietário da assinatura do Azure e um Proprietário ou Contribuidor no grupo de gerenciamento raiz. Para obter mais informações, consulte Criar um link privado para gerenciar recursos do Azure.

Configurações avançadas

Existem várias outras configurações avançadas que você pode aplicar aos espaços de trabalho. Para configurações de recursos complexas, confira também as opções de implantação baseadas em modelo, incluindo Azure Resource Manager.

Chaves gerenciadas pelo cliente

Por padrão, os metadados do espaço de trabalho são armazenados numa instância DB do Azure Cosmos que a Microsoft mantém e encriptados utilizando chaves geridas pela Microsoft. Em vez de usar a chave gerenciada pela Microsoft, você pode fornecer sua própria chave A utilização da sua própria chave cria um conjunto extra de recursos na sua subscrição do Azure para armazenar os seus dados.

Observação

O Azure Cosmos DB não é utilizado para armazenar informações de desempenho do modelo, informações registadas por experiências ou informações registadas a partir das implantação do modelo.

Para criar um espaço de trabalho que use sua própria chave, use o parâmetro customer_managed_key no arquivo de configuração do espaço de trabalho YAML e especifique o ID do recurso que contém key_vault e o key_uri da chave dentro do cofre.

$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

Para saber mais sobre os recursos criados quando você usa sua própria chave para criptografia, veja Criptografia de dados com Azure Machine Learning.

Observação

Para gerenciar os recursos de criptografia de dados adicionados, use o Gerenciamento de Identidade e Acesso para autorizar o aplicativo Machine Learning com permissões de Colaborador em sua assinatura.

Espaços de trabalho de alto impacto nos negócios

Para limitar os dados que a Microsoft coleta em seu espaço de trabalho, você pode especificar um espaço de trabalho de alto impacto nos negócios definindo a propriedade hbi_workspace no arquivo de configuração YAML como TRUE. Você pode definir um alto impacto nos negócios somente ao criar um espaço de trabalho. Não é possível alterar essa configuração após a criação do workspace.

Para obter mais informações sobre as chaves gerenciadas pelo cliente e o workspace de alto impacto nos negócios, confira Segurança empresarial do Azure Machine Learning.

Utilize o CLI do Azure para gerir espaços de trabalho

Você pode usar os comandos az ml espaço de trabalho para gerenciar espaços de trabalho.

Obter informações do workspace

Para obter informações sobre um workspace, use o seguinte comando:

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

Para obter mais informações, veja mostrar espaço de trabalho az ml.

Atualizar um workspace

Para atualizar um workspace, use o seguinte comando:

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

Por exemplo, o comando a seguir atualiza um espaço de trabalho para permitir o acesso à rede pública:

az ml workspace update -n <workspace-name> -g <resource-group-name> --public-network-access enabled

Para saber mais, confira az ml workspace update.

Sincronizar chaves para recursos dependentes

Se você alterar as chaves de acesso de um dos recursos que seu espaço de trabalho usa, levará cerca de uma hora para que o espaço de trabalho sincronize com as novas chaves. Para forçar o workspace a sincronizar as novas chaves imediatamente, use o seguinte comando:

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

Mover um workspace

A movimentação de um espaço de trabalho do Azure Machine Learning está atualmente em versão prévia. Para obter mais informações, veja Mover espaços de trabalho do Azure Machine Learning entre assinaturas (versão prévia).

Excluir um workspace

Para excluir um workspace depois que ele não for mais necessário, use o seguinte comando:

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

O comportamento padrão do Azure Machine Learning é excluir suavemente o espaço de trabalho. O espaço de trabalho não é excluído imediatamente, mas sim marcado para exclusão. Para mais informações, confira Exclusão temporária.

Aviso

Se a exclusão reversível estiver habilitada para o workspace, ele pode ser recuperado após a exclusão. Se a exclusão reversível não estiver habilitada ou se você selecionar a opção para excluir o workspace permanentemente, ele não poderá ser recuperado. Para mais informações, consulte Recuperar um workspace excluído.

A eliminação de um espaço de trabalho não elimina os insights da aplicação, a conta de armazenamento, o cofre de chaves ou o registo de contêiner utilizados pelo espaço de trabalho. Para eliminar o espaço de trabalho, os recursos dependentes e todos os outros recursos do Azure no grupo de recursos, pode eliminar o grupo de recursos. Para excluir o grupo de recursos, use o seguinte comando:

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

Para obter mais informações, veja exclusão do espaço de trabalho az ml.

Solucionar problemas de erros do provedor de recursos

Ao criar um workspace do Azure Machine Learning ou um recurso usado pelo workspace, você pode receber um erro semelhante às seguintes mensagens:

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

A maioria dos provedores de recursos é automaticamente registrada, mas não todos. Se você receber essa mensagem, será necessário registrar o provedor mencionado.

A seguinte tabela contém uma lista dos provedores de recursos exigidos pelo Azure Machine Learning:

Provedor de recursos Por que ele é necessário
Microsoft.MachineLearningServices Criar o Workspace do Azure Machine Learning.
Microsoft.Storage A conta de Armazenamento do Azure é usada como o armazenamento padrão do workspace.
Microsoft.ContainerRegistry O Registro de Contêiner do Azure é usado pelo workspace para criar imagens do Docker.
Microsoft.KeyVault O Azure Key Vault é usado pelo workspace para armazenar segredos.
Microsoft.Notebooks Notebooks integrados na instância de computação do Azure Machine Learning.
Microsoft.ContainerService Se você planeja implantar modelos treinados nos Serviços de Kubernetes do Azure.

Se você planeja usar uma chave gerenciada pelo cliente com o Azure Machine Learning, registre os seguintes provedores de serviços:

Provedor de recursos Por que ele é necessário
Microsoft.DocumentDB Instância do Azure CosmosDB que registra metadados do workspace.
Microsoft.Search O Azure Search oferece funcionalidades de indexação para o workspace.

Se você planeja usar uma rede virtual gerenciada com o Azure Machine Learning, registre o provedor de recursos Microsoft.Network. Esse provedor de recursos é usado pelo workspace ao criar pontos de extremidade privados para a rede virtual gerenciada.

Para obter informações sobre o registro de provedores de recursos, confira Resolver erros de registro de provedor de recursos.

  • Para obter mais informações sobre a extensão CLI do Azure para aprendizagem automática, veja a documentação az ml.
  • Para obter informações sobre diagnósticos que podem identificar e ajudar a resolver problemas de espaço de trabalho, veja Como usar diagnósticos de espaço de trabalho.
  • Para obter informações sobre como manter o Azure Machine Learning atualizado com as últimas atualizações de segurança, confira Gerenciamento de vulnerabilidades.