advanced · Session 19

Mixture-of-Experts : routage et capacité

Suivre scores de routeur, top-k, experts partagés/routés, capacité et communication.

120 min6 mécanismeslaboratoire causal

Ce que vous saurez faire

Ouvrir le laboratoire

Méthode de travail

Travaillez cette session comme une enquête causale. Avant chaque formule ou interaction, écrivez ce que vous pensez voir changer et ce qui doit rester fixe. Pendant le calcul, conservez les unités, les formes et les valeurs intermédiaires : elles permettent de localiser une erreur sans recommencer au hasard. Après le résultat, traduisez le nombre ou l’état en une phrase sur le comportement du système. Terminez toujours par un contre-exemple ou une valeur limite. Cette discipline sépare la compréhension d’un mécanisme de la simple reconnaissance de son vocabulaire et rend le laboratoire reproductible par un autre apprenant.

Construire le mécanisme pas à pas

1. Pourquoi des experts

Le problème : Pour gagner en capacité, un bloc dense doit grossir — et chaque token paie le bloc entier : ×20 de paramètres, ×20 de FLOPs par token, même pour prédire « le ». La facture de calcul suit la capacité au lieu de suivre le besoin.

L’idée : Le MoE découple les deux : E sous-réseaux (experts) existent, k seulement s’activent par token. Dans la trace : 64 experts routés + 1 partagé = 26 Md de paramètres, mais (2+1) × 0,4 = 1,2 Md actifs par token — un ratio ≈ 21×.

Pourquoi / à quel prix : Capacité totale sans coût dense équivalent — c’est l’argument. Le prix immédiat : les 26 Md doivent résider en mémoire GPU au chargement. Le ratio 21× parle des FLOPs — jamais de la mémoire ni, on le verra, de la latence.

Vérification de compréhension

Nommez l’entrée, l’état transformé, la sortie et une hypothèse nécessaire. Comparez ensuite votre chaîne à l’explication ci-dessus.

2. Routeur

Le problème : Qui décide quels experts voient quel token ? Un aiguillage écrit à la main — par langue ? par thème ? — serait rigide et faux ; il faut une décision par token, apprise avec le reste du modèle.

L’idée : Le routeur est une petite projection : h_t → un logit par expert. Exemple de calcul sur 3 experts : [2,1 ; 1,8 ; 0,2] → softmax [0,529 ; 0,392 ; 0,079]. Ces scores sont des décisions apprises par la perte globale — pas des catégories humaines.

Pourquoi / à quel prix : L’aiguillage appris s’adapte sans intervention. Le prix : l’illisibilité — rien ne garantit qu’un expert « soit » les maths ou le code ; la spécialisation observée est statistique et peut changer au moindre ré-équilibrage.

Vérification de compréhension

Nommez l’entrée, l’état transformé, la sortie et une hypothèse nécessaire. Comparez ensuite votre chaîne à l’explication ci-dessus.

3. Top-k et mélange

Le problème : Faire tourner tous les experts « un peu » ruinerait l’économie ; n’en garder qu’un rend le choix brutal et le gradient fragile. Combien d’experts activer, et comment recombiner leurs sorties ?

L’idée : Top-k tranche : k = 2 experts par token, poids renormalisés — 0,529 et 0,392 deviennent 0,574 et 0,426 (division par 0,921). Un expert partagé, toujours actif, complète : sortie = Σ poids × expert + partagé + résiduel.

Pourquoi / à quel prix : k petit préserve l’économie ; le mélange garde un gradient pour deux chemins. Le prix : chaque token dépend d’une décision discrète — un logit qui bascule change le chemin de calcul entier, comportement moins continu qu’un bloc dense.

Vérification de compréhension

Nommez l’entrée, l’état transformé, la sortie et une hypothèse nécessaire. Comparez ensuite votre chaîne à l’explication ci-dessus.

4. Capacité

Le problème : 8 tokens, top-2, 4 experts : 16 affectations à caser. Or un tenseur GPU a des dimensions fixes — un expert ne peut pas accepter « autant que nécessaire ». Que se passe-t-il quand la demande dépasse la place ?

L’idée : La capacité est une dimension de tenseur : C = ceil(T×k/E × f) = ceil(4 × 1,25) = 5 ici. La trace le montre : E1 reçoit 6 demandes pour 5 places — le 6ᵉ arrivé est rejeté, et sa sortie ne porte plus que 0,426 du mélange prévu (logits supposés égaux à ceux de t1).

Pourquoi / à quel prix : C borne mémoire et calcul par expert — indispensable au tenseur. Le prix : la politique de débordement (rejet, report, file) devient un choix d’architecture qui touche la qualité ; et un f généreux achète moins de rejets contre plus de padding — f = 2 laisse 50 % de slots vides.

Vérification de compréhension

Nommez l’entrée, l’état transformé, la sortie et une hypothèse nécessaire. Comparez ensuite votre chaîne à l’explication ci-dessus.

5. Équilibrage

Le problème : La trace donne 6/4/3/3 : E1 sature pendant qu’E3 et E4 tournent à 60 %. Poussé à l’extrême, un routeur « paresseux » envoie tout vers un seul expert — et les autres n’apprennent plus jamais rien.

L’idée : Une perte auxiliaire pousse la répartition vers l’uniforme. C’est un curseur, pas un interrupteur : trop faible, effondrement sur un expert ; trop forte, elle contredit le routeur même quand E1 est réellement le bon choix.

Pourquoi / à quel prix : Le bon réglage garde tous les experts vivants sans écraser la spécialisation utile. Le prix : un terme de perte de plus à surveiller, dont l’effet se lit en distribution de charge — une métrique système — autant qu’en qualité.

Vérification de compréhension

Nommez l’entrée, l’état transformé, la sortie et une hypothèse nécessaire. Comparez ensuite votre chaîne à l’explication ci-dessus.

6. Communication

Le problème : Les 4 experts vivent sur 4 GPU. Chaque token top-2 doit voyager vers ses experts puis revenir — et les 20 slots réservés, padding de 25 % compris, traversent le réseau dans les deux sens. Où part la latence ?

L’idée : Le all-to-all cadence le pas : deux allers-retours par token top-2, un rythme dicté par l’expert le plus chargé (E1 à 100 %). Les 1,2 Md actifs mesurent le calcul ; le réseau, lui, facture les slots — utilisés ou non.

Pourquoi / à quel prix : Bien placé — experts co-localisés, lots groupés — le MoE tient ses promesses. Le prix générique : la latence est souvent dominée par la communication ; « paramètres actifs » est un excellent indicateur de FLOPs et un très mauvais indicateur de vitesse.

Vérification de compréhension

Nommez l’entrée, l’état transformé, la sortie et une hypothèse nécessaire. Comparez ensuite votre chaîne à l’explication ci-dessus.

Développement depuis la source de cours

Chapitre 14 — Mélange d’experts

14.1 Routeur et experts

But : offrir au modèle de nombreux spécialistes possibles sans exécuter chaque spécialiste pour chaque jeton. Mixture-of-Experts s’abrège MoE.

Un hôpital possède de nombreux spécialistes, mais l’accueil envoie chaque patient seulement vers les médecins les plus pertinents.

Étape par étape

  • Calculer les scores de routage r = xW_router.

  • Sélectionner les k meilleurs experts, par exemple les 2 meilleurs.

  • Exécuter seulement ces experts sur la représentation x du jeton.

  • Combiner leurs sorties avec les poids de routage.

  • Un expert partagé, s’il est utilisé, traite tous les jetons et peut apprendre les compétences communes.

Exemple détaillé : les scores de quatre experts sont [0,1; 2,0; 1,5; −0,2]. Le routage top-2 choisit les experts 2 et 3. Après un softmax sur ces deux scores, leurs sorties sont mélangées ; les experts 1 et 4 n’effectuent aucun travail spécifique pour ce jeton.

Pourquoi c’est important : MoE peut augmenter la capacité totale en paramètres tout en gardant le calcul actif par jeton bien inférieur à l’exécution de tous les experts.

Vérification rapide : s’il existe 64 experts avec un routage top-2, combien d’experts routés s’exécutent pour un jeton ? Réponse : 2, auxquels s’ajoutent les éventuels experts partagés toujours actifs.

14.2 Équilibrage de charge et communication

But : comprendre pourquoi le routage n’est pas gratuit. Si la plupart des jetons choisissent un seul expert, cet expert devient surchargé tandis que les autres attendent.

Un supermarché avec dix caisses reste lent si tout le monde fait la queue à la même caisse.

Étape par étape

  • L’entraînement peut ajouter des objectifs d’équilibrage.

  • Les implémentations peuvent limiter la capacité de chaque expert.

  • Sur plusieurs appareils, les jetons doivent être envoyés aux appareils contenant les experts choisis.

  • Le temps de communication peut devenir un coût majeur.

Exemple détaillé : Une architecture offrant de fortes économies arithmétiques peut rester lente si le routage provoque un trafic réseau important.

Pourquoi c’est important : Les performances réelles dépendent du placement matériel, de la taille des lots, des noyaux et de la communication, pas seulement du nombre de paramètres.

Vérification rapide : qu’est-ce que le déséquilibre de charge ? Réponse : le travail est réparti de façon inégale ; certains experts sont surchargés et d’autres sous-utilisés.

14.3 SiLU, unités à porte et réserve sur SiTU

But : comprendre la base avant une activation propre à la source. La Sigmoid Linear Unit, SiLU, vaut SiLU(a)=a×sigmoid(a). Une unité à porte courante multiplie SiLU(a) par une autre branche b, coordonnée par coordonnée.

Une branche décide de l’ouverture de la porte ; l’autre transporte l’information.

Étape par étape

  • Si a=0, sigmoid(a)=0,5 et SiLU(a)=0.

  • Si a est fortement positif, SiLU(a) est proche de a.

  • Le produit élément par élément permet à chaque coordonnée de contrôler le flux d’information.

Exemple détaillé : La source fournie nomme une activation SiTU. En l’absence d’une équation officielle ou d’une implémentation publiée, considère sa formule exacte et son avantage annoncé comme dépendants de la source, et non comme des faits établis.

Pourquoi c’est important : Comprendre la base permet d’évaluer toute modification proposée.

Vérification rapide : dans une unité à porte, que signifie multiplication élément par élément ? Réponse : multiplier les coordonnées correspondantes, et non chaque coordonnée par toutes les autres.

Cas guidé complet

Exemple de routage réduit à trois experts pour le calcul : scores [2,1;1,8;0,2] donnent après softmax environ [0,529;0,392;0,079]. Avec top-2, experts 1 et 2 sont actifs. Si l’expert 1 a déjà atteint sa capacité, le routeur doit appliquer la politique de débordement.

Méthode de lecture: écrire les données, annoncer la forme de chaque objet, effectuer une seule transformation, puis interpréter le résultat avant de continuer.

Frontière de validité

Les noms d’activations et nombres exacts d’experts attribués à un modèle nommé restent rapportés par la source tant qu’une preuve primaire n’est pas attachée.

Statut de preuve: Mixte : mécanismes établis + choix de type Kimi K3 rapportés par la source.

Vérifications rapides

1. Que fait réellement Pourquoi des experts?

Le MoE découple les deux : E sous-réseaux (experts) existent, k seulement s’activent par token. Dans la trace : 64 experts routés + 1 partagé = 26 Md de paramètres, mais (2+1) × 0,4 = 1,2 Md actifs par token — un ratio ≈ 21×.

2. Que fait réellement Routeur?

Le routeur est une petite projection : h_t → un logit par expert. Exemple de calcul sur 3 experts : [2,1 ; 1,8 ; 0,2] → softmax [0,529 ; 0,392 ; 0,079]. Ces scores sont des décisions apprises par la perte globale — pas des catégories humaines.

3. Que fait réellement Top-k et mélange?

Top-k tranche : k = 2 experts par token, poids renormalisés — 0,529 et 0,392 deviennent 0,574 et 0,426 (division par 0,921). Un expert partagé, toujours actif, complète : sortie = Σ poids × expert + partagé + résiduel.

4. Que fait réellement Capacité?

La capacité est une dimension de tenseur : C = ceil(T×k/E × f) = ceil(4 × 1,25) = 5 ici. La trace le montre : E1 reçoit 6 demandes pour 5 places — le 6ᵉ arrivé est rejeté, et sa sortie ne porte plus que 0,426 du mélange prévu (logits supposés égaux à ceux de t1).

Sources et frontière de preuve

Portée: Mixte : mécanismes établis + choix de type Kimi K3 rapportés par la source.