# Exercices corrigés — Mixture-of-Experts : routage et capacité

**Consigne générale:** chaque réponse doit montrer les données, la transformation, le résultat, une vérification et une limite. Un nombre seul ou une définition recopiée ne suffit pas.

> **Données de départ:** 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.
>
> **Frontière à conserver:** 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.

## Exercice 1 — Trace calculée — Pourquoi des experts

Reproduisez puis commentez la chaîne `input → state → output`. Augmentez le score du premier expert de 2,1 à 2,52 et gardez [1,8;0,2] pour les autres. Recalculez softmax et vérifiez si le top-2 change.

**Livrable:** un tableau données → opération → résultat → interprétation, plus deux phrases sur la valeur modifiée.

<details><summary>Solution guidée</summary>

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.

**Variante résolue:** Les poids passent d’environ [0,529;0,392;0,079] à [0,631;0,307;0,062]. Les experts 1 et 2 restent top-2, mais la charge attendue se concentre davantage sur l’expert 1; la capacité et la politique de débordement deviennent plus critiques.

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×. 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. La vérification minimale consiste à contrôler les dimensions, le signe et l’ordre de grandeur. Si la variation obtenue contredit la prédiction, localiser la première opération qui change de sens au lieu de corriger seulement la dernière ligne.

</details>

### Barème Exercice 1 — /10

| Critère | Points |
|---|---:|
| Données et formes explicites | 2 |
| Calcul traçable | 3 |
| Prédiction avant variation | 2 |
| Interprétation et vérification | 2 |
| Limite nommée | 1 |

## Exercice 2 — Diagnostic d’une explication séduisante — Top-k et mélange

Un collègue affirme: « Top-k et mélange prouve que le système sera exact, rapide et stable dans tous les contextes. »

1. Séparez mécanisme, hypothèse, observation et conclusion.
2. Citez deux éléments corrects de la leçon et deux extrapolations non justifiées.
3. Proposez une expérience bornée avec variable contrôlée, métrique et seuil d’arrêt.
4. Réécrivez l’affirmation en une phrase défendable.

<details><summary>Solution argumentée</summary>

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

L’affirmation mélange une relation locale et une garantie globale. Une version défendable décrit seulement le mécanisme observé, les conditions du test et la métrique relevée. Le test doit s’arrêter si les formes deviennent invalides, si la métrique se dégrade au-delà du seuil annoncé ou si une autre variable a changé.

</details>

### Barème Exercice 2 — /10

2 points par élément : séparation, ancrage dans la leçon, extrapolations, protocole, reformulation.

## Exercice 3 — Décision d’architecture et transfert — Équilibrage

Vous devez reproduire le cas guidé « 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. » dans deux conditions. Option A utilise la chaîne complète jusqu’à « Équilibrage ». Option B est une référence transparente qui conserve « Pourquoi des experts », calcule directement la sortie attendue et n’utilise pas le mécanisme de compression ou d’ajustement étudié. Construisez une fiche de décision comportant:

- la charge et la contrainte dominante;
- le mécanisme de chaque option, sans slogan;
- une prédiction qualité, mémoire ou latence;
- un cas où votre procédure préférée perd;
- un protocole A/B, métriques et seuil de retour arrière;
- un verdict borné : choisir, différer ou refuser.

<details><summary>Éléments d’une bonne solution</summary>

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. 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. Mixte : mécanismes établis + choix de type Kimi K3 rapportés par la source.

Une bonne réponse ne présente pas le mécanisme récent comme gagnant par défaut. Elle conserve une référence mesurable, fixe le seuil avant le test et distingue le coût du composant du comportement du système complet. Le verdict doit citer ce qui reste incertain et la prochaine preuve qui pourrait le modifier.

</details>

### Barème Exercice 3 — /15

| Critère | Points |
|---|---:|
| Cadrage et référence | 3 |
| Chaînes causales comparées | 4 |
| Protocole et métriques | 4 |
| Seuil de retour arrière | 2 |
| Verdict borné | 2 |

## Prolongement

Refaites l’exercice 3 en inversant la contrainte dominante. Si vous aviez optimisé la mémoire, imposez maintenant une qualité minimale stricte; si vous aviez optimisé la fidélité, imposez une enveloppe mémoire divisée par deux. Identifiez le premier point du verdict qui change et la preuve nécessaire.

## Relecture avant remise

Relisez votre paquet comme si un autre groupe devait reproduire votre travail sans vous parler. Toutes les valeurs ou hypothèses de départ sont-elles présentes ? Les formes ou rôles sont-ils écrits avant les opérations ? La prédiction précède-t-elle réellement l’observation ? Le résultat est-il traduit en comportement plutôt que laissé comme nombre isolé ? Avez-vous testé une valeur limite et identifié une condition d’arrêt ? Le choix de procédure ou d’architecture conserve-t-il une référence mesurable et un seuil de retour arrière fixé avant le test ? Enfin, surlignez une phrase qui décrit ce qui est établi, une phrase qui reste une hypothèse et une mesure susceptible de changer votre verdict. Si l’un de ces éléments manque, le travail n’est pas reproductible.

## Annexe de référence pour la correction

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

## Sources et frontière de preuve

- Dossier de cours bilingue fourni par le propriétaire, chapitre 14.
- Shazeer et al., “Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer”, ICLR (2017).
- Fedus, Zoph & Shazeer, “Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity”, JMLR (2022).
- Dai et al., “DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models”, ACL (2024).
- Dossier source fourni par le propriétaire; les détails sur des produits nommés restent attribués à cette source jusqu’à vérification primaire.

> **Portée:** Mixte : mécanismes établis + choix de type Kimi K3 rapportés par la source. Ces références soutiennent le cadre de la session; elles ne transforment pas un choix de produit rapporté en résultat indépendant.
