Criar um cluster 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)
Este artigo explica como criar e gerenciar um cluster de computação no seu workspace do Azure Machine Learning.
É possível usar um cluster de cálculo do Azure Machine Learning para distribuir o um processo de treinamento ou lote de inferência em um cluster de nós de computação de CPU ou GPU na nuvem. Para obter mais informações sobre os tamanhos de máquina virtual que incluem GPUs, consulte os Tamanhos de máquinas virtuais com GPU otimizadas.
Saiba como:
- Criar um cluster de cálculo.
- Reduza o custo do cluster do seu computação com VMs de baixa prioridade.
- Configure uma identidade gerenciada para o cluster.
Observação
Em vez de criar um cluster de cálculo, use a computação sem servidor para descarregar o gerenciamento do ciclo de vida da computação para o Azure Machine Learning.
Pré-requisitos
- Um Workspace do Azure Machine Learning. Para obter mais informações, confira Gerenciar workspaces do Azure Machine Learning.
Selecione a guia apropriada para o restante dos pré-requisitos com base em seu método preferido de criação do cluster 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:
- Entre no Estúdio do Azure Machine Learning.
- Abra o espaço de trabalho que você deseja usar.
- Selecione o nome do workspace na barra de ferramentas superior direita do Estúdio do Azure Machine Learning.
- Copie o valor do espaço de trabalho, do grupo de recursos e da ID da assinatura no código.
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.
O que é um cluster de cálculo?
Um cluster de cálculo do Machine Learning do Azure é uma infraestrutura de computação gerenciada que permite ao que você crie facilmente uma computação de um ou vários nós. O cluster de cálculo é um recurso que pode ser compartilhado com outros usuários de seu workspace. A computação escala verticalmente e automaticamente quando um trabalho é enviado e pode ser colocada em uma Rede Virtual do Azure. O cluster de computação também não é compatível com a implantação de IP público na rede virtual. A computação é executada em um ambiente em contêineres, empacotando as dependências do modelo em um contêiner do Docker.
Os clusters de cálculo podem executar trabalhos com segurança em uma rede virtual gerenciada ou em uma rede virtual do Azure, 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.
Limitações
É possível criar clusters de cálculo em uma região diferente da região de seu workspace. Essa funcionalidade está disponível apenas para clusters de computação, não para instâncias de computação.
Aviso
Ao usar um cluster de computação em uma região diferente da do seu espaço de trabalho ou datastores, você poderá observar um aumento na latência da rede e nos custos de transferência de dados. A latência e os custos podem ocorrer ao criar o cluster e ao executar trabalhos nele.
A Computação do Machine Learning do Azure tem limites padrão como o número de núcleos que podem ser alocados. Para obter mais informações, consulte Gerenciar e solicitar cotas para recursos do Azure.
O Azure permite que você coloque bloqueios nos recursos, para que eles não possam ser excluídos ou sejam somente leitura. Não aplique bloqueios de recurso ao grupo de recursos que contém seu workspace. A aplicação de um bloqueio ao grupo de recursos que contém seu espaço de trabalho impede operações de dimensionamento para clusters de cálculo do Azure Machine Learning. Para saber mais sobre como bloquear recursos, confira Bloquear recursos para impedir alterações inesperadas.
Criar
Estimativa de tempo: aproximadamente cinco minutos.
Observação
Se você usar a computação sem servidor, não precisará criar um cluster de computação.
Uma Computação do Azure Machine Learning pode ser reutilizada entre execuções. A computação pode ser compartilhada com outros usuários no workspace e é mantida entre execuções, dimensionando automaticamente os nós para cima ou para baixo com base no número de execuções enviadas e no max_nodes
definido no seu cluster. A configuração de min_nodes
controla os nós mínimos disponíveis.
Os núcleos dedicados por região por cota de família de VM e cota regional total, que se aplicam à criação de cluster de cálculo, são unificados e compartilhados com a cota de instância de cálculo de treinamento do Azure Machine Learning.
Importante
Para evitar cobranças quando nenhum trabalho estiver em execução, defina os nós mínimos para 0. Essa configuração permite que o Azure Machine Learning desaloque os nós quando eles não estiverem em uso. Qualquer valor maior que 0 manterá esse número de nós em execução, mesmo se eles não estiverem em uso.
A computação é reduzida automaticamente até zero nó quando não é usada. VMs dedicadas são criadas para executar seus trabalhos conforme necessário.
Use os exemplos a seguir para criar um cluster de computação:
Para criar um recurso de persistente de Computação do Azure Machine Learning no Python, especifique as propriedades size
e max_instances
. O Azure Machine Learning usará padrões inteligentes para o restante das propriedades.
- tamanho: a família de VMs dos nós criados pela Computação do Azure Machine Learning.
- max_instances: o número máximo de nós para dimensionar automaticamente até quando você executa um trabalho na Computação do Azure Machine Learning.
APLICA-SE A: SDK do Python azure-ai-ml v2 (atual)
from azure.ai.ml.entities import AmlCompute
cluster_basic = AmlCompute(
name="basic-example",
type="amlcompute",
size="STANDARD_DS3_v2",
location="westus",
min_instances=0,
max_instances=2,
idle_time_before_scale_down=120,
)
ml_client.begin_create_or_update(cluster_basic).result()
Também é possível configurar várias propriedades avançadas ao criar a Computação do Azure Machine Learning. Essas propriedades permitem que criar um cluster persistente de tamanho fixo ou dentro de uma Rede Virtual do Azure existente na assinatura. Veja AmlCompute classe para obter detalhes.
Aviso
Ao definir o parâmetro location
, se for uma região diferente da do workspace ou dos armazenamentos de dados, você poderá ver um aumento da latência de rede e dos custos de transferência de dados. A latência e os custos podem ocorrer ao criar o cluster e ao executar trabalhos nele.
Reduzir o custo do cluster de cálculo com VMs de baixa prioridade
Você também pode optar por usar VMs de baixa prioridade para executar algumas ou todas as suas cargas de trabalho. Essas VMs não têm disponibilidade garantida e podem ser substituídas enquanto estiverem em uso. Você precisa reiniciar um trabalho substituído.
O uso de Máquinas Virtuais de baixa prioridade do Azure permite aproveitar a capacidade não usada do Azure com uma economia de custos significativa. A qualquer momento, quando o Azure precisar da capacidade de volta, a infraestrutura do Azure remove as Máquinas Virtuais de Baixa Prioridade do Azure. Portanto, a Máquinas Virtual de Baixa Prioridade do Azure é excelente para cargas de trabalho que podem lidar com interrupções. A quantidade de capacidade disponível pode variar com base no tamanho, região, hora do dia e etc. Ao implantar Máquinas Virtuais de Baixa Prioridade do Azure, o Azure aloca as VMs se houver capacidade disponível, mas não há SLA para essas VMs. Uma Máquina Virtual de baixa prioridade do Azure não oferece garantias de alta disponibilidade. A qualquer momento, quando o Azure precisar da capacidade de volta, a infraestrutura do Azure remove as Máquinas Virtuais de Baixa Prioridade do Azure.
Use uma dessas formas para especificar uma VM de baixa prioridade:
APLICA-SE A: SDK do Python azure-ai-ml v2 (atual)
from azure.ai.ml.entities import AmlCompute
cluster_low_pri = AmlCompute(
name="low-pri-example",
size="STANDARD_DS3_v2",
min_instances=0,
max_instances=2,
idle_time_before_scale_down=120,
tier="low_priority",
)
ml_client.begin_create_or_update(cluster_low_pri).result()
Excluir
Embora o cluster de computação seja reduzido a zero nós quando não estiver em uso, nós não comprovados contribuem para o uso da cota. Excluir o cluster de computação remove o destino de computação do workspace e libera a cota.
APLICA-SE A: SDK do Python azure-ai-ml v2 (atual)
Isso exclui o cluster de computação básico, criado do objeto create_basic
anteriormente neste artigo.
from azure.ai.ml.entities import AmlCompute
ml_client.compute.begin_delete(cluster_basic.name).wait()
Definir identidade gerenciada
Para obter informações sobre como configurar uma identidade gerenciada com seu cluster de computação, consulte Configurar a autenticação entre o Azure Machine Learning e outros serviços.
Solução de problemas
Há uma chance de que alguns usuários que criaram seu workspace do Azure Machine Learning no portal do Azure antes da versão GA não consigam criar a AmlCompute nesse workspace. Você pode gerar uma solicitação de suporte no serviço ou criar um novo workspace por meio do portal ou do SDK para desbloqueio imediato.
Importante
Se a instância de computação ou os clusters de computação forem baseados em qualquer uma dessas séries, recrie com outro tamanho de VM.
Estas séries de dados foram desativadas em 31 de agosto de 2023:
Estas séries de dados foram desativadas em 31 de agosto de 2024:
Preso no redimensionamento
Se o cluster de computação do Azure Machine Learning aparecer preso no redimensionamento (0 –> 0) no estado do nó, os bloqueios de recursos do Azure poderão ser a causa.
O Azure permite que você coloque bloqueios em recursos, para que eles não possam ser excluídos ou sejam somente leitura. O bloqueio de um recurso pode levar a resultados inesperados. Algumas operações que parecem não modificar o recurso, na verdade, requerem ações que são bloqueadas pelo bloqueio.
Com o Azure Machine Learning, aplicar um bloqueio de exclusão ao grupo de recursos do seu espaço de trabalho impedirá operações de dimensionamento para clusters de computação do Azure ML. Para contornar esse problema, é recomendável remover o bloqueio do grupo de recursos e, em vez disso, aplicá-lo a itens individuais no grupo.
Importante
Não aplique o bloqueio aos seguintes recursos:
Nome do recurso | Tipo de recurso |
---|---|
<GUID>-azurebatch-cloudservicenetworksecurityggroup |
Grupo de segurança de rede |
<GUID>-azurebatch-cloudservicepublicip |
Endereço IP público |
<GUID>-azurebatch-cloudserviceloadbalancer |
Balanceador de carga |
Esses recursos são usados para se comunicar com o e executar operações como o dimensionamento no cluster de computação. A remoção do bloqueio de recursos desses recursos deve permitir o dimensionamento automático para seus clusters de computação.
Para obter mais informações sobre como bloquear recursos, consulte Bloquear recursos para evitar alterações inesperadas.
Próxima etapa
Use o cluster de cálculo para: