Tous les produits
Search
Centre de documentation

Platform For AI:Inférence distribuée multi-nœuds

Dernière mise à jour :Sep 10, 2026

L'inférence distribuée multi-nœuds d'EAS vous permet de déployer de grands modèles MoE, tels que DeepSeek 671B, qui dépassent la capacité d'un seul appareil.

Prérequis

Les images officielles SGLang et vLLM d'EAS ou de Model Gallery prennent en charge nativement l'inférence distribuée. Pour utiliser une image personnalisée, assurez-vous qu'elle respecte les exigences réseau de votre framework d'inférence distribuée et suit les modèles standard de traitement distribué. Pour plus de détails, consultez la section Fonctionnement.

Fonctionnement

Concepts clés et principes de mise en œuvre de l'inférence distribuée :

Unité d'instance

L'inférence distribuée introduit des unités d'instance (appelées Unit dans cette rubrique). Les instances au sein d'une unité utilisent des stratégies de communication réseau haute performance et de parallélisme, telles que le parallélisme tensoriel (TP) et le parallélisme de pipeline (PP), pour traiter chaque requête. Les instances d'une unité conservent un état (stateful). Les unités sont entièrement symétriques et sans état (stateless) les unes par rapport aux autres.

ID d'instance

Chaque instance d'une unité reçoit un ID d'instance séquentiel via une variable d'environnement. Pour la liste des variables d'environnement, consultez la section Annexe. Utilisez ces ID pour attribuer différentes tâches aux instances.

Gestion du trafic

Par défaut, chaque unité gère le trafic uniquement via l'instance 0 (RANK_ID = 0). Le système achemine le trafic utilisateur vers l'instance 0 de chaque unité à l'aide de la découverte de service. Chaque unité traite les requêtes de manière distribuée et gère le trafic de façon indépendante.

image

Mises à jour progressives

Lors d'une mise à jour progressive, une unité est reconstruite dans son ensemble. Toutes les instances de la nouvelle unité démarrent en parallèle. Une fois toutes les nouvelles instances prêtes, le système retire le trafic de l'ancienne unité et supprime ses instances.

image

Cycle de vie

Reconstruction d'unité

Lorsqu'une unité est recréée, toutes les instances de l'ancienne unité sont supprimées en parallèle et toutes les instances de la nouvelle unité sont créées en parallèle. Aucun traitement spécial n'est appliqué en fonction de l'ID d'instance.

Recréation d'instance

Par défaut, chaque instance d'une unité partage le cycle de vie de l'instance 0. Lorsque l'instance 0 est recréée, toutes les autres instances de l'unité sont également recréées. Lorsqu'une instance autre que l'instance 0 est recréée, les autres instances restent inchangées.

Tolérance aux pannes distribuée

  • Gestion des défaillances d'instance

    • Lorsque le système détecte une défaillance sur n'importe quelle instance d'un service distribué, il redémarre automatiquement toutes les instances de l'unité.

    • Cela empêche l'incohérence de l'état du cluster causée par des pannes ponctuelles et garantit que toutes les instances démarrent avec un environnement propre et cohérent.

  • Récupération coordonnée

    • Après le redémarrage des instances, le système attend que toutes les instances de l'unité atteignent un état prêt cohérent à l'aide d'une barrière de synchronisation. Les processus métier ne démarrent qu'une fois toutes les instances prêtes.

    • Cette approche répond aux objectifs suivants :

      • Elle prévient les échecs des groupes de communication NCCL causés par des états d'instance incohérents.

      • Elle garantit une synchronisation stricte au démarrage sur tous les nœuds d'une tâche d'inférence distribuée.

La tolérance aux pannes distribuée est désactivée par défaut. Pour l'activer, définissez le paramètre unit.guard comme indiqué dans l'exemple suivant :

{
  "unit": {
    "size": 2,
    "guard": true
  }
}

Procédure

Déploiement à l'aide de Model Gallery

Model Gallery est recommandé pour le déploiement distribué multi-nœuds.

  • L'inférence distribuée est prise en charge uniquement lorsque le moteur d'inférence est SGLang ou vLLM.

  • Sélectionnez des ressources de déploiement correspondant au modèle choisi.

Sur la fiche du modèle, cliquez sur Deploy. Ensuite, cliquez sur l'icône de modification à côté du modèle de déploiement. Dans la boîte de dialogue qui s'ouvre, sélectionnez Distributed.

Déploiement à l'aide d'une image personnalisée

  1. Connectez-vous à la PAI console. Sélectionnez une région en haut de la page. Ensuite, sélectionnez l'espace de travail souhaité et cliquez sur Enter Elastic Algorithm Service (EAS).

    • Créer un service : Dans l'onglet Inference Service, cliquez sur Deploy Service. Sélectionnez Custom Model Deployment> Custom Deployment.

    • Mettre à jour un service : Dans l'onglet Inference Service, recherchez votre service cible dans la liste des services. Dans la colonne Actions, cliquez sur Update.

  2. Dans le formulaire de configuration des paramètres, définissez les paramètres suivants. Pour plus de détails, consultez la section Déploiement personnalisé.

    • Dans la section Environment Information, configurez l'image d'exécution et la commande de démarrage :

      • Image Configuration : Dans la liste Alibaba Cloud Image, sélectionnez une image vllm ou sglang.

      • Command : Après avoir sélectionné une image, le système définit automatiquement la commande de démarrage. Ne la modifiez pas.

    • Dans la zone Features, activez l'interrupteur Distributed Inference et configurez les paramètres clés suivants :

      Paramètre

      Description

      Number of Machines for Single-Replica Deployment

      Nombre de machines pour une seule instance d'inférence de modèle. La valeur minimale est 2.

      RDMA Network

      Activez RDMA pour garantir des connexions réseau à haut débit entre les machines.

      Remarque

      RDMA est disponible uniquement pour les services déployés sur des ressources Lingjun.

  3. Une fois les paramètres configurés, cliquez sur Deploy ou Update.

Annexe

Lors du déploiement d'un service d'inférence distribuée, configurez la mise en réseau pour des frameworks tels que Torch Distributed ou Ray. Si vous activez VPC ou RDMA, chaque instance dispose de plusieurs cartes réseau (NIC). Spécifiez quelle carte réseau utiliser pour la communication inter-instances.

  • RDMA activé : Utilise la carte réseau RDMA (net0) par défaut.

  • RDMA désactivé : Utilise la carte réseau VPC (eth1) configurée par l'utilisateur.

Transmettez ces paramètres en tant que variables d'environnement dans votre commande de démarrage :

Nom de la variable d'environnement

Description

Valeur d'exemple

RANK_ID

ID d'instance, commençant par 0 et incrémenté de 1.

0

COMM_IFNAME

Carte réseau pour la communication inter-instances :

  • RDMA activé : net0.

  • RDMA désactivé : eth1 (carte réseau pour le VPC configuré).

net0

RANK_IP

Adresse IP pour la communication inter-instances, correspondant à la carte réseau spécifiée par COMM_IFNAME.

11...*

MASTER_ADDRESS

Adresse IP de l'instance 0 (RANK_ID = 0), correspondant à la carte réseau spécifiée par COMM_IFNAME pour l'instance 0.

11...*