Partilhar via


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

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

As cargas de trabalho de IA exigem máquinas virtuais (VMs) especializadas para lidar com 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 fornece uma visão geral das opções de computação recomendadas.

Fase de IA Imagem de Máquina Virtual IA generativa IA não generativa (modelos complexos) IA não generativa (modelos pequenos)
Treinar modelos de IA Máquinas Virtuais de Ciência de Dados GPU (prefira a família ND. Como alternativa, use a família NC com VMs interconectadas por ethernet) GPU (prefira a família ND. Como alternativa, use a família NC com VMs interconectadas por ethernet) Memória otimizada (CPU)
Inferência de modelos de IA Máquinas Virtuais de Ciência de Dados GPU (família NC ou ND) GPU (família NC ou ND) Computação otimizada (CPU)

Escolha 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 ferramentas pré-configuradas para cargas de trabalho de IA rapidamente. Essa escolha economiza tempo e recursos, ao mesmo tempo em que fornece o software necessário para um processamento eficiente de IA

  • Comece com as imagens das 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. Estas imagens servem como imagem de base. Se precisar de mais software, adicione-o através de um script no momento da inicialização ou incorpore-o em uma imagem personalizada. Eles mantêm a compatibilidade com suas soluções de orquestração.

  • Encontre imagens alternativas, conforme 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 GPUs, você pode precisar de imagens do Linux que incluam drivers InfiniBand, drivers NVIDIA, bibliotecas de comunicação, bibliotecas MPI e ferramentas de monitoramento.

Escolha um tamanho de máquina virtual

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

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

  • Verifique os preços das máquinas virtuais. Use as páginas de preços de VM Linux e Windows para obter uma visão geral dos custos. Para obter uma estimativa detalhada, use a Calculadora de Preços do Azure.

  • Considere instâncias spot.As 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 oferecem economias significativas ao utilizar a capacidade não utilizada do datacenter com desconto. No entanto, essa capacidade pode ser recuperada a qualquer momento, portanto, as instâncias pontuais são melhores para cargas de trabalho que podem lidar com interrupções. Verifique regularmente os dados dos pontos de verificação para minimizar as perdas quando removido. Para obter informações, consulte Usando VMs spot no Azure CycleCloud.

Escolha 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 a computação de que precisa por um período de tempo específico. Selecione uma ferramenta de orquestração com base em suas necessidades de agendamento, conteinerização e dimensionamento 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 fornece 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 a execução da carga 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, consulte Azure CycleCloud Workspace for Slum.

  • Use o Lote do Azure para agendamento interno. O Azure Batch oferece recursos de agendamento internos sem a necessidade de instalação ou gerenciamento de software extra. Tem um modelo de preços de consumo e sem taxas de licenciamento. Ele também suporta tarefas em contêineres nativamente. Para obter as práticas recomendadas de implantação, consulte Azure Batch Accelerator.

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

  • Orquestre manualmente trabalhos para 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. Compreenda seu fluxo de trabalho de ponta a ponta, incluindo dependências e sequência de tarefas. Considere como lidar com falhas em qualquer etapa.
    • Registre e monitore trabalhos. Implemente estruturas claras de registro e monitoramento para seus trabalhos.
    • Valide os pré-requisitos. Garanta que seu ambiente atenda a todos os requisitos de fluxo de trabalho, incluindo bibliotecas e estruturas necessárias.
    • Use o controle de versão. Rastreie e gerencie alterações usando o controle de versão.
    • Automatize tarefas. Use scripts para automatizar o pré-processamento, treinamento e avaliação de dados.

Considere os contentores

Os contêineres fornecem um ambiente consistente e reproduzível que pode ser dimensionado de forma eficiente. Os contêineres simplificam as transições entre ambientes, tornando-os essenciais para soluções de IA escaláveis.

  • Instale 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 são frequentemente necessárias.

  • Use NVIDIA Container Toolkit. Este kit de ferramentas habilita recursos de GPU dentro de contêineres. Instale todos os drivers necessários, como drivers CUDA e GPU, e use seu tempo de execução de contêiner e mecanismo preferidos para a execução da carga de trabalho de IA.

Próximo passo