Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans cet article, vous allez apprendre à exécuter des charges de travail d’IA distribuées sur Azure Kubernetes Service (AKS) à l’aide de Ray pour le runtime de calcul et Kueue pour le contrôle d’admission. Cette solution couvre l’ensemble du cycle de vie, allant du provisionnement de l’infrastructure à l’entraînement, à l’inférence par lots et à l’inférence en ligne.
Important
Les logiciels open source sont mentionnés dans la documentation et les exemples AKS. Les logiciels que vous déployez sont exclus des contrats de niveau de service AKS, de la garantie limitée et du support Azure. Quand vous utilisez une technologie open source avec AKS, consultez les options de support disponibles auprès des communautés et responsables de projet respectifs pour élaborer un plan.
Microsoft assume la responsabilité de la génération des packages open source que nous déployons sur AKS. Cette responsabilité comprend la maîtrise complète des processus de génération, d’analyse, de signature et de validation ainsi que l’application de correctifs logiciels et le contrôle des fichiers binaires présents dans les images conteneur. Pour plus d’informations, consultez Gestion des vulnérabilités pour AKS et Couverture du support AKS.
Qu’est-ce que Ray ?
Ray est une infrastructure open source pour la mise à l’échelle de l’IA et des applications Python. Il fournit un runtime unifié pour l’apprentissage distribué, le réglage des hyperparamètres, l’inférence par lots et le service de modèle, afin de pouvoir mettre à l’échelle des charges de travail sur plusieurs nœuds sans réécrire la logique d’application.
Ray simplifie l’informatique distribuée en gérant la planification, la tolérance de panne et la gestion des ressources. L’infrastructure prend en charge les bibliothèques machine learning telles que PyTorch, TensorFlow et Hugging Face via des intégrations telles que Ray Train, Ray Data et Ray Serve. Pour plus d’informations, consultez le référentiel GitHub de Ray.
Qu’est-ce que KubeRay ?
KubeRay est un opérateur Kubernetes qui gère le cycle de vie des clusters Ray. Il fournit des ressources personnalisées, RayJob pour les traitements par lots et RayService pour les points de terminaison de service permanents, qui automatisent la création, la mise à l’échelle et la suppression de clusters. Pour plus d’informations, consultez le référentiel GitHub de KubeRay.
Qu’est-ce que Kueue ?
Kueue est un contrôleur de file d’attente de travaux natif Kubernetes qui gère l’admission des charges de travail en fonction des quotas de ressources. Au lieu de laisser chaque tâche soumise consommer immédiatement des ressources, Kueue conditionne l’admission au respect de quotas définis : les tâches qui respectent ces quotas s’exécutent, celles qui ne les respectent pas font la queue. Pour obtenir une vue d’ensemble détaillée des concepts et de la configuration de Kueue, consultez la vue d’ensemble de Kueue sur AKS.
Architecture de la solution
Cette solution combine Kueue pour le contrôle d’admission avec KubeRay pour la gestion du cycle de vie des clusters Ray sur AKS. Terraform approvisionne l’infrastructure, Helm installe les opérateurs à partir de Microsoft Container Registry (MCR), et l’identité de charge de travail fournit un accès sécurisé aux Stockage Blob Azure sans informations d’identification stockées.
Le processus de déploiement se compose de trois modules :
- Infrastructure : Terraform provisionne le cluster AKS avec des pools de nœuds GPU, installe des opérateurs KubeRay et Kueue via Helm, crée Stockage Blob Azure et configure l’identité de la charge de travail.
- Files d’attente Kueue : les manifestes Kubernetes définissent des ResourceFlavors (types de nœuds CPU et GPU), ClusterQueues (quotas et stratégies d’admission) et LocalQueues (points de soumission délimités par l’espace de noms).
- Charges applicatives — les manifestes RayJob et RayService soumettent des charges applicatives d’IA que Kueue accepte en fonction du quota disponible.
Les charges de travail Ray commencent par suspend: true. Kueue évalue la disponibilité des quotas et sort de l’état de suspension les charges de travail admises, à ce moment-là KubeRay crée le cluster Ray et exécute la tâche.
Exemples de charge de travail
| Exemple | Type | GPUs | Description |
|---|---|---|---|
| Ajuster le modèle météo Aurora | RayJob | 1×A100 | Affinage LoRA du modèle de fondation pour la météo Microsoft Aurora |
| Entraîner un LLM | RayJob | 4×A100 | Optimisation du LoRA Qwen2.5-7B distribuée avec LLaMA-Factory |
| Exécuter une inférence par lots | RayJob | 1×A100 | Inférence hors ligne avec vLLM et un adaptateur LoRA entraîné |
| Servir un modèle en ligne | RayService | 1×GPU | Point de terminaison HTTP persistant avec Ray Serve |