Criar e gerenciar uma instância de computação do Azure Machine Learning com a CLI v1
APLICA-SE A:Extensão de ML da CLI do Azure v1SDK do Python do Azure ML v1
Saiba como criar e gerenciar umainstância de computação em seu workspace do Azure Machine Learning com a CLI v1.
Use uma instância de computação como seu ambiente de desenvolvimento totalmente configurado e gerenciado na nuvem. Para desenvolvimento e teste, você também pode usar a instância como um destino de computação de treinamento ou para um destino de inferência. Uma instância de computação pode executar vários trabalhos em paralelo e tem uma fila de trabalhos. Como um ambiente de desenvolvimento, uma instância de computação não pode ser compartilhada com outros usuários no workspace.
As instância de computação podem executar trabalhos com segurança em um ambiente de rede virtual, sem exigir que as empresas abram portas SSH. O trabalho é executado em um ambiente de contêineres e empacota as dependências do modelo em um contêiner do Docker.
Neste artigo, você aprenderá como:
- Criar uma instância de computação
- Gerenciar (Iniciar, parar, reiniciar, excluir) uma instância de computação
Observação
Este artigo aborda apenas como realizar essas tarefas usando a CLI v1. Para conhecer maneiras mais recentes de gerenciar uma instância de computação, confira Criar um cluster de computação do Azure Machine Learning.
Pré-requisitos
Um Workspace do Azure Machine Learning. Para obter mais informações, consulte Criar um workspace do Azure Machine Learning.
A extensão da CLI do Azure para o serviço do Machine Learning (v1) ou o SDK do Python do Azure Machine Learning (v1).
Importante
Alguns comandos da CLI do Azure neste artigo usam a extensão
azure-cli-ml
ou v1 do Azure Machine Learning. O suporte à extensão v1 terminará em 30 de setembro de 2025. Você poderá instalar e usar a extensão v1 até essa data.Recomendamos que você faça a transição para a extensão
ml
ou v2, antes de 30 de setembro de 2025. Para obter mais informações sobre a extensão v2, confira Extensão da CLI do Azure ML e SDK do Python v2.
Criar
Importante
Os itens marcados (versão prévia) abaixo estão em versão prévia pública no momento. A versão prévia é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Termos de Uso Complementares de Versões Prévias do Microsoft Azure.
Tempo estimado: Aproximadamente 5 minutos.
A criação de uma instância de computação é um processo único em seu workspace. Você pode reutilizar a computação como uma estação de trabalho de desenvolvimento ou como um destino de computação para treinamento. Você pode ter várias instâncias de computação anexadas ao seu espaço de trabalho.
Os núcleos dedicados por região por cota de família de VM e cota regional total, que se aplicam à criação de instância de computação, são unificados e compartilhados com a cota de cluster de cálculo de treinamento do Azure Machine Learning. Interromper a instância de computação não liberará a cota para garantir que você possa reiniciar a instância de computação. Não é possível alterar o tamanho da máquina virtual da instância de computação depois que ela é criada.
O exemplo a seguir demonstra como criar uma instância de computação:
APLICA-SE A: SDK do Python azureml v1
import datetime
import time
from azureml.core.compute import ComputeTarget, ComputeInstance
from azureml.core.compute_target import ComputeTargetException
# Choose a name for your instance
# Compute instance name should be unique across the azure region
compute_name = "ci{}".format(ws._workspace_id)[:10]
# Verify that instance does not exist already
try:
instance = ComputeInstance(workspace=ws, name=compute_name)
print('Found existing instance, use it.')
except ComputeTargetException:
compute_config = ComputeInstance.provisioning_configuration(
vm_size='STANDARD_D3_V2',
ssh_public_access=False,
# vnet_resourcegroup_name='<my-resource-group>',
# vnet_name='<my-vnet-name>',
# subnet_name='default',
# admin_user_ssh_public_key='<my-sshkey>'
)
instance = ComputeInstance.create(ws, compute_name, compute_config)
instance.wait_for_completion(show_output=True)
Para obter mais informações sobre as classes, os métodos e os parâmetros usados neste exemplo, confira os seguintes documentos de referência:
Gerenciar
Iniciar, parar, reiniciar, excluir uma instância de computação. Uma instância de computação não reduz automaticamente, portanto, interrompa o recurso para evitar encargos contínuos. Parar uma instância de computação a desaloca. Em seguida, inicie-o novamente quando precisar. Embora interromper a instância de computação pare a cobrança por horas de computação, você ainda será cobrado por disco, IP público e Standard Load Balancer.
Dica
A instância de computação tem um disco de SO de 120 GB. Se você ficar sem espaço em disco, use o terminal para limpar pelo menos 1-2 GB antes de parar ou reiniciar a instância de computação. Não pare a instância de computação emitindo um desligamento sudo a partir do terminal. O tamanho do disco temporário na instância de computação depende do tamanho da VM escolhido e é montado em /mnt.
APLICA-SE A: SDK do Python azureml v1
Nos exemplos abaixo, o nome da instância de computação é instância.
Obter status
# get_status() gets the latest status of the ComputeInstance target instance.get_status()
Stop
# stop() is used to stop the ComputeInstance # Stopping ComputeInstance will stop the billing meter and persist the state on the disk. # Available Quota will not be changed with this operation. instance.stop(wait_for_completion=True, show_output=True)
Iniciar
# start() is used to start the ComputeInstance if it is in stopped state instance.start(wait_for_completion=True, show_output=True)
Reiniciar
# restart() is used to restart the ComputeInstance instance.restart(wait_for_completion=True, show_output=True)
Excluir
# delete() is used to delete the ComputeInstance target. Useful if you want to re-use the compute name instance.delete(wait_for_completion=True, show_output=True)
O Azure RBAC permite controlar quais usuários no workspace podem criar, excluir, iniciar, parar, reiniciar uma instância de computação. Todos os usuários na função colaborador e proprietário do workspace podem criar, excluir, iniciar, parar e reiniciar instâncias de computação no workspace. No entanto, somente o criador de uma instância de computação específica ou o usuário atribuído se ele foi criado em seu nome, tem permissão para acessar Jupyter, JupyterLab, RStudio e Posit Workbench (anteriormente RStudio Workbench) nessa instância de computação. Uma instância de computação é dedicada a um único usuário que tem acesso raiz. Esse usuário tem acesso ao Jupyter/JupyterLab/RStudio/Posit Workbench em execução na instância. A instância de computação terá login único e todas as ações usarão a identidade desse usuário para o Azure RBAC e a atribuição de execuções de experimento. O acesso SSH é controlado por meio do mecanismo de chave pública/privada.
Essas ações podem ser controladas pelo Azure RBAC:
- Microsoft.MachineLearningServices/workspaces/computes/read
- Microsoft.MachineLearningServices/workspaces/computes/write
- Microsoft.MachineLearningServices/workspaces/computes/delete
- Microsoft.MachineLearningServices/workspaces/computes/start/action
- Microsoft.MachineLearningServices/workspaces/computes/stop/action
- Microsoft.MachineLearningServices/workspaces/computes/restart/action
- Microsoft.MachineLearningServices/workspaces/computes/updateSchedules/action
Para criar uma instância de computação, você precisará de permissões para as seguintes ações:
- Microsoft.MachineLearningServices/workspaces/computes/write
- Microsoft.MachineLearningServices/workspaces/checkComputeNameAvailability/action