Gerenciar espaços de trabalho do Azure Machine Learning no portal ou com o SDK do Python (v2)
APLICA-SE A: Python SDK azure-ai-ml v2 (atual)
Neste artigo, você cria, exibe e exclui espaços de trabalho do Azure Machine Learning para o Azure Machine Learning, com o portal do Azure ou o SDK para Python.
À medida que suas necessidades mudam ou seus requisitos de automação aumentam, você pode gerenciar espaços de trabalho com a CLI, o Azure PowerShell ou por meio da extensão Visual Studio Code.
Pré-requisitos
- Uma subscrição do Azure. Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar. Experimente hoje mesmo a versão gratuita ou paga do Azure Machine Learning .
- Com o Python SDK:
Instale azure-identity:
pip install azure-identity
. Se estiver em uma célula do bloco de anotações, use%pip install azure-identity
.Forneça os detalhes da sua subscrição:
APLICA-SE A: Python SDK azure-ai-ml v2 (atual)
# Enter details of your subscription subscription_id = "<SUBSCRIPTION_ID>" resource_group = "<RESOURCE_GROUP>"
Obtenha um identificador para a assinatura. Todo o código Python neste artigo usa
ml_client
:# get a handle to the subscription from azure.ai.ml import MLClient from azure.identity import DefaultAzureCredential ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)
(Opcional) Se você tiver várias contas, adicione a ID do locatário da ID do Microsoft Entra que deseja usar no
DefaultAzureCredential
. Encontre sua ID de locatário no portal do Azure em Microsoft Entra ID, Identidades Externas.DefaultAzureCredential(interactive_browser_tenant_id="<TENANT_ID>")
(Opcional) Se estiver a trabalhar nas regiões Azure Government - US ou Azure China 21Vianet , tem de especificar a nuvem na qual pretende autenticar. Você pode especificar essas regiões em
DefaultAzureCredential
.from azure.identity import AzureAuthorityHosts DefaultAzureCredential(authority=AzureAuthorityHosts.AZURE_GOVERNMENT))
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, se você criar um espaço de trabalho na assinatura A que usa uma conta de armazenamento na assinatura B, o namespace do Azure Machine Learning deverá ser registrado na assinatura B antes que o espaço de trabalho possa usar a conta de armazenamento.
O provedor de recursos para o Azure Machine Learning é Microsoft.MachineLearningServices. Para obter informações sobre como ver se está registado ou registado, consulte Fornecedores e tipos de recursos do Azure.
Importante
Essas informações se aplicam somente aos recursos fornecidos durante a criação do espaço de trabalho: Contas de Armazenamento do Azure, Registro de Contêiner do Azure, Cofre da Chave do Azure e Application Insights.
Para isolamento de rede com pontos de extremidade online, você pode usar recursos associados ao espaço de trabalho (Azure Container Registry (ACR), conta de armazenamento, Key Vault e Application Insights) de um grupo de recursos diferente do seu espaço de trabalho. No entanto, esses recursos devem pertencer à mesma assinatura e locatário do seu espaço de trabalho. Para obter informações sobre as limitações que se aplicam à proteção de pontos de extremidade online gerenciados, usando a rede virtual gerenciada de um espaço de trabalho, consulte Isolamento de rede com pontos de extremidade online gerenciados.
A criação de espaço de trabalho também cria um Registro de Contêiner do Azure (ACR) por padrão. Como o ACR atualmente não oferece suporte a caracteres unicode em nomes de grupos de recursos, use um grupo de recursos que evite esses caracteres.
O Azure Machine Learning não oferece suporte ao namespace hierárquico (recurso Azure Data Lake Storage Gen2) para a conta de armazenamento padrão do espaço de trabalho.
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, a única maneira de recriá-la é excluir e recriar o espaço de trabalho.
Para obter mais informações sobre como usar a instância do Application Insights, consulte Monitorar e coletar dados de pontos de extremidade de serviço Web do Machine Learning.
Criar uma área de trabalho
Você pode criar um espaço de trabalho diretamente no estúdio do Azure Machine Learning, com opções limitadas disponíveis. Você também pode usar um destes métodos para obter mais controle das opções:
APLICA-SE A: Python SDK azure-ai-ml v2 (atual)
Configuração básica para introdução Sem especificação, os recursos associados e o grupo de recursos do Azure são criados automaticamente. Esse código cria um espaço de trabalho chamado
myworkspace
, recursos dependentes do Azure (conta de armazenamento, cofre de chaves, registro de contêiner, Application Insights) e um grupo de recursos nomeadomyresourcegroup
emeastus2
.# Creating a unique workspace name with current datetime to avoid conflicts from azure.ai.ml.entities import Workspace import datetime basic_workspace_name = "mlw-basic-prod-" + datetime.datetime.now().strftime( "%Y%m%d%H%M" ) ws_basic = Workspace( name=basic_workspace_name, location="eastus", display_name="Basic workspace-example", description="This example shows how to create a basic workspace", hbi_workspace=False, tags=dict(purpose="demo"), ) ws_basic = ml_client.workspaces.begin_create(ws_basic).result() print(ws_basic)
Use os recursos existentes do Azure. Para trazer recursos existentes do Azure, faça referência a eles usando o formato de ID de recurso do Azure. Encontre as IDs de recursos específicas do Azure no portal do Azure ou com o SDK. Este exemplo pressupõe que o grupo de recursos, a conta de armazenamento, o Cofre de chaves, o Application Insights e o Registro de contêiner já existam.
# Creating a unique workspace name with current datetime to avoid conflicts import datetime from azure.ai.ml.entities import Workspace basic_ex_workspace_name = "mlw-basicex-prod-" + datetime.datetime.now().strftime( "%Y%m%d%H%M" ) # Change the following variables to resource ids of your existing storage account, key vault, application insights # and container registry. Here we reuse the ones we just created for the basic workspace existing_storage_account = ( # e.g. "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT>" ws_basic.storage_account ) existing_container_registry = ( # e.g. "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.ContainerRegistry/registries/<CONTAINER_REGISTRY>" ws_basic.container_registry ) existing_key_vault = ( # e.g. "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.KeyVault/vaults/<KEY_VAULT>" ws_basic.key_vault ) existing_application_insights = ( # e.g. "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.insights/components/<APP_INSIGHTS>" ws_basic.application_insights ) ws_with_existing_resources = Workspace( name=basic_ex_workspace_name, location="eastus", display_name="Bring your own dependent resources-example", description="This sample specifies a workspace configuration with existing dependent resources", storage_account=existing_storage_account, container_registry=existing_container_registry, key_vault=existing_key_vault, application_insights=existing_application_insights, tags=dict(purpose="demonstration"), ) ws_with_existing_resources = ml_client.begin_create_or_update( ws_with_existing_resources ).result() print(ws_with_existing_resources)
(Pré-visualização) Use o espaço de trabalho de hub existente. Em vez de criar um espaço de trabalho padrão com suas próprias configurações de segurança e recursos associados, você pode reutilizar o ambiente compartilhado de um espaço de trabalho de hub. Seu novo espaço de trabalho de "projeto" obterá configurações de segurança e configurações compartilhadas do hub, incluindo computação e conexões. Este exemplo pressupõe que o espaço de trabalho do hub já exista.
from azure.ai.ml.entities import Project my_project_name = "myexampleproject" my_location = "East US" my_display_name = "My Example Project" my_hub = Project(name=my_hub_name, location=my_location, display_name=my_display_name, hub_id=created_hub.id) created_project_workspace = ml_client.workspaces.begin_create(workspace=my_hub).result()
Para obter mais informações, consulte Referência do SDK do espaço de trabalho.
Se você tiver problemas para acessar sua assinatura, consulte Configurar a autenticação para recursos e fluxos de trabalho do Azure Machine Learning e Autenticação no bloco de anotações do Azure Machine Learning.
Rede
Importante
Para obter mais informações sobre o uso de um ponto de extremidade privado e rede virtual com seu espaço de trabalho, consulte Isolamento e privacidade de rede.
APLICA-SE A: Python SDK azure-ai-ml v2 (atual)
# Creating a unique workspace name with current datetime to avoid conflicts
import datetime
from azure.ai.ml.entities import Workspace
basic_private_link_workspace_name = (
"mlw-privatelink-prod-" + datetime.datetime.now().strftime("%Y%m%d%H%M")
)
ws_private = Workspace(
name=basic_private_link_workspace_name,
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=dict(purpose="demonstration"),
)
ml_client.workspaces.begin_create(ws_private).result()
Esta classe requer uma rede virtual existente.
Encriptação
Por padrão, uma instância do Azure Cosmos DB armazena os metadados do espaço de trabalho. A Microsoft mantém essa instância do Cosmos DB. As chaves gerenciadas pela Microsoft criptografam esses dados.
Use sua própria chave de criptografia de dados
Você pode fornecer sua própria chave para criptografia de dados. Fornecer sua própria chave cria a instância do Azure Cosmos DB que armazena metadados em sua assinatura do Azure. Para obter mais informações, consulte Chaves gerenciadas pelo cliente.
Use estas etapas para fornecer sua própria chave:
Importante
Antes de seguir estas etapas, você deve primeiro executar estas ações:
Siga as etapas em Configurar chaves gerenciadas pelo cliente para:
- Registrar o provedor do Azure Cosmos DB
- Criar e configurar um Cofre da Chave do Azure
- Gerar uma chave
APLICA-SE A: Python SDK azure-ai-ml v2 (atual)
from azure.ai.ml.entities import Workspace, CustomerManagedKey
# specify the workspace details
ws = Workspace(
name="my_workspace",
location="eastus",
display_name="My workspace",
description="This example shows how to create a workspace",
customer_managed_key=CustomerManagedKey(
key_vault="/subscriptions/<SUBSCRIPTION_ID>/resourcegroups/<RESOURCE_GROUP>/providers/microsoft.keyvault/vaults/<VAULT_NAME>"
key_uri="<KEY-IDENTIFIER>"
)
tags=dict(purpose="demo")
)
ml_client.workspaces.begin_create(ws)
Identidade
No portal, use a página Identidade para configurar a identidade gerenciada, o acesso à conta de armazenamento e o impacto nos dados. Para o Python SDK, consulte os links nas seções a seguir.
Identidade gerida
Um espaço de trabalho pode receber uma identidade atribuída ao sistema ou uma identidade atribuída ao usuário. Essa identidade é usada para acessar recursos em sua assinatura. Para obter mais informações, consulte Configurar a autenticação entre o Azure Machine Learning e outros serviços.
Acesso à conta de armazenamento
Escolha entre acesso baseado em credenciais ou acesso baseado em identidade ao se conectar à conta de armazenamento padrão. Para autenticação baseada em identidade, a função de Colaborador de Dados de Blob de Armazenamento deve ser concedida à identidade gerenciada do espaço de trabalho na conta de armazenamento.
Impacto dos dados
Para limitar os dados que a Microsoft coleta em seu espaço de trabalho, selecione Espaço de trabalho de alto impacto nos negócios no portal ou defina hbi_workspace=true
em Python. Para obter mais informações sobre essa configuração, consulte Criptografia em repouso.
Importante
A seleção de alto impacto nos negócios só pode acontecer 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.
Etiquetas
As etiquetas são pares nome/valor que permitem categorizar recursos e ver faturação consolidada aplicando a mesma etiqueta a múltiplos recursos e grupos de recursos.
Atribua tags para o espaço de trabalho inserindo os pares nome/valor. Para obter mais informações, consulte Usar marcas para organizar seus recursos do Azure.
Use também tags para [enforce workspace policies)(#enforce-policies].
Baixar um arquivo de configuração
Se você executar seu código em uma instância de computação, ignore esta etapa. A instância de computação cria e armazena uma cópia desse arquivo para você.
Para usar o código em seu ambiente local que faz referência a esse espaço de trabalho, baixe o arquivo:
Selecione seu espaço de trabalho no estúdio do Azure
No canto superior direito, selecione o nome do espaço de trabalho e, em seguida, selecione Download config.json
Coloque o arquivo na estrutura de diretórios que contém seus scripts Python ou Jupyter Notebooks. O mesmo diretório, um subdiretório chamado .azureml ou um diretório pai pode conter esse arquivo. Quando você cria uma instância de computação, esse arquivo é adicionado ao diretório correto na VM para você.
Aplicar políticas
Você pode ativar/desativar estes recursos de um espaço de trabalho:
- Oportunidades de feedback no espaço de trabalho. As oportunidades incluem pesquisas ocasionais no produto e a ferramenta de feedback smile-frown no banner do espaço de trabalho.
- Capacidade de experimentar recursos de visualização no espaço de trabalho.
Esses recursos estão ativados por padrão. Para desativá-los:
Ao criar o espaço de trabalho, desative os recursos da seção Marcas :
- Desative o feedback adicionando o par "ADMIN_HIDE_SURVEY: TRUE"
- Desative as pré-visualizações adicionando o par "AZML_DISABLE_PREVIEW_FEATURE": "TRUE"
Para um espaço de trabalho existente, desative os recursos da seção Marcas :
- Ir para o recurso de espaço de trabalho no portal do Azure
- Abrir Tags no painel de navegação esquerdo
- Desative o feedback adicionando o par "ADMIN_HIDE_SURVEY: TRUE"
- Desative as visualizações adicionando o par "AZML_DISABLE_PREVIEW_FEATURE: TRUE"
- Selecione Aplicar.
Você pode desativar as visualizações em um nível de assinatura, garantindo que ela esteja desativada para todos os espaços de trabalho da assinatura. Nesse caso, os usuários na assinatura também não podem acessar a ferramenta de visualização antes de selecionar um espaço de trabalho. Essa configuração é útil para administradores que desejam garantir que os recursos de visualização não sejam usados em sua organização.
Se a configuração de visualização estiver desabilitada no nível da assinatura, defini-la em espaços de trabalho individuais será ignorada.
Para desativar os recursos de visualização no nível da assinatura:
- Ir para o recurso de subscrição no portal do Azure
- Abrir Tags no painel de navegação esquerdo
- Desative as visualizações de todos os espaços de trabalho na assinatura adicionando o par "AZML_DISABLE_PREVIEW_FEATURE": "TRUE"
- Selecione Aplicar.
Conectar-se a um espaço de trabalho
Ao executar tarefas de aprendizado de máquina com o SDK, você precisa de um objeto MLClient que especifique a conexão com seu espaço de trabalho. Você pode criar um MLClient
objeto a partir de parâmetros ou com um arquivo de configuração.
APLICA-SE A: Python SDK azure-ai-ml v2 (atual)
Com um arquivo de configuração: esse código lê o conteúdo do arquivo de configuração para localizar seu espaço de trabalho. Ele abre um prompt para entrar se você ainda não se autenticou.
from azure.ai.ml import MLClient # read the config from the current directory ws_from_config = MLClient.from_config(credential=DefaultAzureCredential())
Dos parâmetros: Não há necessidade de ter um arquivo config.json disponível se você usar essa abordagem.
from azure.ai.ml import MLClient from azure.ai.ml.entities import Workspace from azure.identity import DefaultAzureCredential ws = MLClient( DefaultAzureCredential(), subscription_id="<SUBSCRIPTION_ID>", resource_group_name="<RESOURCE_GROUP>", workspace_name="<AML_WORKSPACE_NAME>", ) print(ws)
Se você tiver problemas para acessar sua assinatura, consulte Configurar a autenticação para recursos e fluxos de trabalho do Azure Machine Learning e Autenticação no bloco de anotações do Azure Machine Learning.
Localizar uma área de trabalho
Veja uma lista de todos os espaços de trabalho disponíveis. Você também pode procurar um espaço de trabalho dentro do Studio. Consulte Pesquisar ativos do Azure Machine Learning (visualização).
APLICA-SE A: Python SDK azure-ai-ml v2 (atual)
from azure.ai.ml import MLClient
from azure.ai.ml.entities import Workspace
from azure.identity import DefaultAzureCredential
# Enter details of your subscription
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
my_ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)
for ws in my_ml_client.workspaces.list():
print(ws.name, ":", ws.location, ":", ws.description)
Para obter detalhes específicos do espaço de trabalho:
ws = my_ml_client.workspaces.get("<AML_WORKSPACE_NAME>")
# uncomment this line after providing a workspace name above
# print(ws.location,":", ws.resource_group)
Eliminar uma área de trabalho
Quando não precisar mais de um espaço de trabalho, exclua-o.
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.
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.
APLICA-SE A: Python SDK azure-ai-ml v2 (atual)
ml_client.workspaces.begin_delete(name=ws_basic.name, delete_dependent_resources=True)
A ação padrão não exclui automaticamente os recursos associados ao espaço de trabalho. Defina delete_dependent_resources
como True para excluir esses recursos também.
- container registry
- conta de armazenamento
- key vault
- Azure Application Insights
Clean up resources (Limpar recursos)
Importante
Os recursos que você criou podem ser usados como pré-requisitos para outros tutoriais e artigos de instruções do Azure Machine Learning.
Se você não planeja usar nenhum dos recursos que criou, exclua-os para não incorrer em cobranças:
No portal do Azure, na caixa de pesquisa, insira Grupos de recursos e selecione-o nos resultados.
Na lista, selecione o grupo de recursos que você criou.
Na página Visão geral, selecione Excluir grupo de recursos.
Insira o nome do grupo de recursos. Em seguida, selecione Eliminar.
Resolução de Problemas
Browsers suportados no estúdio de Aprendizagem de Máquina do Azure: sugerimos que utilize o browser mais atualizado e compatível com o seu sistema operativo. Estes navegadores são suportados:
- Microsoft Edge (O novo Microsoft Edge, versão mais recente. Observação: o legado do Microsoft Edge não é suportado)
- Safari (versão mais recente, apenas Mac)
- Chrome (última versão)
- Firefox (última versão)
Portal do Azure:
- Se você for diretamente para seu espaço de trabalho a partir de um link de compartilhamento do SDK ou do portal do Azure, não poderá exibir a página Visão geral padrão que tem informações de assinatura na extensão. Além disso, nesse cenário, você não pode alternar para outro espaço de trabalho. Para exibir outro espaço de trabalho, vá diretamente para o estúdio do Azure Machine Learning e procure o nome do espaço de trabalho.
- Todos os ativos (Dados, Experiências, Cálculos e assim por diante) só estão disponíveis no estúdio de Aprendizado de Máquina do Azure. O portal do Azure não os oferece* .
- Tentar exportar um modelo para um espaço de trabalho do portal do Azure pode retornar um erro semelhante a este texto:
Could not get resource of the type <type>. Resources of this type will not be exported.
Como solução alternativa, use um dos modelos fornecidos em https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.machinelearningservices como base para seu modelo.
Diagnóstico da área de trabalho
Você pode executar diagnósticos em seu espaço de trabalho a partir do estúdio do Azure Machine Learning ou do SDK do Python. Após a execução do diagnóstico, uma lista de todos os problemas detetados é retornada. Esta lista inclui links para possíveis soluções. Para obter mais informações, consulte Como usar o diagnóstico do espaço de trabalho.
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 Azure Machine Learning, 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. Este fornecedor de recursos é utilizado pelo espaço de trabalho ao criar endpoints privados para a rede virtual gerida.
Para obter informações sobre como registrar provedores de recursos, consulte Resolver erros para registro de provedor de recursos.
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 cria automaticamente uma instância ACR quando precisa de uma pela primeira vez.
Aviso
Depois que um Registro de Contêiner do Azure for criado para um espaço de trabalho, não o exclua. Isso quebra seu espaço de trabalho do Azure Machine Learning.
Exemplos
Os exemplos neste artigo vêm de workspace.ipynb.
Próximos passos
Depois de ter um espaço de trabalho, saiba como treinar e implantar um modelo.
Para saber mais sobre como planejar um espaço de trabalho para os requisitos da sua organização, visite Organizar e configurar o Azure Machine Learning.
- Se você precisar mover um espaço de trabalho para outra assinatura do Azure, visite 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, visite Gerenciamento de vulnerabilidades.