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

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 azureml do Python 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 azureml do Python 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

Próximas etapas