MoE (Mixture of Experts)
IA / LLM 🔴 SeniorDéfinition
Architecture où chaque couche contient plusieurs sous-réseaux « experts » et un routeur qui n'en active que quelques-uns par token. On obtient un très grand nombre de paramètrès totaux pour un coût de calcul constant : le Switch Transformer (Fedus, Zoph, Shazeer, soumis le 11 janvier 2021) atteint le trillion de paramètrès. DeepSeek-V4.1-Flash (552 B, 8 B activés par token en prefill) et Llama 4 (16 ou 128 experts) l'utilisent.
Analogie
Un hôpital : chaque patient ne voit que deux spécialistes, pas les cinquante médecins du bâtiment.
Exemple de code
# Routage MoE simplifié (top-k experts par token)
class MoE(nn.Module):
def __init__(self, d, n_experts=8, k=2):
super().__init__()
self.router = nn.Linear(d, n_experts)
self.experts = nn.ModuleList([FeedForward(d) for _ in range(n_experts)])
self.k = k
def forward(self, x):
probs = torch.softmax(self.router(x), dim=-1)
top_p, top_i = probs.topk(self.k, dim=-1) # 2 experts sur 8
out = torch.zeros_like(x)
for j in range(self.k): # seuls k experts calculent
for e in top_i[..., j].unique():
m = top_i[..., j] == e
out[m] += top_p[..., j][m, None] * self.experts[int(e)](x[m])
return out
Cas d'usage
Lire une fiche modèle : « 552B total / 8B actifs » signifie coût d'inférence d'un 8B, mémoire d'un 552B.
Anti-pattern
Comparer deux modèles sur le seul nombre de paramètrès totaux : pour un MoE, ce sont les paramètrès actifs qui font la latence.
Termes liés
Fiche mise à jour le 2026-09-27