Compartilhar via


Recomendações de computação para cargas de trabalho de IA na infraestrutura do Azure (IaaS)

Este artigo contém recomendações de computação para organizações que executam cargas de trabalho de IA na infraestrutura do Azure (IaaS). A abordagem preferencial é iniciar a adoção da IA com soluções de PaaS (plataforma como serviço) de IA do Azure. No entanto, se você tiver acesso a GPUs do Azure, siga estas orientações para executar cargas de trabalho de IA na IaaS do Azure.

As cargas de trabalho de IA exigem máquinas virtuais (VMs) especializadas para gerenciar altas demandas computacionais e processamento de dados em larga escala. Escolher as VMs certas otimiza o uso de recursos e acelera o desenvolvimento e a implantação de modelos de IA. A tabela a seguir mostra uma visão geral das opções de computação recomendadas.

Fase da IA Imagem de máquina virtual O que é IA generativa IA não generativa (modelos complexos) IA não generativa (modelos pequenos)
Modelos de IA para treinamento Máquinas Virtuais de Ciência de Dados GPU (recomenda-se a família ND. Como alternativa, use a família NC com VMs interconectadas por ethernet) GPU (recomenda-se a família ND. Como alternativa, use a família NC com VMs interconectadas por ethernet) Com otimização de memória (CPU)
Modelos de IA para inferência Máquinas Virtuais de Ciência de Dados GPU (família NC ou ND) GPU (família NC ou ND) Com otimização de computação (CPU)

Escolher a imagem certa da máquina virtual

Escolha uma imagem de máquina virtual adequada, como as Máquinas Virtuais de Ciência de Dados, para acessar rapidamente ferramentas pré-configuradas para cargas de trabalho de IA. Essa escolha economiza tempo e recursos, ao mesmo tempo em que proporciona o software necessário para um processamento eficiente de IA

  • Comece com imagens de Máquinas Virtuais de Ciência de Dados. A imagem da Máquina Virtual de Ciência de Dados oferece acesso pré-configurado a ferramentas de ciência de dados. Essas ferramentas incluem PyTorch, TensorFlow, scikit-learn, Jupyter, Visual Studio Code, CLI do Azure e PySpark. Quando usada com GPUs, a imagem também inclui drivers Nvidia, CUDA Toolkit e cuDNN. Essas imagens servem como sua imagem de linha de base. Se você precisar de mais software, adicione-o por meio de um script no momento da inicialização ou insira em uma imagem personalizada. Mantêm a compatibilidade com suas soluções de orquestração.

  • Encontre imagens alternativas quando necessário. Se a imagem da Máquina Virtual de Ciência de Dados não atender às suas necessidades, use o Azure Marketplace ou outros métodos de pesquisa para encontrar imagens alternativas. Por exemplo, com as GPUs, você pode precisar de imagens do Linux que incluam drivers InfiniBand, drivers NVIDIA, bibliotecas de comunicação, bibliotecas MPI e ferramentas de monitoramento.

Escolher um tamanho de máquina virtual

A seleção de um tamanho de máquina virtual apropriado depende da complexidade do modelo de IA, do tamanho dos dados e das restrições de custo. Associar o hardware às necessidades de treinamento ou de inferência maximiza a eficiência e evita a subutilização ou sobrecarga.

  • Restrinja suas opções de máquina virtual. Escolha os SKUs de máquina virtual mais recentes para obter os tempos ideais de treinamento e inferência. Para treinamento, selecione SKUs que aceitem interconexões RDMA e GPU para transferência de dados de alta velocidade entre GPUs. Para inferência, evite SKUs com InfiniBand, que é desnecessário. Os exemplos incluem ND MI300X série v5, ND H100 série v5, NDm A100 série v4 e ND A100 série v4.

  • Verifique o preço da máquina virtual. Use as páginas de preços da VM do Linux e do Windows para ter uma visão geral dos custos. Para ver uma estimativa detalhada, use a Calculadora de Preços do Azure.

  • Considere instâncias spot.Instâncias spot são econômicas para cenários de inferência com risco mínimo de perda de dados. As instâncias spot geram grande economia, pois utilizam a capacidade não utilizada do datacenter com desconto. No entanto, essa capacidade pode ser solicitada a qualquer momento. Por isso, as instâncias spot são melhores para cargas de trabalho que podem lidar com interrupções. Verifique regularmente os dados do ponto de verificação para minimizar a perda em caso de remoção. Para obter informações, consulte Usando VMs Spot no Azure CycleCloud.

Escolher uma solução de orquestração de computação

As soluções de orquestração de computação facilitam o gerenciamento de tarefas de IA em clusters de máquinas virtuais. Mesmo para implantações simples, um orquestrador pode ajudar a reduzir custos e garantir que um ambiente seja reproduzível. Os orquestradores ajudam a garantir que você use apenas os recursos de computação necessários por um período específico de tempo. Selecione uma ferramenta de orquestração com base em suas necessidades de agendamento, conteinerização e escalabilidade para melhorar as operações e a escalabilidade.

  • Use o Azure CycleCloud para agendadores de código aberto. O Azure CycleCloud é ideal para agendadores de código aberto, como Slurm, Grid Engine ou Torque/PBS. Ele tem gerenciamento de cluster flexível, configurações personalizáveis e recursos avançados de agendamento. As máquinas virtuais dentro do cluster precisam de configuração para execução de cargas de trabalho de IA. As máquinas virtuais para CycleCloud e Batch não são persistentes. O orquestrador cria e remove VMs quando necessário para ajudar na economia de custos. Para obter mais informações, confira Azure CycleCloud Workspace para a Slum.

  • Use o Lote do Azure para agendamento interno. O Lote do Azure tem recursos internos de agendamento sem a necessidade de instalação ou gerenciamento de software extra. Ele conta com um modelo de preços por consumo e não tem taxas de licenciamento. Ele também oferece suporte nativo a tarefas em contêineres. Para conhecer as práticas recomendadas de implantação, consulte Acelerador do Lote do Azure.

  • Use o AKS (Serviço de Kubernetes do Azure) para dimensionamento de contêiner. O AKS é um serviço gerenciado para implantar, dimensionar e gerenciar contêineres em um cluster. Ele é adequado para a execução de cargas de trabalho de IA em contêineres em escala. Para obter mais informações, consulte Usar o Serviço de Kubernetes do Azure para hospedar cargas de trabalho baseadas em GPU.

  • Orquestre manualmente os trabalhos em tarefas mais simples. Se as necessidades de orquestração forem mínimas, gerencie os recursos de IA manualmente. Considere as seguintes etapas para cargas de trabalho de pequena escala:

    • Defina seu fluxo de trabalho. Entenda seu fluxo de trabalho de ponta a ponta, incluindo dependências e sequência de trabalhos. Saiba lidar com falhas em qualquer etapa.
    • Registre e monitore trabalhos. Implemente estruturas claras de registro e monitoramento dos seus trabalhos.
    • Valide os pré-requisitos. Certifique-se de que seu ambiente atenda a todos os requisitos de fluxo de trabalho, incluindo bibliotecas e estruturas necessárias.
    • Usar o controle de versão. Rastreie e gerencie alterações usando o controle de versões.
    • Automatizar tarefas. Use scripts para automatizar o pré-processamento, o treinamento e a avaliação de dados.

Usar contêineres

Os contêineres formam um ambiente consistente e reproduzível que é dimensionado com eficiência. Eles simplificam as transições entre ambientes, tornando-os essenciais para soluções de IA escaláveis.

  • Instalar os drivers. Verifique se os drivers necessários estão instalados para habilitar a funcionalidade do contêiner em vários cenários. Para configurações de cluster, ferramentas como Pyxis e Enroot costumam ser necessárias.

  • Use o NVIDIA Container Toolkit. Esse kit de ferramentas habilita recursos de GPU em contêineres. Instale todos os drivers necessários, como CUDA e GPU, e use o runtime e o mecanismo de contêiner preferenciais para executar a carga de trabalho de IA.

Próxima etapa