Dans un modèle Mixture of Experts (MoE), certaines couches sont dupliquées en plusieurs « experts », et un routeur choisit pour chaque token les quelques experts à solliciter. Le modèle stocke beaucoup de paramètres mais n'en calcule qu'une petite partie par token. C'est ainsi que Mixtral ou DeepSeek-V3 allient grande taille et coût de calcul modéré.
Un cabinet de 8 spécialistes avec un standardiste. Chaque question est transmise aux 2 spécialistes les plus pertinents : le cabinet réunit le savoir de 8 personnes, mais chaque question ne mobilise que 2 agendas.
Pour chaque token, une petite couche calcule un score par expert. Ce routeur apprend en même temps que le reste du modèle.
On garde les k experts aux meilleurs scores, 2 sur 8 dans Mixtral. Leurs sorties sont combinées, pondérées par ces scores ; les autres experts ne calculent rien pour ce token.
Pendant l'entraînement, un mécanisme d'équilibrage évite que le routeur envoie tout aux mêmes experts. Sans lui, quelques experts saturent et les autres ne servent à rien.
Une DSI compare des LLM ouverts pour un usage interne. Deux contraintes : la mémoire des GPU, qui doit contenir tous les paramètres, et le calcul par token, qui fixe la vitesse et le coût.
Le code simule une couche à 8 experts dont 2 actifs : chaque token ne mobilise qu'un quart des paramètres des experts. Mixtral 8x7B suit ce schéma : 46,7 milliards de paramètres au total, environ 12,9 milliards utilisés par token.
On dimensionne les GPU sur les paramètres totaux, on estime le débit sur les paramètres actifs, puis on compare la qualité sur ses propres cas d'usage. La part de tokens reçue par chaque expert vérifie que la charge est équilibrée.
Ces choix se font à la conception du modèle. Ils expliquent les différences entre les MoE du marché. Noms donnés pour le code de la fiche.
Nombre d'experts par couche : 8 dans Mixtral, 256 experts routés dans DeepSeek-V3. Plus d'experts, c'est plus de connaissances stockées pour le même calcul par token.
Nombre d'experts sollicités par token : 2 dans Mixtral, 8 dans DeepSeek-V3. C'est lui qui fixe le coût de calcul.
Une perte auxiliaire, ou un ajustement des scores du routeur, répartit les tokens entre experts. Sans elle, quelques experts captent tout le trafic.
Nombre maximal de tokens qu'un expert traite par lot. Trop basse, des tokens sautent l'expert ; trop haute, on gaspille de la mémoire.
# Choisir un LLM open source : couche Mixture of Experts en Python
import numpy as np
rng = np.random.default_rng(42)
d, d_cachee, n_experts, top_k = 64, 256, 8, 2
# 8 experts = 8 petits réseaux à 2 couches (poids aléatoires pour l'exemple)
W1 = rng.normal(0, 0.1, (n_experts, d, d_cachee))
W2 = rng.normal(0, 0.1, (n_experts, d_cachee, d))
routeur = rng.normal(0, 0.1, (d, n_experts))
tokens = rng.normal(0, 1, (1000, d)) # 1 000 tokens déjà transformés en vecteurs
scores = tokens @ routeur # le routeur note chaque expert pour chaque token
choisis = np.argsort(scores, axis=1)[:, -top_k:] # on garde les 2 mieux notés
sortie = np.zeros_like(tokens)
for i, x in enumerate(tokens):
s = scores[i, choisis[i]]
poids = np.exp(s - s.max()) / np.exp(s - s.max()).sum() # softmax sur les 2 retenus
for p, e in zip(poids, choisis[i]):
sortie[i] += p * (np.maximum(x @ W1[e], 0) @ W2[e]) # seuls 2 experts calculent
charge = np.bincount(choisis.ravel(), minlength=n_experts) / len(tokens)
print("Part des tokens traités par chaque expert :", charge.round(2))
par_expert = W1[0].size + W2[0].size
print("Paramètres des experts :", n_experts * par_expert, "| utilisés par token :", top_k * par_expert)
print("Sortie de la couche :", sortie.shape)
Les Mixture of Experts se pratiquent en Python (PyTorch, transformers) : pas d'équivalent R courant.
8 experts construits sur la base d'un modèle de 7 milliards de paramètres. Seules les couches denses sont dupliquées, l'attention est partagée : le total est d'environ 46,7 milliards de paramètres, et non 56.
À taille totale égale, oui : il calcule beaucoup moins par token. Mais il occupe autant de mémoire qu'un modèle dense de même taille totale, et la répartition des experts entre GPU ajoute des échanges. Le gain réel dépend de l'infrastructure.
Pas au sens métier. L'analyse publiée par Mistral AI sur Mixtral ne trouve pas d'expert attitré à un domaine ; le routage suit plutôt la syntaxe et la forme du texte. Il n'existe pas d'expert « juridique » ou « médical » identifiable.
Le MoE remplace la couche dense de chaque bloc Transformer par un groupe d'experts ; l'attention reste partagée.
Voir la fiche → ce que le MoE fait tournerUn MoE reste un LLM qui prédit le token suivant. Seule l'organisation interne du calcul change.
Voir la fiche → l'autre façon de combinerLe stacking consulte tous ses modèles pour chaque prédiction ; le MoE n'en consulte que quelques-uns, choisis par le routeur.
Voir la fiche →Dataistudio forme les équipes au machine learning et à l'IA, sur des cas concrets.
Nous utilisons des cookies de mesure d'audience et de suivi publicitaire pour comprendre la fréquentation du site et l'efficacité de nos annonces. Rien n'est déposé sans votre accord. En savoir plus