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 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 diretrizes para executar cargas de trabalho de IA na IaaS do Azure.
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 | O que é IA generativa | IA não generativa (modelos complexos) | IA não generativa (modelos pequenos) |
---|---|---|---|---|
Treinamento de 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) | Otimizado para memória (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) | Otimizado para computação (CPU) |
Escolha a imagem de máquina virtual certa
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 fornece o software necessário para um processamento eficiente de IA
Comece com as 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 incorpore 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.
Escolher um tamanho de máquina virtual
A seleção de um tamanho de máquina virtual apropriado se alinha à complexidade do modelo de IA, ao tamanho dos dados e às restrições de custo. A correspondência do hardware com as necessidades de treinamento ou 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 dão suporte a 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 a série ND MI300X v5, a série ND H100 v5, a série NDm A100 v4 e a série ND A100 v4.
Verifique os preços da máquina virtual. Use as páginas de preços da VM do Linux e do 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 pontuais. 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 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 quando despejado. 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 a computação necessária por um período de tempo específico. 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 software livre. O Azure CycleCloud é ideal para agendadores de software livre, 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 execução de carga de trabalho de IA. As máquinas virtuais para CycleCloud e Lote 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 Espaço de Trabalho do Azure CycleCloud para Favela.
Use o Lote do Azure para agendamento interno. O Lote do Azure oferece recursos internos de agendamento sem a necessidade de instalação ou gerenciamento de software extra. Possui um modelo de preços de consumo e sem taxas de licenciamento. Ele também oferece suporte nativo a tarefas em contêineres. Para obter 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 executar 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 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. Entenda seu fluxo de trabalho de ponta a ponta, incluindo dependências e sequência de trabalhos. 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. 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ão.
- Automatizar tarefas. Use scripts para automatizar o pré-processamento, o treinamento e a avaliação de dados.
Considere contêineres
Os contêineres fornecem um ambiente consistente e reproduzível que é dimensionado com eficiência. Os contêineres 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 são frequentemente necessárias.
Use NVIDIA Container Toolkit. Esse kit de ferramentas habilita recursos de GPU em contêineres. Instale todos os drivers necessários, como drivers CUDA e GPU, e use o runtime e o mecanismo de contêiner preferidos para execução de carga de trabalho de IA.