Gerenciar os workspaces do Azure Machine Learning com o SDK do Python (v1)
APLICA-SE A: SDK 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
- 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.
- Se estiver usando o SDK do Python, Instale o SDK.
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.
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 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, 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 chamadomyresourcegroup
emeastus2
.APLICA-SE A: SDK 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 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 . 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 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 )
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 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 estiver usando uma instância de computação no seu workspace para executar o 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 A: SDK 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 lê o conteúdo do arquivo de configuração para localizar seu workspace. Você receberá uma solicitação para se conectar se ainda não estiver autenticado.
APLICA-SE A: SDK 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 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 . 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 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 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 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 A: SDK 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 A: SDK 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:
No portal do Azure, na caixa de pesquisa, insira Grupos de recursos e selecione-o nos resultados.
Selecione o grupo de recursos que você criou por meio da lista.
Na página Visão geral, selecione Excluir grupo de recursos.
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
Depois que um Registro de Contêiner do Azure for criado 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.
Caso precise mover um workspace para outra assinatura do Azure, confira Como mover um workspace.
Para encontrar um workspace, consulte Pesquisar ativos do Azure Machine Learning (versão prévia).
Para obter informações sobre como manter o Azure Machine Learning atualizado com as últimas atualizações de segurança, confira Gerenciamento de vulnerabilidades.