Share via


Gerenciar os workspaces do Azure Machine Learning com o SDK do Python (v1)

APLICA-SE ASDK do Python azureml v1

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

Conforme as suas necessidades mudarem ou os requisitos para automação aumentarem, você também poderá gerenciar os workspaces pela CLI ou pela extensão do VS Code.

Pré-requisitos

Limitações

  • Ao criar um novo espaço de trabalho, é possível criar automaticamente os serviços necessários para o espaço de trabalho 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, 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 deverá ser registrado na assinatura B antes que você possa usar a conta de armazenamento com o espaço de trabalho.

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

    Importante

    Isso se aplica somente aos recursos fornecidos durante a criação do espaço de trabalho; Contas de Armazenamento do Azure, Registro de Contêiner do Azure, Azure Key Vault e Application Insights.

  • Por padrão, a criação de um workspace também cria um ACR (Registro de Contêiner do Azure). Use grupos de recursos com nomes que não contenham caracteres Unicode, pois o ACR não oferece suporte a esses caracteres no momento.

  • O Azure Machine Learning não oferece suporte a namespace hierárquico (recurso do Azure Data Lake Storage Gen2) para a conta de armazenamento padrão do workspace.

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 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 saber mais sobre como usar essa instância do Application Insights, confira Monitorar e coletar dados de pontos de extremidade de serviço Web do Machine Learning.

Criar um workspace

Um workspace pode ser criado diretamente no Estúdio do Azure Machine Learning, com opções limitadas disponíveis. Ou use um dos métodos abaixo para obter mais controle das opções.

  • Especificação padrão. Por padrão, os recursos dependentes e o grupo de recursos serão criados automaticamente. Esse código cria um workspace chamado myworkspace e um grupo de recursos chamado myresourcegroup em eastus2.

    APLICA-SE ASDK do Python azureml v1

    from azureml.core import Workspace
    
    ws = Workspace.create(name='myworkspace',
                   subscription_id='<azure-subscription-id>',
                   resource_group='myresourcegroup',
                   create_resource_group=True,
                   location='eastus2'
                   )
    

    Defina create_resource_group como False se você tiver um grupo de recursos do Azure já existente que você deseja para o workspace.

  • Vários locatários. Se você tiver várias contas, adicione a ID de locatário do Azure Active Directory que deseja usar. Localize sua ID de locatário do portal do Azure em Azure Active Directory, Identidades Externas.

    APLICA-SE A:SDK do Python do Azure MLv1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(tenant_id="my-tenant-id")
    ws = Workspace.create(name='myworkspace',
                subscription_id='<azure-subscription-id>',
                resource_group='myresourcegroup',
                create_resource_group=True,
                location='eastus2',
                auth=interactive_auth
                )
    
  • Nuvem soberana . Será necessário um código extra para autenticação no Azure se você estiver trabalhando em uma nuvem soberana.

    APLICA-SE A:SDK do Python do Azure ML v1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(cloud="<cloud name>") # for example, cloud="AzureUSGovernment"
    ws = Workspace.create(name='myworkspace',
                subscription_id='<azure-subscription-id>',
                resource_group='myresourcegroup',
                create_resource_group=True,
                location='eastus2',
                auth=interactive_auth
                )
    
  • Use os recursos existentes do Azure. Também é possível criar um workspace que use recursos existentes do Azure com o formato de ID de recurso. Localize as IDs de recurso específicas no portal do Azure ou com o SDK. O exemplo a seguir pressupõe que o grupo de recursos, a conta de armazenamento, o cofre de chaves, o App Insights e o registro de contêiner já existem.

    APLICA-SE ASDK do Python azureml v1

    import os
    from azureml.core import Workspace
    from azureml.core.authentication import ServicePrincipalAuthentication
    
    service_principal_password = os.environ.get("AZUREML_PASSWORD")
    
    service_principal_auth = ServicePrincipalAuthentication(
        tenant_id="<tenant-id>",
        username="<application-id>",
        password=service_principal_password)
    
                          auth=service_principal_auth,
                               subscription_id='<azure-subscription-id>',
                               resource_group='myresourcegroup',
                               create_resource_group=False,
                               location='eastus2',
                               friendly_name='My workspace',
                               storage_account='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.storage/storageaccounts/mystorageaccount',
                               key_vault='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.keyvault/vaults/mykeyvault',
                               app_insights='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.insights/components/myappinsights',
                               container_registry='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.containerregistry/registries/mycontainerregistry',
                               exist_ok=False)
    

Para obter mais informações, consulte a referência de SDK do workspace.

Se você tiver problemas ao acessar sua assinatura, consulteConfigurar 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 como usar um ponto de extremidade privado e uma rede virtual com seu workspace, confira Isolamento de rede e privacidade.

O SDK do Python do Azure Machine Learning fornece a classe PrivateConfig, que pode ser usada com Workspace.create() para criar um espaço de trabalho com um ponto de extremidade privado. Essa classe requer uma rede virtual existente.

Avançado

Por padrão, os metadados do workspace são armazenados em uma instância do Azure Cosmos DB mantida pela Microsoft. Os dados são criptografados com chaves gerenciadas pela Microsoft.

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

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

Usar sua própria chave de criptografia de dados

Você pode fornecer sua própria chave para a criptografia de dados. Essa ação cria a instância do Azure Cosmos DB que armazena metadados na sua assinatura do Azure. Para obter mais informações, confira Chaves gerenciadas pelo cliente para o Azure Machine Learning.

Siga as seguinte etapas para fornecer sua própria chave:

Importante

Antes de seguir essas etapas, execute primeiro as seguintes 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

Utilize cmk_keyvault e resource_cmk_uri para especificar a chave gerenciada pelo cliente.

from azureml.core import Workspace
   ws = Workspace.create(name='myworkspace',
               subscription_id='<azure-subscription-id>',
               resource_group='myresourcegroup',
               create_resource_group=True,
               location='eastus2'
               cmk_keyvault='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.keyvault/vaults/<keyvault-name>', 
               resource_cmk_uri='<key-identifier>'
               )

Baixar um arquivo de configuração

Se você estiver usando uma instância de computação em seu workspace para executar seu código, ignore esta etapa. A instância de computação criará e armazenará uma cópia desse arquivo para você.

Se você planeja usar código em seu ambiente local referencia esse workspace (ws), grave o arquivo de configuração:

APLICA-SE ASDK do Python azureml v1

ws.write_config()

Coloque o arquivo na estrutura de diretórios com seus scripts de Python ou Jupyter Notebooks. Ele pode estar no mesmo diretório, um subdiretório denominado .azureml ou em um diretório pai. Quando você cria uma instância de computação, esse arquivo é adicionado ao diretório correto na VM para você.

Conectar-se a um workspace

No seu código Python, você cria um objeto de workspace para se conectar ao seu workspace. Esse código lerá o conteúdo do arquivo de configuração para localizar seu workspace. Você receberá uma solicitação para entrar se ainda não estiver autenticado.

APLICA-SE ASDK do Python azureml v1

from azureml.core import Workspace

ws = Workspace.from_config()
  • Vários locatários. Se você tiver várias contas, adicione a ID de locatário do Azure Active Directory que deseja usar. Localize sua ID de locatário do portal do Azure em Azure Active Directory, Identidades Externas.

    APLICA-SE A:SDK do Python do Azure MLv1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(tenant_id="my-tenant-id")
    ws = Workspace.from_config(auth=interactive_auth)
    
  • Nuvem soberana . Será necessário um código extra para autenticação no Azure se você estiver trabalhando em uma nuvem soberana.

    APLICA-SE A:SDK do Python do Azure ML v1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(cloud="<cloud name>") # for example, cloud="AzureUSGovernment"
    ws = Workspace.from_config(auth=interactive_auth)
    

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

Encontrar um workspace

Veja uma lista de todos os workspaces que você pode usar.

Localize sua assinatura na página Assinaturas no portal do Azure. Copie a ID e use-a no código abaixo para ver todos os workspaces disponíveis para essa assinatura.

APLICA-SE ASDK do Python azureml v1

from azureml.core import Workspace

Workspace.list('<subscription-id>')

O método Workspace.list(..) não retorna o objeto de workspace completo. Ele inclui apenas informações básicas sobre os workspaces existentes na assinatura. Para obter um objeto completo para um workspace específico, use Workspace.get(..).

Excluir um workspace

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

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.

Dica

O comportamento padrão do Azure Machine Learning é excluir temporariamente o workspace. Isso significa que o workspace não é excluído imediatamente, mas está programado para exclusão. Para mais informações, confira Exclusão temporária.

Excluir o workspacews:

APLICA-SE ASDK do Python azureml v1

ws.delete(delete_dependent_resources=False, no_wait=False)

Por padrão, os recursos associados ao workspace não são excluídos, ou seja, o registro de contêiner, a conta de armazenamento, o cofre de chaves e o Application Insights. Defina delete_dependent_resources como True para excluir esses recursos também.

Limpar os 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, selecione Grupos de recursos no canto esquerdo.

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

  3. Selecione Excluir grupo de recursos.

    Screenshot of the selections to delete a resource group in the Azure portal.

  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 o sistema operacional. Há suporte para os seguintes navegadores:

    • Microsoft Edge (o novo Microsoft Edge, a versão mais recente. Nã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. Nesse cenário, você também não pode alternar para outro workspace. 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 e assim por diante) estão disponíveis apenas no Estúdio do Azure Machine Learning. Eles não estão disponíveis no portal do Azure.
    • A tentativa de exportar um modelo para um espaço de trabalho 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 o modelo.

Diagnóstico do Workspace

Você pode executar o diagnóstico no seu workspace do estúdio do Azure Machine Learning ou do 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 de workspace.

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.

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 criará automaticamente uma instância do ACR quando precisar de uma pela primeira vez.

Aviso

Após a criação de um Registro de Contêiner do Azure para um workspace, não o exclua. Fazer isso interromperá o workspace do Azure Machine Learning.

Próximas etapas

Quando você já tiver um workspace, 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, consulte 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.