Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo descreve como executar com eficiência cargas de trabalho que usam nós de GPU (unidade de processamento gráfico) em um cluster do AKS (Serviço de Kubernetes do Azure). Saiba como escolher a SKU certa, usar nós de GPU para treinar modelos de machine learning e usar nós de GPU para executar a inferência no AKS.
Cenários
As cargas de trabalho de GPU podem ser caras para executar. Para evitar custos desnecessários, saiba quando implantar nós baseados em GPU em seus clusters do AKS.
As GPUs são criadas especificamente para gráficos, IA e aprendizado de máquina e tarefas especializadas, o que as torna ideais para cargas de trabalho com uso intensivo de computação. As CPUs (unidades de processamento central) gerenciam efetivamente a lógica e a ramificação complexas. As GPUs são otimizadas para taxa de transferência e lidam com eficiência operações aritméticas e vetoriais básicas.
Para determinar quando usar GPUs para cargas de trabalho do AKS, você deve entender a otimização da GPU, a intensidade da computação e outros fatores que afetam o desempenho. Para obter uma melhor percepção sobre o uso da GPU para cargas de trabalho do AKS, considere os exemplos de carga de trabalho a seguir que se beneficiam dos nós de GPU em um cluster do AKS.
Ciência de dados e análise
Use GPUs para acelerar o pré-processamento de dados, a engenharia de recursos e o treinamento de modelos em fluxos de trabalho de ciência de dados. Para usar GPUs com eficiência, estruturas como o RAPIDS e o suporte à GPU no Dask estendem bibliotecas populares de processamento de dados, como pandas e scikit-learn.
Os mecanismos de consulta SQL acelerados por software de software livre (OSS) e bancos de dados colunares, como o HeavyDB , usam GPUs para executar consultas e análises em grandes conjuntos de dados.
Aprendizado de máquina e aprendizado profundo
Estruturas populares de aprendizado de máquina e aprendizado profundo como TensorFlow, PyTorch, vLLM e Triton Inference Server se beneficiam de GPUs porque aceleram tarefas que treinam modelos e executam inferência. Por exemplo, o Azure Machine Learning oferece suporte à implantação de modelos de alto desempenho em um endpoint online gerenciado, utilizando o Triton Inference Server.
Modelos de aprendizado profundo usam redes neurais complexas. O processamento paralelo em GPUs acelera seus cálculos. As GPUs fornecem operações de multiplicação e convolução de matriz altamente eficientes, que são operações fundamentais no aprendizado profundo.
Você também pode usar GPUs para acelerar tarefas como classificação de imagem, detecção de objetos, processamento de linguagem natural e reconhecimento de fala.
Visão computacional e processamento de imagens
As tarefas de visão computacional interpretam dados visuais para extrair informações significativas. Essas tarefas aparecem em aplicativos movidos a IA, como veículos autônomos, imagens médicas, sistemas de vigilância e realidade aumentada. As GPUs usam o processamento paralelo para lidar com eficiência com dados de imagem em grande escala e cálculos complexos para tarefas como detecção de objetos, classificação de imagem e extração de recursos.
Processamento e streaming de vídeo
As cargas de trabalho que transcodificam, codificam e transmitem vídeo são intensivas em computação, especialmente se tiverem conteúdo de alta resolução. As GPUs fornecem uma plataforma eficiente para processamento de vídeo de baixa latência e alta taxa de transferência entre aplicativos, como fluxos de eventos esportivos e vídeos corporativos.
Nós de agente com GPU habilitada descarregam tarefas com uso intensivo de gráficos para a GPU em ambientes de área de trabalho virtual. Os recursos de codificação e decodificação de vídeo que usam GPUs dão suporte a streaming de vídeo, transcodificação e análise em tempo real.
Para acelerar tarefas de visão computacional, como detecção de objetos, acompanhamento de objetos e processamento de imagem ou vídeo, use estruturas como OpenCV, OpenCL, NVIDIA CUDA e NVIDIA cuDNN.
Plataformas de jogos e serviços de jogos em nuvem usam GPUs para renderizar gráficos de alta resolução e transmitir uma jogabilidade suave pela Internet.
Computação de alto desempenho
Os aplicativos de computação de alto desempenho (HPC) geralmente exigem simulações complexas, análise numérica e computações científicas. Para executar essas tarefas com eficiência, você pode usar GPUs para paralelizar a carga de trabalho em vários núcleos. Exemplos de aplicativos de HPC que precisam de enorme poder de processamento paralelo incluem simulações científicas, previsão do tempo, dinâmica de fluidos computacional e modelagem molecular. As GPUs dão suporte a cálculos paralelos e aceleram cargas de trabalho de HPC. Eles também aprimoram o desempenho em toda a computação científica e de pesquisa.
Para acelerar aplicativos HPC, estruturas como NVIDIA CUDA, OpenCL e OpenACC fornecem APIs e bibliotecas habilitadas para GPU.
Análise genômica e bioinformática
Cargas de trabalho de ciências da saúde e da vida, como análise genômica e aplicações bioinformáticas, processam dados genéticos, como sequências de DNA e estruturas proteicas. Eles dependem de algoritmos complexos para alinhar sequências, chamar variantes e minerar dados genômicos. As GPUs aceleram os fluxos de trabalho de análise genômica para que os pesquisadores possam processar dados e descobrir insights rapidamente.
Modelos de IA generativa
Modelos de linguagem como os modelos abertosOpenAI GPT, Meta Llama, Falcon e Phi podem aproveitar os recursos de processamento paralelo da GPU. Use GPUs para executar esses modelos e melhorar o desempenho.
As GPUs aceleram tarefas de treinamento e inferência, que envolvem cálculos complexos e grandes quantidades de dados. As GPUs têm recursos de processamento paralelo que dividem as grandes tarefas computacionais de um determinado modelo em subtarefas menores que são executadas simultaneamente. Esse processo reduz a latência e melhora o desempenho.
Os modelos de linguagem geralmente possuem redes neurais complexas com várias camadas e parâmetros, o que pode aumentar a demanda computacional. As GPUs aceleram as operações de chave no processamento de linguagem, como multiplicação e convoluções de matriz, o que reduz o tempo necessário para treinamento e inferência.
As GPUs fornecem capacidade de memória, largura de banda e poder de processamento suficientes para lidar com aplicativos baseados em modelo de linguagem que têm interfaces de conversa e geram texto. Por exemplo, os aprimoramentos de GPU fornecem respostas de baixa latência para usuários que interagem com chatbots e assistentes de IA.
Nem todas as cargas de trabalho se beneficiam de nós de agentes com suporte a GPU. Em alguns casos, as CPUs são suficientes. Por exemplo, cargas de trabalho que são principalmente associadas a entrada e saída ou não exigem computação pesada podem não se beneficiar de GPUs.
Relatos de clientes
Muitos clientes da Microsoft aproveitam as cargas de trabalho de GPU para inovar para seus clientes. Considere os seguintes exemplos:
- O Banco Real do Canadá (RBC) acelera a inferência em escala usando o conjunto de ferramentas de IA e GPUs no AKS
- Jogadores da NBA melhoram o desempenho com IA na infraestrutura de IA do Azure
- Uma empresa de IA chamada Mr. Turing usa IA e AKS para tornar as informações da empresa pesquisáveis
Práticas recomendadas de implantação de carga de trabalho de GPU
O AKS fornece várias opções para implantar pools de nós e cargas de trabalho do Linux e do Windows habilitados para GPU.
Implantação da carga de trabalho do Linux
Crie um pool de nós que tenha uma VM (máquina virtual) habilitada para GPU com suporte que usa GPUs NVIDIA ou GPUs AMD. Siga as diretrizes do fornecedor de GPU para instalar o plug-in de dispositivo Kubernetes associado. Esse método não permite que você atualize um pool de nós existente para adicionar GPUs.
Entenda as limitações quando você usa um pool de nós habilitados para GPU Linux do Azure. O AKS não aplica patches de segurança automáticos e o comportamento padrão para o cluster não é gerenciado.
Use seletores de nó do Kubernetes, afinidade de nó e tintas e tolerâncias ao programar cargas de trabalho em seus pools de nós preparados para GPU.
Implantação de carga de trabalho do Windows
Crie um pool de nós usando uma VM suportada habilitada para GPU. Essa abordagem cria um pool de nós do Windows habilitado para GPU. O AKS instala automaticamente os drivers e o plug-in do dispositivo Kubernetes. Esse método não permite que você atualize um pool de nós existente para adicionar GPUs.
Quando você seleciona uma VM habilitada para GPU com suporte, o AKS instala automaticamente o driver NVIDIA CUDA ou GRID necessário. Algumas cargas de trabalho dependem de um driver específico, o que pode afetar sua implantação. Para tamanhos de VM das séries NC e ND, o AKS instala o driver CUDA. Para tamanhos de VM da série NV, o AKS instala o driver GRID.
Entenda as limitações ao usar um pool de nós do Windows.
"Utilize seletores de nós, afinidade de nós e taints e tolerâncias do Kubernetes ao agendar cargas de trabalho em pools de nós habilitados para GPU."
Observação
A GPU do Windows é uma versão prévia do recurso. Você precisa registrar o sinalizador de recurso WindowsGPUPreview.
Operador de GPU NVIDIA
Use o Operador de GPU NVIDIA para implantar e gerenciar recursos de GPU em clusters do Kubernetes. O operador automatiza a instalação, a configuração e a manutenção dos componentes de software necessários. Essa abordagem ajuda a garantir o uso ideal de GPUs NVIDIA para cargas de trabalho com uso intensivo de recursos, como IA e machine learning.
O Operador de GPU NVIDIA gerencia automaticamente os componentes de software NVIDIA que você precisa para implantar GPUs, como o plug-in de dispositivo NVIDIA para Kubernetes e o runtime de contêiner NVIDIA. O operador instala automaticamente o driver. Para obter mais informações, consulte a visão geral do Operador de GPU NVIDIA.
Se você deseja obter controle e flexibilidade aprimorados para cargas de trabalho de GPU avançadas, utilize o NVIDIA GPU Operator com seus nós habilitados para GPU no AKS. O operador não dá suporte a GPUs do Windows.
Considere as melhores práticas a seguir:
Use o operador NVIDIA GPU para realizar configurações avançadas de GPU, como seleção da versão do driver e time-slicing de GPU.
Ignore a instalação automática do driver antes de usar o operador.
Defina a contagem mínima como 1 quando você usar o operador com o dimensionador automático de cluster.
Observação
A Microsoft não dá suporte nem gerencia a manutenção e a compatibilidade dos drivers NVIDIA como parte da implantação de imagem do nó quando você usa o Operador de GPU NVIDIA. Para obter mais informações, consulte as melhores práticas de GPU para AKS.
Implantação de carga de trabalho de GPU para modelos de linguagem
O operador de cadeia de ferramentas de IA simplifica a forma como você executa modelos de linguagem de software livre, como o Falcon, no cluster do Kubernetes. Você pode implantar o operador de cadeia de ferramentas de IA no cluster do AKS como um recurso gerenciado para o AKS. O operador de cadeia de ferramentas de IA usa Karpenter para provisionar e implantar automaticamente nós de GPU com base em uma especificação na definição de recurso personalizado do workspace do modelo escolhido. O operador de cadeia de ferramentas de IA cria o servidor de inferência como um ponto de extremidade para seu modelo de linguagem e reduz o tempo de integração para que você se concentre em operações de machine learning em vez de configuração e manutenção da infraestrutura.
Para melhorar as operações de IA no AKS, o operador de cadeia de ferramentas de IA fornece os seguintes recursos:
Gerencia imagens de contêiner: Use imagens de contêiner para gerenciar modelos de linguagem. O operador de toolchain de IA fornece um servidor HTTP para que você possa usar workspaces de modelos predefinidos para executar inferência, chamar ferramentas e usar o protocolo MCP (Protocolo de Contexto de Modelo).
Dá suporte a modelos BYO (bring-your-own): Use o operador da ferramenta de IA para integrar modelos de linguagem internos e pré-treinados, utilizando um modelo de implantação personalizado e o Hugging Face Transformers para inferência.
Configura o hardware de GPU: O operador de cadeia de ferramentas de IA aplica automaticamente configurações predefinidas com base nos requisitos do modelo. Você não precisa ajustar manualmente os parâmetros de implantação para otimizar o uso do hardware de GPU ou solucionar problemas dispendiosos de erros de OOM (out of memory).
Fornece monitoramento interno de inferência: Quando você implanta um modelo usando o mecanismo padrão de inferência vLLM, o operador da cadeia de ferramentas de IA apresenta métricas de vLLM em tempo real por meio do Prometheus e do Grafana e expõe métricas sobre desempenho de inferência e saúde no cluster AKS.
Para obter mais informações sobre o operador de cadeia de ferramentas de IA, consulte os seguintes recursos:
- Explore o projeto open-source do operador de ferramentas de IA
- Ajuste seus modelos de linguagem usando o operador da cadeia de ferramentas de IA
- Implantar um modelo de linguagem que dá suporte à chamada de ferramenta
- Conecte-se a um servidor MCP usando o operador de pipeline de IA
Escalabilidade da carga de trabalho e do cluster
Para cenários de IA e aprendizado de máquina, você deve diferenciar entre cargas de trabalho de treinamento e inferência com modelos pré-treinados. Para criar e treinar um modelo de machine learning, use a computação de GPU projetada para aprendizado profundo e paralelização de cálculos de IA. O treinamento geralmente exige que você dimensione gradualmente os recursos de GPU e distribua grandes quantidades de dados entre GPUs para obter alta precisão por meio do paralelismo de dados.
A fragmentação de modelo é uma técnica avançada comum para dividir estágios de treinamento de modelo. Você pode atribuir GPUs a tarefas distintas e maximizar seu uso habilitando a MIG (GPU de várias instâncias) em pools de nós de GPU NVIDIA no AKS. As GPUs no Azure podem aumentar a escala e expandir as cargas de trabalho de HPC, como as VMs da série NV ou ND. Esse recurso ajuda a manter o alto uso de recursos e reduzir a intervenção do usuário para processos de treinamento de aprendizado de máquina que são demorados e caros.
Como alternativa, você pode usar modelos de IA e machine learning de software livre e pré-treinados para inferência. Comece com modelos populares como Llama, Falcon ou Phi como uma opção mais econômica do que criar e treinar um modelo de linguagem totalmente personalizado. Para mais informações, consulte Modelos de Linguagem no AKS.
Quando você usa modelos pré-treinados para inferência, o uso de recursos pode flutuar com base no volume de dados que você processa. Quando você executa dados dinâmicos por meio do modelo escolhido, o tráfego pode aumentar dependendo do tamanho do modelo e dos requisitos. Mantenha a baixa latência durante todo o processo de inferência. Para usar suas GPUs efetivamente para alto desempenho e baixa latência, realize a inferência distribuída usando modelos aos quais o operador de cadeia de ferramentas de IA dá suporte. Essa abordagem expande suas opções de computação para incluir SKUs de contagem de GPU mais baixas que têm uma ou duas GPUs cada, fornece alta disponibilidade entre regiões do Azure e reduz os custos de manutenção.
Monitoramento de integridade da GPU
Problemas de GPU podem ser difíceis de detectar e geralmente causam erros silenciosos ou degradam o desempenho em vez de falhar totalmente. Esses problemas adicionam tempo para solucionar problemas, consumir recursos desnecessariamente e aumentar os custos operacionais.
O monitoramento de integridade da GPU no AKS oferece checagens consistentes e frequentes de eventos e condições dos nós. O Detector de Problemas de Nó (NPD) relata esses eventos em tamanhos específicos de VM de GPU. O NPD apresenta sinais importantes, como contagem incorreta de GPU ou falhas de conectividade de rede diretamente em condições de nó do Kubernetes, o que ajuda as equipes a identificar e responder a problemas. Essa abordagem dá suporte a alertas automatizados, isolamento de nós e reagendamento de carga de trabalho. Ele também ajuda a manter a confiabilidade e o desempenho do aplicativo em ambientes com uso intensivo de computação.
Gerenciamento de custos de carga de trabalho de GPU
As GPUs podem aumentar o custo. Monitore cargas de trabalho para entender o que impulsiona os custos de GPU e identificar oportunidades de otimização. Para aumentar a visibilidade do custo, use a ferramenta de análise de custo do AKS.
Os cenários a seguir se beneficiam da visibilidade de custo.
Custo de tamanho da VM habilitada para GPU
Selecione o tamanho correto da VM habilitada para GPU para otimizar o custo para executar GPUs. Os custos diários podem variar dependendo do tamanho da VM que você escolher. As GPUs A100 são caras, portanto, evite-as, a menos que sua carga de trabalho exija. A análise de custo do AKS mostra o custo diário de cada uma de suas VMs e mostra os custos associados de cada carga de trabalho executada na VM habilitada para GPU. Use esses dados para avaliar se você tem um tamanho de VM apropriado ou se precisa de uma opção mais econômica.
Custo ocioso
Depois de criar um pool de nós habilitado para GPU, você incorre em custos no recurso do Azure, mesmo que não execute uma carga de trabalho de GPU. Os custos ociosos representam o custo da capacidade de recursos disponíveis que as cargas de trabalho não usam. Esses custos poderão ser adicionados rapidamente se você tiver vários nós não utilizados. Para evitar altos custos ociosos, crie node pools somente quando executar um trabalho e use métodos como o recurso de parada de cluster quando não estiver em uso. A análise de custo do AKS mostra os custos ociosos para cada um dos nós.
Superprovisionamento e subutilização
O superprovisionamento é quando você aloca mais recursos do que o necessário para um pod. O superprovisionamento leva ao desperdício de recursos e à subutilização. O nó continua a reservar recursos em excesso mesmo que as cargas de trabalho não os usem. Para reduzir o superprovisionamento, use o dimensionador dimensionador automático de pod vertical para definir solicitações e limites precisos com base em padrões de uso anteriores.
A subutilização pode ocorrer quando suas cargas de trabalho não usam totalmente GPUs. Considere técnicas avançadas para compartilhar e particionar GPUs. Em vez de implantar vários nós, você pode usar um único nó com partições para maximizar o uso de GPU. Essas técnicas ajudam você a alocar a quantidade apropriada de aceleração de GPU para cada carga de trabalho, o que pode aprimorar o uso e reduzir os custos operacionais da implantação.
As implantações de carga de trabalho de GPU do Linux no AKS dão suporte a GPUs de várias instâncias. Use esse recurso para particionar GPUs NVIDIA A100 e H100 em até sete instâncias independentes. Cada instância tem sua própria memória e multiprocessador de fluxo.
NVIDIA dá suporte a outras técnicas de particionamento, como time-slicing e MPS (Serviço de Múltiplos Processos). Para aplicar manualmente essas configurações, use o Operador de GPU NVIDIA.
Para cenários avançados, você pode melhorar o empacotamento de recursos nos nós do AKS e otimizar a utilização de GPUs em seu cluster. Você pode definir configurações do agendador usando um ou mais plug-ins de agendamento interno (ou na árvore) do Kubernetes para introduzir estratégias de posicionamento de carga de trabalho que diferem do agendador padrão do AKS. Para obter mais informações, consulte os conceitos de configuração do Agendador para posicionamento de carga de trabalho no AKS (versão prévia).
Contribuidores
A Microsoft mantém este artigo. Os colaboradores a seguir escreveram este artigo.
Autor principal:
- Ayobami Ayodeji | Gerente Sênior de Programa
Outros colaboradores:
- Sachi Desai | Gerente de Produto 2
- Ally Ford | Gerente de Produto 2
- Erin Schaffer | Desenvolvedor de conteúdo 2
Para ver perfis não públicos no LinkedIn, entre no LinkedIn.
Próximas etapas
- Traga seus próprios modelos de IA para aplicativos inteligentes no AKS usando o operador de cadeia de ferramentas de IA
- Implantar o operador de cadeia de ferramentas de IA no AKS usando o Terraform