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

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

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 sua instância de computação ou clusters de computação forem baseados em alguma dessas séries, recrie com outro tamanho de VM antes da data de desativação para evitar a interrupção do serviço.

Essas séries serão desativadas em 31 de agosto de 2023:

Essas séries serão 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: