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

APLICA-SE A:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)

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

Neste artigo, você aprenderá a iniciar, parar, reiniciar, 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.

Nota

Este artigo mostra a CLI v2 nas seções abaixo. Se você ainda estiver usando a CLI v1, consulte 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 seu 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 SDK Python do Azure Machine Learning. Este SDK já está instalado para você em uma instância de computação.

  • Anexe ao espaço de trabalho em seu script Python:

    Execute este código para se conectar ao seu espaço de trabalho do Azure Machine Learning.

    Substitua sua ID de assinatura, nome do grupo de recursos e nome do espaço de trabalho no código a seguir. Para encontrar estes valores:

    1. Entre no estúdio do Azure Machine Learning.
    2. Abra o espaço de trabalho que deseja usar.
    3. Selecione o nome do seu espaço de trabalho na barra de ferramentas do estúdio do Azure Machine Learning no canto superior direito.
    4. Copie o valor para espaço de trabalho, grupo de recursos e ID de assinatura para o código.

    APLICA-SE A: Python SDK 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 espaço de trabalho que você usa para gerenciar outros recursos e trabalhos.

Gerir

Iniciar, parar, reiniciar e excluir uma instância de computação. Uma instância de computação nem sempre diminui automaticamente, portanto, certifique-se de interromper o recurso para evitar cobranças contínuas. 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.

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

Você também pode criar uma programação para que a instância de computação inicie e pare automaticamente com base em um horário e dia da semana.

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 5 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 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)
  • Parar

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

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

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 e RStudio 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 em execução na instância. A instância de computação tem entrada 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 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, precisa de permissões para as seguintes ações:

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

Auditar e observar a 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 VMs numa base mensal. Para compreender as opções para se manter atualizado com a versão mais recente, consulte Gestão de vulnerabilidades.

Para controlar se a versão do sistema operacional de uma instância é atual, você pode consultar sua versão usando a CLI, SDK ou Studio UI.

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

Os administradores de TI podem utilizar o Azure Policy para monitorizar o inventário de instâncias em áreas de trabalho no portal de conformidade do Azure Policy. Atribua a política incorporada Auditar as Instâncias de Computação do Azure Machine Learning com um sistema operativo desatualizado numa subscrição do Azure ou num âmbito do grupo de gestão do Azure.

Próximos passos