Gerenciar espaços de trabalho do Azure Machine Learning usando a CLI do Azure

APLICA-SE A:Extensão ml da CLI do Azure v2 (atual)

Neste artigo, você aprenderá 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 projetada para que você trabalhe rapidamente com o Azure, com ênfase na automação. A extensão de aprendizado de máquina para a CLI fornece comandos para trabalhar com recursos do Azure Machine Learning.

Você também pode gerenciar espaços de trabalho no portal do Azure e no SDK do Python, no Azure PowerShell ou por meio da extensão VS Code.

Pré-requisitos

Limitações

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

    O provedor de recursos para o Azure Machine Learning é Microsoft.MachineLearningServices. Para obter informações sobre como ver se ele está registrado e como registrá-lo, consulte o artigo Provedores e tipos de recursos do Azure.

    Importante

    Isso se aplica apenas aos recursos fornecidos durante a criação do espaço de trabalho; Contas de Armazenamento do Azure, Azure Container Register, Azure Key Vault e Application Insights.

Gorjeta

Uma instância do Azure Application Insights é criada quando você cria o espaço de trabalho. Você pode excluir a instância do Application Insights após a criação do cluster, se desejar. Excluí-lo limita as informações coletadas do espaço de trabalho e pode dificultar a solução de problemas. Se você excluir a instância do Application Insights criada pelo espaço de trabalho, não poderá recriá-la sem excluir e recriar o espaço de trabalho.

Para obter mais informações sobre como usar essa instância do Application Insights, consulte Monitorar e coletar dados de pontos de extremidade de serviço Web de Aprendizado de Máquina.

Comunicações CLI seguras

Alguns dos comandos da CLI do Azure comunicam com o Azure Resource Manager através da Internet. Esta comunicação é protegida usando HTTPS/TLS 1.2.

Com a extensão da CLI do Azure Machine Learning v2 ('ml'), todos os comandos se comunicam com o Gerenciador de Recursos do Azure. Isso inclui dados operacionais, como parâmetros YAML e metadados. Se o seu espaço de trabalho do Azure Machine Learning for público (ou seja, não estiver atrás de uma rede virtual), não será necessária nenhuma configuração extra. As comunicações são protegidas usando HTTPS/TLS 1.2.

Se seu espaço de trabalho do Azure Machine Learning usar um ponto de extremidade privado e uma rede virtual e você estiver usando a CLI v2, escolha uma das seguintes configurações para usar:

  • Se você estiver de acordo com a comunicação da CLI v2 pela Internet pública, use o seguinte --public-network-access parâmetro para o comando para habilitar o az ml workspace update acesso à rede pública. Por exemplo, o comando a seguir atualiza um espaço de trabalho para acesso à rede pública:

    az ml workspace update --name myworkspace --public-network-access enabled
    
  • Se você não estiver de acordo com a comunicação da CLI v2 pela Internet pública, poderá usar um Link Privado do Azure para aumentar a segurança da comunicação. Use os links a seguir para proteger as comunicações com o Azure Resource Manager usando o Azure Private Link.

    1. Proteja seu espaço de trabalho do Azure Machine Learning dentro de uma rede virtual usando um ponto de extremidade privado.
    2. Crie um Link Privado para gerenciar recursos do Azure.
    3. Crie um ponto de extremidade privado para o Link privado criado na etapa anterior.

    Importante

    Para configurar o link privado para o Gerenciador de Recursos do Azure, você deve ser o proprietário da assinatura do Azure e um proprietário ou colaborador do grupo de gerenciamento raiz. Para obter mais informações, consulte Criar um link privado para gerenciar recursos do Azure.

Para obter mais informações sobre a comunicação CLI v2, consulte Instalar e configurar a CLI.

Conectar a CLI à sua assinatura do Azure

Importante

Se você estiver usando o Azure Cloud Shell, poderá ignorar esta seção. O shell de nuvem autentica você automaticamente usando a conta que você faz logon em sua assinatura do Azure.

Há várias maneiras de autenticar sua assinatura do Azure a partir da CLI. O mais simples é autenticar interativamente usando um navegador. Para autenticar interativamente, abra uma linha de comando ou terminal e use o seguinte comando:

az login

Se a CLI conseguir abrir o seu browser predefinido, executa essa ação e carrega uma página de início de sessão. Caso contrário, você precisa abrir um navegador e seguir as instruções na linha de comando. As instruções envolvem navegar e https://aka.ms/devicelogin inserir um código de autorização.

Gorjeta

Depois de iniciar sessão, vê uma lista de subscrições associadas à sua conta do Azure. As informações de assinatura com isDefault: true são a assinatura atualmente ativada para comandos da CLI do Azure. Essa assinatura deve ser a mesma que contém seu espaço de trabalho do Azure Machine Learning. Você pode encontrar a ID da assinatura no portal do Azure visitando a página de visão geral do seu espaço de trabalho..

Para selecionar outra assinatura, use o comando e especifique o az account set -s <subscription name or ID> nome ou ID da assinatura para a qual mudar. Para obter mais informações sobre a seleção de assinaturas, consulte Usar várias assinaturas do Azure.

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

Criar um grupo de recursos

O espaço de trabalho do Azure Machine Learning deve ser criado dentro de um grupo de recursos. Pode utilizar um grupo de recursos existente ou criar um novo. Para criar um novo grupo de recursos, use o seguinte comando. Substitua <resource-group-name> pelo nome a ser usado para este grupo de recursos. Substitua <location> pela região do Azure a ser usada para este grupo de recursos:

Nota

Você deve selecionar uma região onde o Azure Machine Learning está disponível. Para obter informações, consulte Produtos disponíveis por região.

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

A resposta deste comando é semelhante ao seguinte JSON. Você pode usar os valores de saída para localizar os recursos criados ou analisá-los como entrada para etapas subsequentes da CLI para automação.

{
  "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, consulte az group.

Criar uma área de trabalho

Quando você implanta um espaço de trabalho do Azure Machine Learning, vários outros serviços são necessários como recursos associados dependentes. Quando você usa a CLI para criar o espaço de trabalho, a CLI pode criar novos recursos associados em seu nome ou você pode anexar recursos existentes.

Importante

Ao anexar sua própria conta de armazenamento, verifique se ela atende aos seguintes critérios:

  • A conta de armazenamento não é uma conta premium (Premium_LRS e Premium_GRS)
  • Recursos de Blob do Azure e Arquivo do Azure habilitados
  • Namespace hierárquico (ADLS Gen 2) está desativado Esses requisitos são apenas para a conta de armazenamento padrão usada pelo espaço de trabalho.

Ao anexar o registro de contêiner do Azure, você deve ter a conta de administrador habilitada antes que ela possa ser usada com um espaço de trabalho do Azure Machine Learning.

Para criar um novo espaço de trabalho onde os serviços são criados automaticamente, use o seguinte comando:

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

Importante

Ao anexar recursos existentes, não é necessário especificar todos. Você pode especificar um ou mais. Por exemplo, você pode especificar uma conta de armazenamento existente e o espaço de trabalho criará os outros recursos.

A saída do comando de criação do espaço de trabalho é semelhante ao seguinte JSON. Você pode usar os valores de saída para localizar os recursos criados ou analisá-los como entrada para as etapas subsequentes da 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>"
}

Configurações avançadas

Configurar espaço de trabalho para conectividade de rede privada

Dependendo do seu caso de uso e dos requisitos organizacionais, você pode optar por configurar o Aprendizado de Máquina do Azure usando 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. Para obter mais informações sobre como usar um ponto de extremidade privado e uma rede virtual (VNet) com seu espaço de trabalho, consulte Visão geral sobre isolamento e privacidade de rede virtual. Para configurações de recursos complexos, consulte também as opções de implantação baseadas em modelo, incluindo o Azure Resource Manager.

Ao usar o link privado, seu espaço de trabalho não pode usar o Registro de Contêiner do Azure para criar imagens do docker. Portanto, você deve definir a propriedade image_build_compute como um nome de cluster de computação da CPU a ser usado para a criação do ambiente de imagem do Docker. Você também pode especificar se o espaço de trabalho de link privado deve ser acessível pela Internet usando a propriedade 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

Depois de criar o espaço de trabalho, use os comandos da CLI de rede do Azure para criar um ponto de extremidade de link privado para o espaço de trabalho.

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>

Para criar as entradas de zona DNS privada 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 <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'

Espaço de trabalho de chave gerenciada pelo cliente e alto impacto nos negócios

Por padrão, os metadados do espaço de trabalho são armazenados em uma instância do Azure Cosmos DB mantida pela Microsoft. Esses dados são criptografados usando chaves gerenciadas pela Microsoft. Em vez de usar a chave gerenciada pela Microsoft, você também pode fornecer sua própria chave. Isso cria um conjunto extra de recursos em sua assinatura do Azure para armazenar seus dados.

Para saber mais sobre os recursos que são criados quando você traz sua própria chave para criptografia, consulte Criptografia de dados com o Azure Machine Learning.

Use o parâmetro e contendo key_vault e parâmetros, para especificar o ID do recurso e key_uri o customer_managed_key uri da chave dentro do vault.

Para limitar os dados que a Microsoft coleta em seu espaço de trabalho, você também pode especificar a hbi_workspace propriedade.

$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

Em seguida, você pode fazer referência a esse arquivo de configuração como parte do comando da CLI de criação do espaço de trabalho.

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

Nota

Autorize o Aplicativo de Aprendizado de Máquina (em Gerenciamento de Identidade e Acesso) com permissões de colaborador em sua assinatura para gerenciar os recursos adicionais de criptografia de dados.

Nota

O Azure Cosmos DB não é usado para armazenar informações como desempenho do modelo, informações registradas por experimentos ou informações registradas de suas implantações de modelo.

Importante

A seleção de alto impacto nos negócios só pode ser feita ao criar um espaço de trabalho. Não é possível alterar essa configuração após a criação do espaço de trabalho.

Para obter mais informações sobre chaves gerenciadas pelo cliente e espaço de trabalho de alto impacto nos negócios, consulte Segurança corporativa para o Azure Machine Learning.

Usando a CLI para gerenciar espaços de trabalho

Obter informações sobre o espaço de trabalho

Para obter informações sobre um espaço de trabalho, use o seguinte comando:

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

Para obter mais informações, consulte a documentação az ml workspace show .

Atualizar um espaço de trabalho

Para atualizar um espaço de trabalho, use o seguinte comando:

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

Para obter mais informações, consulte a documentação de atualização do espaço de trabalho az ml.

Sincronizar chaves para recursos dependentes

Se você alterar as chaves de acesso de um dos recursos usados pelo espaço de trabalho, levará cerca de uma hora para que o espaço de trabalho seja sincronizado com a nova chave. Para forçar o espaço de trabalho a sincronizar as novas chaves imediatamente, use o seguinte comando:

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

Para obter mais informações sobre como alterar chaves, consulte Regenerar chaves de acesso de armazenamento.

Para obter mais informações sobre o comando sync-keys, consulte az ml workspace sync-keys.

Eliminar uma área de trabalho

Aviso

Se a exclusão suave estiver habilitada para o espaço de trabalho, ela poderá ser recuperada após a exclusão. Se a exclusão suave não estiver habilitada ou se você selecionar a opção para excluir permanentemente o espaço de trabalho, ele não poderá ser recuperado. Para obter mais informações, consulte Recuperar um espaço de trabalho excluído.

Para excluir um espaço de trabalho depois que ele não for mais necessário, use o seguinte comando:

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

Importante

A exclusão de um espaço de trabalho não exclui o insight do aplicativo, a conta de armazenamento, o cofre de chaves ou o registro de contêiner usados pelo espaço de trabalho.

Você também pode excluir o grupo de recursos, que exclui o espaço de trabalho e todos os outros recursos do Azure no 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, consulte a documentação de exclusão do espaço de trabalho az ml.

Gorjeta

O comportamento padrão do Aprendizado de Máquina do Azure é excluir suavemente o espaço de trabalho. Isso significa que o espaço de trabalho não é excluído imediatamente, mas é marcado para exclusão. Para obter mais informações, consulte Exclusão suave.

Resolução de problemas

Erros do provedor de recursos

Ao criar um espaço de trabalho do Azure Machine Learning ou um recurso usado pelo espaço de trabalho, 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 são registrados automaticamente, mas não todos. Se receber esta mensagem, terá de registar o fornecedor mencionado.

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

Fornecedor de recursos Por que motivo é necessária
Microsoft.MachineLearningServices Criando o espaço de trabalho do Azure Machine Learning.
Microsoft.Armazenamento A Conta de Armazenamento do Azure é usada como o armazenamento padrão para o espaço de trabalho.
Microsoft.ContainerRegistry O Registro de Contêiner do Azure é usado pelo espaço de trabalho para criar imagens do Docker.
Microsoft.KeyVault O Azure Key Vault é usado pelo espaço de trabalho para armazenar segredos.
Microsoft.Notebooks Blocos de anotações integrados na instância de computação do Azure Machine Learning.
Microsoft.ContainerService Se você planeja implantar modelos treinados nos Serviços Kubernetes do Azure.

Se você planeja usar uma chave gerenciada pelo cliente com o Aprendizado de Máquina do Azure, os seguintes provedores de serviços devem ser registrados:

Fornecedor de recursos Por que motivo é necessária
Microsoft.Banco de Dados de Documentos Instância do Azure CosmosDB que registra metadados para o espaço de trabalho.
Microsoft.Pesquisa O Azure Search fornece recursos de indexação para o espaço de trabalho.

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

Para obter informações sobre como registrar provedores de recursos, consulte Resolver erros para registro de provedor de recursos.

Movendo o espaço de trabalho

Aviso

Não há suporte para mover seu espaço de trabalho do Azure Machine Learning para uma assinatura diferente ou mover a assinatura proprietária para um novo locatário. Isso pode causar erros.

Excluindo o Registro de Contêiner do Azure

O espaço de trabalho do Azure Machine Learning usa o Azure Container Registry (ACR) para algumas operações. Ele criará automaticamente uma instância ACR quando precisar de uma pela primeira vez.

Aviso

Depois que um Registro de Contêiner do Azure tiver sido criado para um espaço de trabalho, não o exclua. Isso interromperá seu espaço de trabalho do Azure Machine Learning.

Próximos passos

Para obter mais informações sobre a extensão da CLI do Azure para aprendizado de máquina, consulte a documentação az ml .

Para verificar se há problemas com seu espaço de trabalho, consulte Como usar o diagnóstico do espaço de trabalho.

Para saber como mover um espaço de trabalho para uma nova assinatura do Azure, consulte Como mover um espaço de trabalho.

Para obter informações sobre como manter seu Aprendizado de Máquina do Azure atualizado com as atualizações de segurança mais recentes, consulte Gerenciamento de vulnerabilidades.