Gerenciar uma instância de computação do Azure Machine Learning

APLICA-SE A:Extensão de ML da CLI do Azure v2 (atual)SDK do Python azure-ai-ml v2 (atual)

Saiba como gerenciar uma instância de computação no seu espaço de trabalho do Azure Machine Learning.

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. 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.

Neste artigo, você aprenderá a iniciar, parar, reiniciar e excluir uma instância de computação. Para saber como criar uma instância de computação, consulte Criar uma instância de computação do Azure Machine Learning .

Observação

Este artigo mostra a CLI v2 nas seções abaixo. Se você ainda estiver usando a CLI v1, confira Criar uma CLI v1 de cluster de computação do Azure Machine Learning.

Pré-requisitos

Selecione a guia apropriada para o restante dos pré-requisitos com base no método preferido de gerenciar sua instância de computação.

  • Se você não estiver executando seu código em uma instância de computação, instale o do SDK do Python do Azure Machine Learning. Esse SDK já está instalado para você em uma instância de computação.

  • Anexe ao workspace em seu script Python:

    Execute este código para se conectar ao seu workspace do Azure Machine Learning.

    Substitua a ID da Assinatura, o nome do Grupo de Recursos e o nome do workspace no código a seguir. Para encontrar esses valores:

    1. Entre no Estúdio do Azure Machine Learning.
    2. Abra o espaço de trabalho que você deseja usar.
    3. Selecione o nome do workspace na barra de ferramentas superior direita do Estúdio do Azure Machine Learning.
    4. Copie o valor do espaço de trabalho, do grupo de recursos e da ID da assinatura no código.
    5. Copie um valor, feche a área e cole e volte para o próximo quando estiver colando em um notebook dentro do estúdio.

    APLICA-SE A: SDK do Python azure-ai-ml v2 (atual)

    # Enter details of your AML workspace
    subscription_id = "<SUBSCRIPTION_ID>"
    resource_group = "<RESOURCE_GROUP>"
    workspace = "<AML_WORKSPACE_NAME>"
    # get a handle to the workspace
    from azure.ai.ml import MLClient
    from azure.identity import DefaultAzureCredential
    
    ml_client = MLClient(
        DefaultAzureCredential(), subscription_id, resource_group, workspace
    )

    ml_client é um manipulador para o workspace que você usará para gerenciar outros recursos e trabalhos.

Gerenciar

Iniciar, parar, reiniciar, excluir uma instância de computação. Nem sempre uma instância de computação é reduzida verticalmente de maneira automática. Portanto, certifique-se de parar o recurso para evitar cobranças contínuas. 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.

Você pode habilitar o desligamento automático para parar a instância de computação automaticamente após um tempo especificado.

Você também pode criar um agendamento para a instância de computação iniciar e parar automaticamente com base em um horário e dia da semana.

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 azure-ai-ml v2 (atual)

Nesses exemplos, o nome da instância de computação é armazenado na variável .ci_basic_name.

  • Obter status

    from azure.ai.ml.entities import ComputeInstance, AmlCompute
    
    # Get compute
    ci_basic_state = ml_client.compute.get(ci_basic_name)
  • Stop

    from azure.ai.ml.entities import ComputeInstance, AmlCompute
    
    # Stop compute
    ml_client.compute.begin_stop(ci_basic_name).wait()
  • Iniciar

    from azure.ai.ml.entities import ComputeInstance, AmlCompute
    
    # Start compute
    ml_client.compute.begin_start(ci_basic_name).wait()
  • Reiniciar

    from azure.ai.ml.entities import ComputeInstance, AmlCompute
    
    # Restart compute
    ml_client.compute.begin_restart(ci_basic_name).wait()
  • Excluir

    from azure.ai.ml.entities import ComputeInstance, AmlCompute
    
    ml_client.compute.begin_delete(ci_basic_name).wait()

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 e RStudio 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 em execução na instância. A instância de computação tem login de usuário único e todas as ações usam a identidade desse usuário para o RBAC do Azure e a atribuição de trabalhos 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ê precisa de permissões para as seguintes ações:

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

Auditoria e observação da versão da instância de computação

Depois que uma instância de computação é implantada, ela não é atualizada automaticamente. A Microsoft lança novas imagens de VM mensalmente. Para conhecer as opções de manutenção recentes com a versão mais recente, confira Gerenciamento de vulnerabilidades.

Para acompanhar se a versão do sistema operacional de uma instância é atual, você pode consultar a versão usando CLI, SDK ou interface do usuário do Studio.

APLICA-SE A: SDK do Python azure-ai-ml v2 (atual)

from azure.ai.ml.entities import ComputeInstance, AmlCompute

# Display operating system version
instance = ml_client.compute.get("myci")
print instance.os_image_metadata

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:

Os administradores de TI podem usar Azure Policy para monitorar o inventário de instâncias entre workspaces no portal de conformidade do Azure Policy. Atribua a política interna Auditar Instâncias de Computação do Azure Machine Learning com um sistema operacional desatualizado em uma assinatura do Azure ou no escopo do grupo de gerenciamento do Azure.

Próximas etapas