Partilhar via


Gerenciar espaços de trabalho do Azure Machine Learning com o SDK do Python (v1)

APLICA-SE A:Python SDK azureml v1

Neste artigo, você cria, exibe e exclui espaços de trabalho do Azure Machine Learning para o Azure Machine Learning, usando o SDK para Python.

À medida que suas necessidades mudam ou os requisitos de automação aumentam, você também pode gerenciar espaços de trabalho usando a CLI 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.

  • Por padrão, a criação de um espaço de trabalho também cria um Registro de Contêiner do Azure (ACR). Como o ACR atualmente não oferece suporte a caracteres unicode em nomes de grupos de recursos, use um grupo de recursos que não contenha 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, 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.

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. 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 espaço de trabalho chamado myworkspace e um grupo de recursos nomeado myresourcegroup em eastus2.

    APLICA-SE A:Python SDK 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 Falso se você tiver um grupo de recursos do Azure existente que deseja usar para o espaço de trabalho.

  • Vários inquilinos. Se tiver várias contas, adicione o ID de inquilino do ID do Microsoft Entra que pretende utilizar. Encontre sua ID de locatário no portal do Azure em Microsoft Entra ID, Identidades Externas.

    APLICA-SE A:Python SDK azureml v1

    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. Você precisará de código extra para se autenticar no Azure se estiver trabalhando em uma nuvem soberana.

    APLICA-SE A:Python SDK azureml 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. Você também pode criar um espaço de trabalho que usa recursos existentes do Azure com 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 App Insights e o registro de contêiner já existam.

    APLICA-SE A:Python SDK 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 Referência do SDK do espaço de trabalho.

Se tiver problemas em aceder à sua subscrição, consulte Configurar a autenticação para recursos e fluxos de trabalho do Azure Machine Learning, bem como o bloco de notas 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 espaço de trabalho, consulte Isolamento e privacidade de rede.

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

Avançado

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.

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

Use sua própria chave de criptografia de dados

Você pode fornecer sua própria chave para criptografia de dados. Isso 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 para o Azure Machine Learning.

Use as seguintes etapas para fornecer sua própria chave:

Importante

Antes de seguir essas etapas, você deve primeiro executar as seguintes 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

Use cmk_keyvault e resource_cmk_uri especifique 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 espaço de trabalho 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 que faz referência a esse espaço de trabalho (ws), escreva o arquivo de configuração:

APLICA-SE A:Python SDK azureml v1

ws.write_config()

Coloque o arquivo na estrutura de diretórios com seus scripts Python ou Jupyter Notebooks. Ele pode estar no mesmo diretório, em um subdiretório chamado .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 espaço de trabalho

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

APLICA-SE A:Python SDK azureml v1

from azureml.core import Workspace

ws = Workspace.from_config()
  • Vários inquilinos. Se tiver várias contas, adicione o ID de inquilino do ID do Microsoft Entra que pretende utilizar. Encontre sua ID de locatário no portal do Azure em Microsoft Entra ID, Identidades Externas.

    APLICA-SE A:Python SDK azureml v1

    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. Você precisará de código extra para se autenticar no Azure se estiver trabalhando em uma nuvem soberana.

    APLICA-SE A:Python SDK azureml 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 tiver problemas em aceder à sua subscrição, consulte Configurar a autenticação para recursos e fluxos de trabalho do Azure Machine Learning, bem como o bloco de notas Autenticação no Azure Machine Learning.

Localizar uma área de trabalho

Veja uma lista de todos os espaços de trabalho que você pode usar.

Encontre as suas subscrições na página Subscrições no portal do Azure. Copie o ID e use-o no código abaixo para ver todos os espaços de trabalho disponíveis para essa assinatura.

APLICA-SE A:Python SDK azureml v1

from azureml.core import Workspace

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

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

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.

Excluir o espaço de trabalho ws:

APLICA-SE A:Python SDK azureml v1

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

A ação padrão não é excluir recursos associados ao espaço de trabalho, ou seja, registro de contêiner, conta de armazenamento, cofre de chaves e insights de aplicativos. Defina delete_dependent_resources como True para excluir esses recursos também.

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 nenhum custo:

  1. No portal do Azure, selecione Grupos de recursos na extremidade esquerda.

  2. Na lista, selecione o grupo de recursos que você criou.

  3. Selecione Eliminar 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 Eliminar.

Resolução de problemas

  • Navegadores com suporte no estúdio do Azure Machine Learning: recomendamos que você use o navegador mais atualizado compatível com seu sistema operacional. Os seguintes navegadores são suportados:

    • Microsoft Edge (O novo Microsoft Edge, versão mais recente. Não é herança do Microsoft Edge)
    • 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. Nesse cenário, você também 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) estão disponíveis apenas no estúdio de Aprendizado de Máquina do Azure. Eles não estão disponíveis no portal do Azure.
    • Tentar 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 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 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.

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

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, consulte Organizar e configurar o Azure Machine Learning.

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.