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.
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 |