Compartilhar via


Gerenciar os workspaces do Azure Machine Learning no portal ou com o SDK do Python (v2)

APPLIES TO: SDK Python azure-ai-ml v2 (atual)

Neste artigo, você criará, exibirá e excluirá workspaces do Azure Machine Learning para o Azure Machine Learning, usando o portal do Azure ou o SDK do Python.

À medida que suas necessidades mudam ou seus requisitos de automação aumentam, você pode gerenciar os workspaces com a CLI, com o Azure PowerShell ou por meio da extensão do Visual Studio Code.

Pré-requisitos

  • Uma assinatura do Azure. Caso não tenha uma assinatura 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 SDK do Python:
    1. Instale o SDK v2.

    2. Instale azure-identity: pip install azure-identity. Se estiver em uma célula de notebook, use %pip install azure-identity.

    3. Forneça os detalhes da sua assinatura:

      APPLIES TO: SDK Python azure-ai-ml v2 (atual)

      # Enter details of your subscription
      subscription_id = "<SUBSCRIPTION_ID>"
      resource_group = "<RESOURCE_GROUP>"
    4. Controle a assinatura. Todo o código Python nesse 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 o ID do locatário do ID do Microsoft Entra que deseja usar no DefaultAzureCredential. Localize sua ID de locatário do portal do Azure no Microsoft Entra ID, Identidades Externas.

        DefaultAzureCredential(interactive_browser_tenant_id="<TENANT_ID>")
        
      • (Opcional) Se estiver trabalhando nas regiões Azure Governamental - EUA ou Azure China 21Vianet, será necessário especificar a nuvem na qual deseja se 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 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 se aplicam somente aos recursos fornecidos durante a criação do workspace: contas de Armazenamento do Microsoft Azure, Registro de Contêiner do Azure, Azure Key Vault e Application Insights.

  • Para isolamento de rede com pontos de extremidade online, você pode usar recursos associados ao espaço de trabalho (Registro de Contêiner do Azure (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 à segurança de pontos de extremidade online gerenciados usando a rede virtual gerenciada do espaço de trabalho, confira Isolamento de rede com pontos de extremidade online gerenciados.

  • A criação do workspace também cria um ACR (Registro de Contêiner do Azure) por padrão. Como o ACR não oferece suporte atualmente 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 do Azure Data Lake Storage Gen2) para a conta de armazenamento padrão do espaço de trabalho.

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 da Web de Azure Machine Learning.

Criar um espaço de trabalho

Um workspace pode ser criado 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:

APPLIES TO: SDK Python azure-ai-ml v2 (atual)

  • Configuração básica para começar Sem especificação, 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, Key Vault, Registro de Contêiner, Application Insights) e um grupo de recursos chamado myresourcegroup em eastus2.

    # 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 os recursos existentes do Azure, faça referência a eles usando o formato de ID do recurso do Azure. Localize as IDs de recurso do Azure específicas no portal do Azure ou com o SDK. Esse exemplo pressupõe que o grupo de recursos, a conta de armazenamento, o Key Vault, 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)
  • Usar o espaço de trabalho do 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 'projeto' obtém 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 de 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 a referência de SDK do Workspace.

Se você tiver problemas ao acessar sua assinatura, confira Configurar a autenticação para recursos e fluxos de trabalho do Azure Machine Learning e o notebook Autenticação no Azure Machine Learning.

Rede

Importante

Para obter mais informações sobre o uso de um ponto de extremidade privado e uma rede virtual com seu espaço de trabalho, veja Isolamento e privacidade de rede.

APPLIES TO: SDK Python 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()

Essa classe requer uma rede virtual existente.

Criptografia

Por padrão, uma instância do Azure Cosmos DB armazena os metadados do workspace. A Microsoft mantém essa instância do Cosmos DB. As chaves gerenciadas pela Microsoft criptografam esses dados.

Usar sua própria chave de criptografia de dados

Você pode fornecer sua própria chave para a criptografia de dados. Fornecer sua própria chave cria a instância do Azure Cosmos DB que armazena os metadados na sua assinatura do Azure. Para saber mais, confira Chaves gerenciadas pelo cliente.

Use estas etapas para fornecer sua própria chave:

Importante

Antes de seguir estas etapas, primeiro você deve executar estas ações:

Siga as etapas descritas em Configurar chaves gerenciadas pelo cliente para:

  • Registrar o provedor do Azure Cosmos DB
  • Criar e configurar um Azure Key Vault
  • Gerar uma chave

APPLIES TO: SDK Python 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 dos dados. Para o SDK do Python, confira os links nas seções a seguir.

Identidade gerenciada

Um workspace pode receber uma identidade atribuída pelo sistema ou uma identidade atribuída pelo 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 o Acesso baseado em credencial 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 do Storage Blob 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 workspace, selecione Workspace de alto impacto nos negócios no portal, ou defina hbi_workspace=true em Python. Para obter mais informações sobre essa configuração, confira Criptografia em repouso.

Importante

Selecionar alto impacto comercial só pode acontecer ao criar um espaço de trabalho. Não é possível alterar essa configuração após a criação do workspace.

Etiquetas

Marcas são pares nome/valor que permitem categorizar recursos e exibir a cobrança consolidada por meio da aplicação da mesma marca a vários recursos e grupos de recursos.

Atribua tags para o espaço de trabalho inserindo os pares nome/valor. Para obter mais informações, veja Usar marcas para organizar seus recursos do Azure.

Use também tags para [aplicar políticas de espaço de trabalho](#enforce-policies).

Baixar um arquivo de configuração

Se você executar seu código em uma instância de computação, ignore essa etapa. A instância de computação cria e armazena uma cópia desse arquivo para você.

Se você planeja usar código em seu ambiente local que faz referência a esse workspace, faça o download do arquivo:

  1. Selecione seu workspace no Azure Studio

  2. No canto superior direito, selecione o nome do workspace e selecione Baixar config.json

    Captura de tela da opção

Coloque o arquivo na estrutura de diretório que contém seus scripts de Python ou Jupyter Notebooks. O mesmo diretório, um subdiretório chamado .azuremlou um diretório pai podem conter esse arquivo. Quando você cria uma instância de computação, esse arquivo é adicionado ao diretório correto na VM para você.

Aplique políticas

Você pode ativar/desativar estes recursos de um espaço de trabalho:

  • Oportunidades de comentários no espaço de trabalho. As oportunidades incluem pesquisas ocasionais no produto e a ferramenta de feedback com sorrisos e carrancas 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 desligá-los:

  • Ao criar o espaço de trabalho, desative os recursos da seção Tags:

    1. Desative os comentários adicionando o par "ADMIN_HIDE_SURVEY: TRUE"
    2. Desative as visualizações adicionando o par "AZML_DISABLE_PREVIEW_FEATURE": "TRUE"
  • Para um espaço de trabalho existente, desative os recursos da seção Tags:

    1. Acesse o recurso do espaço de trabalho no portal do Azure
    2. Abra Etiquetas do painel esquerdo
    3. Desative os comentários adicionando o par "ADMIN_HIDE_SURVEY: TRUE"
    4. Desative as visualizações adicionando o par "AZML_DISABLE_PREVIEW_FEATURE: TRUE"
    5. Escolha Aplicar.

A captura de tela mostra a configuração de tags para prevenir feedback no espaço de trabalho.

Você pode desativar as visualizações no nível da assinatura, garantindo que elas estejam desativadas para todos os espaços de trabalho da assinatura. Nesse caso, os usuários assinantes também não podem acessar a ferramenta de visualização antes de selecionar um workspace. Essa configuração é útil para os administradores que querem garantir que as versões prévias dos recursos não sejam utilizadas na respectiva organização.

Se a configuração da versão prévia estiver desabilitada no nível da assinatura, a possibilidade de configurá-la em workspaces individuais será ignorada.

Para desabilitar a versão prévia do recurso no nível da assinatura:

  1. Acesse o recurso de assinatura no portal do Azure
  2. Abra Etiquetas do painel esquerdo
  3. Desative as visualizações para todos os espaços de trabalho na assinatura adicionando o par "AZML_DISABLE_PREVIEW_FEATURE": "TRUE"
  4. Escolha Aplicar.

Conectar-se a um espaço de trabalho

Ao executar tarefas de aprendizado de máquina usando o SDK, você precisa de um objeto MLClient que especifique a conexão com seu workspace. Você pode criar um objeto MLClient a partir de parâmetros ou com um arquivo de configuração.

APPLIES TO: SDK Python 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 workspace. Ele abre um prompt para fazer login caso você ainda não tenha se autenticado.

    from azure.ai.ml import MLClient
    
    # read the config from the current directory
    ws_from_config = MLClient.from_config(credential=DefaultAzureCredential())
    
  • A partir de parâmetros: não é necessário 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 ao acessar sua assinatura, confira Configurar a autenticação para recursos e fluxos de trabalho do Azure Machine Learning e o notebook Autenticação no Azure Machine Learning.

Encontrar um espaço de trabalho

Confira uma lista de todos os workspaces disponíveis. Você também pode procurar um espaço de trabalho dentro do Studio. Confira Pesquisar ativos do Azure Machine Learning (versão prévia).

APPLIES TO: SDK Python 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)

Excluir um workspace

Quando você não precisar mais de um workspace, exclua-o.

Aviso

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

Dica

O comportamento padrão do Azure Machine Learning é excluir temporariamente o espaço de trabalho. Isso significa que o espaço de trabalho não é excluído imediatamente, mas sim marcado para exclusão. Para obter mais informações, veja Exclusão suave.

APPLIES TO: SDK Python 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 os recursos associados ao workspace automaticamente. Defina delete_dependent_resources como True para excluir esses recursos também.

  • registro de contêiner
  • conta de armazenamento
  • cofre de chaves
  • percepções de aplicação

Limpar recursos

Importante

Os recursos que você criou podem ser usados como pré-requisitos em outros tutoriais e artigos de instruções do Azure Machine Learning.

Se você não pretende usar nenhum dos recursos criados, exclua-os para não gerar custos:

  1. No portal do Azure, na caixa de pesquisa, insira Grupos de recursos e selecione-o nos resultados.

  2. Selecione o grupo de recursos que você criou por meio da lista.

  3. Na página Visão geral, selecione Excluir grupo de recursos.

    Captura de tela das seleções para excluir um grupo de recursos no portal do Azure.

  4. Insira o nome do grupo de recursos. Em seguida, selecione Excluir.

Solução de problemas

  • Navegadores com suporte no Estúdio do Azure Machine Learning : é recomendável que você use o navegador mais atualizado compatível com seu o sistema operacional. Estes navegadores têm suporte:

    • Microsoft Edge (a versão mais recente, Observação: não há suporte para o Microsoft Edge herdado)
    • Safari (última versão, apenas Mac)
    • Chrome (última versão)
    • Firefox (última versão)
  • Portal do Azure:

    • Se você for diretamente para seu workspace a partir de um link de compartilhamento do SDK ou do portal do Azure, não será possível exibir a página de Visão geral padrão com as 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 workspace, vá diretamente para o Estúdio do Azure Machine Learning e pesquise pelo nome do workspace.
    • Todos os ativos (Dados, Experimentos, Computação do ML e assim por diante) estão disponíveis apenas no Estúdio do Azure Machine Learning. O portal do Azure não* os oferece.
    • A tentativa de exportar um modelo para um workspace do portal do Azure pode retornar um erro semelhante ao seguinte 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 no seu workspace na interface do Azure Machine Learning ou pelo SDK do Python. Depois que o diagnóstico for executado, uma lista dos problemas detectados será retornada. Essa lista inclui links para as possíveis soluções. Para saber mais, confira Como usar o diagnóstico do espaço de trabalho.

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 endpoints 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.

Como excluir o Registro de Contêiner do Azure

O workspace do Azure Machine Learning usa o ACR (Registro de Contêiner do Azure) para algumas operações. Ele cria automaticamente uma instância do ACR quando precisar de uma pela primeira vez.

Aviso

Depois que um Registro de Contêiner do Azure for criado para um workspace, não o exclua. Fazer isso danificará seu Workspace do Azure Machine Learning.

Exemplos

Os exemplos neste artigo vêm de workspace.ipynb.

Próximas etapas

Quando você já tiver um workspace, saiba como Treinar e implantar um modelo.

Para saber mais sobre como planejar um workspace para os requisitos da sua organização, confira Organizar e configurar o Azure Machine Learning.

Para obter informações sobre como manter o Azure Machine Learning atualizado com as últimas atualizações de segurança, confira Gerenciamento de vulnerabilidades.