Visão geral da execução de cargas de trabalho de IA do Ray com o Kueue no AKS (Serviço de Kubernetes do Azure)

Neste artigo, você aprenderá a executar cargas de trabalho de IA distribuídas em AKS (Serviço de Kubernetes do Azure) usando o Ray para o runtime de computação e o Kueue para controle de admissão. Essa solução abrange todo o ciclo de vida do provisionamento de infraestrutura por meio de treinamento, inferência em lote e serviço online.

Importante

O software de código aberto é mencionado em toda a documentação e amostras do AKS. O software que você implanta está excluído dos contratos de nível de serviço do AKS, garantia limitada e Suporte do Azure. Ao usar tecnologia de código aberto junto com o AKS, consulte as opções de suporte disponíveis nas comunidades e mantenedores de projetos respectivos para desenvolver um plano.

A Microsoft assume a responsabilidade por criar os pacotes de código aberto que implantamos no AKS. Essa responsabilidade inclui ter propriedade completa do processo de criação, verificação, sinalização, validação e hotfix, junto com o controle sobre os binários em imagens de contêiner. Para obter mais informações, consulte Gerenciamento de vulnerabilidades para o AKS e Cobertura de suporte do AKS.

O que é o Ray?

O Ray é uma estrutura de software livre para dimensionar aplicativos de IA e Python. Ele fornece um runtime unificado para treinamento distribuído, ajuste de hiperparâmetro, inferência em lote e serviço de modelo, para que você possa dimensionar cargas de trabalho em vários nós sem reescrever a lógica do aplicativo.

O Ray simplifica a computação distribuída manipulando o agendamento, a tolerância a falhas e o gerenciamento de recursos. A estrutura dá suporte a bibliotecas de machine learning como PyTorch, TensorFlow e Hugging Face por meio de integrações como Ray Train, Ray Data e Ray Serve. Para obter mais informações, consulte Repositório do GitHub do Ray.

O que é KubeRay?

KubeRay é um operador do Kubernetes que gerencia o ciclo de vida dos clusters ray. Ele fornece recursos personalizados - RayJob para cargas de trabalho em lote e RayService para endpoints persistentes de serviço - que automatizam a criação, o dimensionamento e a desativação do cluster. Para obter mais informações, consulte o Repositório do GitHub do KubeRay.

O que é Kueue?

O Kueue é um controlador de fila de trabalho nativo do Kubernetes que gerencia a admissão de carga de trabalho com base em cotas de recursos. Em vez de permitir que cada tarefa submetida consuma recursos imediatamente, o Kueue controla a admissão com base em cotas definidas — tarefas que se encaixam são executadas, tarefas que não se encaixam aguardam na fila. Para obter uma visão geral detalhada dos conceitos e da configuração do Kueue, consulte a visão geral do Kueue sobre o AKS.

Arquitetura da solução

Essa solução combina o Kueue para controle de admissão com o KubeRay para o gerenciamento do ciclo de vida do cluster Ray no AKS. O Terraform provisiona a infraestrutura, o Helm instala os operadores do MCR (Registro de Contêiner Microsoft) e a identidade da carga de trabalho fornece acesso seguro a Armazenamento de Blobs do Azure sem credenciais armazenadas.

O processo de implantação consiste em três módulos:

  • Infraestrutura – O Terraform provisiona o cluster do AKS com pools de nós de GPU, instala os operadores KubeRay e Kueue por meio do Helm, cria Armazenamento de Blobs do Azure e configura a identidade da carga de trabalho.
  • Filas do Kueue — Os manifestos do Kubernetes definem ResourceFlavors (tipos de nós de CPU e GPU), ClusterQueues (cotas e políticas de admissão) e LocalQueues (pontos de submissão com escopo de namespace).
  • Cargas de trabalho — Os manifestos RayJob e RayService submetem workloads de IA que o Kueue admite com base na cota disponível.

As cargas de trabalho do Ray começam com suspend: true. O Kueue avalia a disponibilidade de cotas e reativa os workloads admitidos, momento em que o KubeRay cria o cluster Ray e executa a tarefa.

Exemplos de carga de trabalho

Exemplo Tipo GPUs Description
Ajuste fino do modelo meteorológico Aurora RayJob 1×A100 Ajuste fino LoRA do modelo Microsoft Aurora Weather Foundation
Treinar um LLM RayJob 4×A100 Ajuste fino LoRA distribuído do Qwen2.5-7B com LLaMA-Factory
Executar inferência em lote RayJob 1×A100 Inferência offline da vLLM com um adaptador LoRA treinado
Disponibilizar um modelo online RayService 1×GPU Ponto de extremidade HTTP persistente com Ray Serve

Próxima etapa