Criar e gerenciar uma instância de computação do Azure Machine Learning com a CLI v1

APLICA-SE A:Azure CLI ml extension v1Python SDK azureml v1

Saiba como criar e gerenciar uma instância de computação em seu espaço de trabalho 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 em seu espaço de trabalho.

As instâncias 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 conteinerizado e empacota suas dependências de modelo em um contêiner do Docker.

Neste artigo, vai aprender a:

  • Criar uma instância de computação
  • Gerenciar (iniciar, parar, reiniciar, excluir) uma instância de computação

Nota

Este artigo aborda apenas como fazer essas tarefas usando a CLI v1. Para obter maneiras mais recentes de gerenciar uma instância de computação, consulte Criar um cluster de computação do Azure Machine Learning.

Pré-requisitos

Criar

Importante

Os itens marcados (visualização) abaixo estão atualmente em visualização pública. A versão de visualização é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Estimativa de tempo: Aproximadamente 5 minutos.

Criar uma instância de computação é um processo único para seu espaço de trabalho. 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 VMs e a cota regional total, que se aplica à criação de instâncias de computação, são unificados e compartilhados com a cota de cluster de computação de treinamento do Azure Machine Learning. Parar a instância de computação não libera 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 de criada.

O exemplo a seguir demonstra como criar uma instância de computação:

APLICA-SE A: Python SDK 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, métodos e parâmetros usados neste exemplo, consulte os seguintes documentos de referência:

Gerir

Iniciar, parar, reiniciar e excluir uma instância de computação. Uma instância de computação não é reduzida verticalmente de forma automática, por isso, confirme que para o recurso para evitar custos contínuos. Parar uma instância de computação desaloca-a. Em seguida, inicie-o novamente quando precisar. Embora a operação de parar a instância de computação também pare a faturação das horas de computação, ainda lhe será faturado o disco, o IP público e o balanceador de carga padrão.

Gorjeta

A instância de computação tem um disco do 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. Por favor, não pare a instância de computação emitindo sudo shutdown 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: Python SDK 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()
    
  • Parar

    # 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)
    
  • Delete

    # 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 RBAC do Azure permite controlar quais usuários no espaço de trabalho podem criar, excluir, iniciar, parar, reiniciar uma instância de computação. Todos os usuários na função de colaborador e proprietário do espaço de trabalho podem criar, excluir, iniciar, parar e reiniciar instâncias de computação no espaço de trabalho. No entanto, apenas o criador de uma instância de computação específica, ou o usuário atribuído se ela foi criada 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 root. Esse usuário tem acesso ao Jupyter/JupyterLab/RStudio/Posit Workbench em execução na instância. A instância de computação terá entrada de usuário único e todas as ações usarão a identidade desse usuário para o RBAC do Azure e a atribuição de execuções de experimento. O acesso SSH é controlado através de um mecanismo de chave pública/privada.

Estas 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, precisará de permissões para as seguintes ações:

  • Microsoft.MachineLearningServices/workspaces/computes/write
  • Microsoft.MachineLearningServices/workspaces/checkComputeNameAvailability/action

Próximos passos