Criar e gerir 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 python azureml v1

Saiba como criar e gerir uma instância de computação na área de trabalho do Azure Machine Learning com a CLI v1.

Utilize uma instância de computação como o ambiente de desenvolvimento totalmente configurado e gerido na cloud. Para desenvolvimento e teste, também pode utilizar a instância como um destino de computação de preparação ou para um destino de inferência. Uma instância de computação pode executar várias tarefas em paralelo e tem uma fila de trabalhos. Como ambiente de desenvolvimento, uma instância de computação não pode ser partilhada com outros utilizadores na sua área de trabalho.

As instâncias de computação podem executar tarefas de forma segura num ambiente de rede virtual, sem exigir que as empresas abram portas SSH. A tarefa é executada num ambiente em contentores e empacota as dependências do modelo num contentor do Docker.

Neste artigo, vai aprender a:

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

Nota

Este artigo aborda apenas como realizar estas tarefas com a CLI v1. Para obter formas mais recentes de gerir uma instância de computação, veja Criar um cluster de cálculo do Azure Machine Learning.

Pré-requisitos

Criar

Importante

Os itens marcados (pré-visualização) abaixo estão atualmente em pré-visualização pública. A versão de pré-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 a área de trabalho. Pode reutilizar a computação como uma estação de trabalho de desenvolvimento ou como um destino de computação para preparação. Pode ter várias instâncias de computação anexadas à área de trabalho.

Os núcleos dedicados por região por quota de família de VM e quota regional total, que se aplica à criação de instâncias de computação, são unificados e partilhados com a quota do cluster de computação de preparação do Azure Machine Learning. Parar a instância de computação não liberta quota para garantir que conseguirá 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 ser criada.

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

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

Gerir

Iniciar, parar, reiniciar e eliminar 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.

Dica

A instância de computação tem um disco do SO de 120 GB. Se ficar sem espaço em disco, utilize o terminal para limpar, pelo menos, 1 a 2 GB antes de parar ou reiniciar a instância de computação. Não pare a instância de computação ao emitir o encerramento sudo 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 python azureml v1

Nos exemplos abaixo, o nome da instância de computação é instância.

  • Obter estado

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

    # 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-lhe controlar que utilizadores na área de trabalho podem criar, eliminar, iniciar, parar, reiniciar uma instância de computação. Todos os utilizadores na função de contribuidor e proprietário da área de trabalho podem criar, eliminar, iniciar, parar e reiniciar instâncias de computação em toda a área de trabalho. No entanto, apenas o criador de uma instância de computação específica, ou o utilizador atribuído se tiver sido criado em seu nome, tem permissão para aceder ao 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 utilizador que tem acesso de raiz. Esse utilizador tem acesso ao Jupyter/JupyterLab/RStudio/Posit Workbench em execução na instância. A instância de computação terá início de sessão de utilizador único e todas as ações utilizarão a identidade desse utilizador para o RBAC do Azure e a atribuição de execuções de experimentação. O acesso SSH é controlado através do mecanismo de chave pública/privada.

Estas ações podem ser controladas pelo RBAC do Azure:

  • 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

Passos seguintes