Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Neste artigo, aprende como executar cargas de trabalho de IA distribuídas no Azure Kubernetes Service (AKS) usando Ray para o tempo de execução de computação e Kueue para controlo de admissão. Esta solução cobre todo o ciclo de vida, desde o fornecimento de infraestruturas até à formação, 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 é excluído dos contratos de nível de serviço do AKS, da garantia limitada e do suporte do Azure. Ao usar a tecnologia de código aberto ao lado do AKS, consulte as opções de suporte disponíveis nas respetivas comunidades e mantenedores do projeto para desenvolver um plano.
A Microsoft assume a responsabilidade pela criação dos pacotes de código aberto que implantamos no AKS. Essa responsabilidade inclui ter a propriedade completa do processo de compilação, digitalização, assinatura, validação e hotfix, juntamente com o controle sobre os binários em imagens de contêiner. Para obter mais informações, consulte Gestão de vulnerabilidades para AKS e cobertura de suporte AKS.
Qual é Ray?
Ray é uma framework open-source para escalar aplicações de IA e Python. Fornece um runtime unificado para treino distribuído, ajuste de hiperparâmetros, inferência em lote e serviço de modelos, permitindo escalar cargas de trabalho em múltiplos nós sem reescrever a lógica da aplicação.
O Ray simplifica a computação distribuída ao tratar do agendamento, tolerância a falhas e gestão de recursos. O framework suporta bibliotecas de aprendizagem automática como PyTorch, TensorFlow e Hugging Face através de integrações como Ray Train, Ray Data e Ray Serve. Para obter mais informações, consulte o repositório Ray GitHub.
Qual é KubeRay?
KubeRay é um operador Kubernetes que gere o ciclo de vida dos clusters de Ray. Fornece recursos personalizados – RayJob para cargas de trabalho batch e RayService para endpoints de serviço persistente – que automatizam a criação, escalabilidade e desmontagem de clusters. Para obter mais informações, consulte o repositório KubeRay GitHub.
O que é Kueue?
O Kueue é um controlador de fila de tarefas nativo do Kubernetes que gere a admissão de carga de trabalho com base em quotas de recursos. Em vez de deixar que cada tarefa submetida consuma recursos imediatamente, o Kueue controla a admissão com base em quotas definidas — as tarefas que cabem nessas quotas são executadas, e as que não cabem ficam em fila de espera. Para uma visão detalhada dos conceitos e configurações de Kueue, consulte a visão geral de Kueue sobre AKS.
Arquitetura de soluções
Esta solução combina Kueue para controlo de admissão com KubeRay na gestão do ciclo de vida do cluster Ray no AKS. A Terraform fornece a infraestrutura, o Helm instala os operadores a partir do Microsoft Container Registry (MCR), e a identidade da carga de trabalho fornece acesso seguro ao Armazenamento de Blobs do Azure sem credenciais armazenadas.
O processo de implementação consiste em três módulos:
- Infraestrutura — A Terraform provisiona o cluster AKS com pools de nós GPU, instala operadores KubeRay e Kueue via Helm, cria Armazenamento de Blobs do Azure e configura a identidade da carga de trabalho.
- Filas Kueue — Os manifestos do Kubernetes definem ResourceFlavor (tipos de nós de CPU e GPU), ClusterQueue (quotas e políticas de admissão) e LocalQueue (pontos de submissão ao nível do espaço de nomes).
- Cargas de trabalho — Os manifestos RayJob e RayService submetem cargas de trabalho de IA que o Kueue admite com base na quota disponível.
As cargas de trabalho de Ray começam com suspend: true. O Kueue avalia a disponibilidade de quotas e retira a suspensão das cargas de trabalho admitidas, momento em que o KubeRay cria o cluster do Ray e executa a tarefa.
Exemplos de carga de trabalho
| Example | Tipo | GPUs | Description |
|---|---|---|---|
| Ajuste fino do modelo meteorológico Aurora | RayJob | 1×A100 | Afinação com LoRA do modelo base de meteorologia Microsoft Aurora |
| Treinar um LLM | RayJob | 4×A100 | Afinação distribuída com LoRA do Qwen2.5-7B com o LLaMA-Factory |
| Executar inferência em lote | RayJob | 1×A100 | Inferência vLLM em modo offline com um adaptador LoRA treinado |
| Disponibilizar um modelo online | RayService | 1×GPU | Endpoint HTTP persistente com Ray Serve |