Mélange d'experts
From Wikipedia, the free encyclopedia
Un mélange d'experts (en anglais mixture of experts, abrégé MoE) est une technique d'apprentissage automatique dans laquelle plusieurs réseau de neurones artificiels dits « experts » sont utilisés afin de diviser l'espace des variables d'entrée d'un système en régions homogènes[1]. Le mélange d'experts constitue une forme d'apprentissage ensembliste[2]. Ces systèmes ont également été appelés « machines à comité » (committee machines)[3].
Principes généraux
Un mélange d'experts comporte toujours les éléments suivants, bien que leur mise en œuvre et leur combinaison diffèrent selon le problème traité :
- Des experts , qui reçoivent tous la même entrée et produisent respectivement les sorties .
- Une fonction de pondération, également appelée fonction de routage ou fonction de porte (gating function), notée , qui reçoit et produit un vecteur . Ce vecteur peut ou non définir une loi de probabilité, mais ses composantes sont dans tous les cas positives ou nulles.
- Un ensemble de paramètres . Le paramètre correspond à la fonction de pondération, tandis que les paramètres correspondent aux experts.
- Pour une entrée , le mélange d'experts produit une sortie unique en combinant selon les poids . La combinaison la plus courante est
- .
Les experts comme la fonction de pondération sont entraînés en minimisant une fonction de coût, généralement par descente de gradient. Il existe une grande liberté dans le choix de la forme exacte des experts, de la fonction de pondération et de la fonction de coût.
Réseau méta-pi
Le réseau méta-pi, présenté par Hampshire et Waibel[4], utilise
comme sortie. Le modèle est entraîné par descente de gradient sur l'erreur quadratique moyenne
- .
Les experts peuvent être des fonctions arbitraires.
Dans leur publication initiale, les auteurs cherchaient à classer des phonèmes dans des signaux de parole produits par six locuteurs japonais, deux femmes et quatre hommes. Ils entraînèrent six experts, chacun constitué d'un « réseau neuronal à délais temporels »[5], c'est-à-dire, pour l'essentiel, d'un réseau de neurones convolutif multicouche appliqué à un spectrogramme de Mel. Le mélange obtenu attribuait cinq experts à cinq des locuteurs. Le sixième locuteur, un homme, ne disposait pas d'expert propre : sa voix était classée au moyen d'une combinaison linéaire des experts correspondant aux trois autres locuteurs masculins.
Mélanges adaptatifs d'experts locaux
Les mélanges adaptatifs d'experts locaux[6],[7] utilisent un modèle de mélange gaussien. Chaque expert prédit simplement une loi gaussienne et ignore entièrement l'entrée. Plus précisément, le -ème expert prédit
- ,
où est un paramètre appris. La fonction de pondération est une fonction linéaire suivie d'un softmax :
Le mélange d'experts prédit que la sortie est distribuée selon la densité logarithmique :
Le modèle est entraîné par maximum de vraisemblance, c'est-à-dire par montée de gradient sur . Le gradient relatif au -ème expert est :
et le gradient relatif à la fonction de pondération est :
Pour chaque couple entrée-sortie , la fonction de pondération est modifiée de façon à accroître le poids des experts ayant obtenu une performance supérieure à la moyenne et à réduire celui des experts moins performants. Elle apprend ainsi à sélectionner les experts qui prédisent correctement chaque type d'entrée.
Le -ème expert est modifié pour rapprocher sa prédiction de , mais l'amplitude de cette modification est proportionnelle à . Cette quantité admet une interprétation bayésienne. Pour une entrée , la probabilité a priori que l'expert soit le bon vaut , tandis que est la vraisemblance de l'observation . La quantité
est donc la probabilité a posteriori de l'expert . La vitesse d'apprentissage de cet expert est proportionnelle à cette probabilité.
Autrement dit, les experts qui apparaissent rétrospectivement comme les plus pertinents pour un exemple donné sont entraînés sur cet exemple, tandis que les autres sont peu ou pas modifiés.
L'effet combiné de ce mécanisme conduit à la spécialisation des experts. Si deux experts prédisent correctement un certain type d'entrée, mais que l'un est légèrement meilleur, la fonction de pondération finit par favoriser ce dernier. L'expert moins performant reçoit alors un signal de gradient plus faible et se spécialise progressivement dans d'autres catégories d'entrées. Cette rétroaction positive éloigne les experts les uns des autres et amène chacun d'eux à prendre en charge une région locale de l'espace des données, d'où l'expression « experts locaux ».
Mélange d'experts hiérarchique
Les mélanges d'experts hiérarchiques[8],[9] utilisent plusieurs niveaux de fonctions de routage organisés en arbre. Chaque fonction de routage définit une distribution de probabilité sur les fonctions du niveau suivant, tandis que les experts se trouvent aux feuilles de l'arbre. Leur structure est proche de celle des arbres de décision.
Par exemple, un mélange hiérarchique à deux niveaux possède une fonction de routage de premier niveau , des fonctions de second niveau et des experts . La prédiction totale est alors :
- .
Variantes
Comme les modèles de mélange gaussien, les mélanges d'experts peuvent être entraînés au moyen de l'algorithme espérance-maximisation. Lors de l'étape d'espérance, la responsabilité d'expliquer chaque donnée est répartie entre les experts. Lors de l'étape de maximisation, chaque expert améliore l'explication des données dont il porte une responsabilité élevée, tandis que la fonction de routage améliore l'attribution de ces responsabilités. Cette méthode peut converger plus rapidement qu'une montée de gradient directe sur la log-vraisemblance[9],[10].
La fonction de routage est souvent un softmax. Elle peut aussi reposer sur des lois gaussiennes[11] ou, plus généralement, sur des familles exponentielles[10].
Dans un mélange d'experts « dur » (hard MoE)[12], seule la sortie de l'expert le mieux classé est retenue, au lieu d'effectuer une somme pondérée de tous les experts :
- .
Cette méthode peut réduire le coût de l'entraînement et de l'inférence[13].
Les experts peuvent utiliser des formes plus générales de lois gaussiennes multivariées. Jordan et Jacobs[8] proposent par exemple
- ,
où , et sont appris. Chaque expert réalise ainsi une régression linéaire accompagnée d'une estimation apprise de l'incertitude.
D'autres distributions que la loi gaussienne peuvent être utilisées, notamment la loi de Laplace[14], ou la loi de Student[15]. Pour la classification binaire, il est également possible d'employer des experts de régression logistique :
où et sont appris. Cette approche a ensuite été généralisée à la classification multiclasse au moyen d'experts de régression logistique multinomiale[16].
Une autre variante, appelée « mélange de softmax », a été proposée pour la modélisation autorégressive du langage[17]. Dans un modèle de langue, un texte antérieur est encodé sous la forme d'un vecteur , puis la probabilité du mot suivant est prédite par , où est une matrice de plongement. Dans un mélange de softmax, le modèle produit plusieurs vecteurs et prédit le mot suivant selon
- ,
où est une distribution de probabilité obtenue par une opération linéaire suivie d'un softmax sur les activations cachées du modèle. L'article d'origine montre l'efficacité de cette méthode pour les réseaux de neurones récurrents. Elle s'est ensuite révélée applicable aux transformeurs[18].
Apprentissage profond
La section précédente décrit les mélanges d'experts tels qu'ils étaient utilisés avant le développement de l'apprentissage profond. Dans ce dernier domaine, les mélanges d'experts ont notamment servi à faire fonctionner des modèles de très grande taille par le recours au « calcul conditionnel » : seule une partie du modèle est activée, cette partie étant choisie en fonction de l'entrée[19].
L'un des premiers articles appliquant les mélanges d'experts à l'apprentissage profond date de 2013[20]. Il propose d'utiliser un réseau de routage différent à chaque couche d'un réseau neuronal profond. Chaque routeur est constitué d'une succession linéaire–ReLU–linéaire–softmax, et chaque expert d'un réseau linéaire–ReLU. Comme la sortie du routeur n'est pas creuse, toutes les sorties d'experts doivent être calculées : il n'y a donc pas de calcul conditionnel.
L'objectif principal de l'usage des mélanges d'experts en apprentissage profond est de réduire le coût de calcul. Pour chaque requête, seul un petit sous-ensemble des experts doit donc être sollicité. C'est ce qui distingue ces architectures des mélanges d'experts classiques, dans lesquels la sortie est une somme pondérée des sorties de tous les experts. Dans les architectures profondes, la sortie ne dépend que de quelques experts. Le choix de la méthode de routage devient alors central : pour un lot de requêtes donné, il faut diriger chaque requête vers les experts les plus appropriés.
Couche de mélange d'experts à routage parcimonieux
La couche de mélange d'experts à routage parcimonieux[21], publiée par des chercheurs de Google Brain, emploie des réseaux à propagation avant comme experts et un routage linéaire suivi d'un softmax. Comme dans les mélanges d'experts « durs », la parcimonie est obtenue en effectuant une somme pondérée des seuls experts les mieux classés.
Une couche MoE contient des experts et un réseau de routage . Celui-ci est défini par
- ,
où conserve les plus grandes composantes d'un vecteur et remplace toutes les autres par . L'ajout de bruit contribue à équilibrer la charge entre les experts.
Le choix de est un hyperparamètre dépendant de l'application. Les valeurs usuelles sont ou . La variante est également appelée Switch Transformer. Le premier Switch Transformer a été appliqué à un modèle de langue T5[22].
À titre de démonstration, les auteurs entraînèrent plusieurs modèles de traduction automatique alternant couches MoE et couches LSTM, puis les comparèrent à des modèles LSTM profonds[23]. Les modèles MoE demandaient moins de calcul lors de l'inférence malgré un nombre de paramètres environ trente fois supérieur.
Ce module architectural a été publié en janvier 2017, quelques mois avant l'architecture Transformeur en juin 2017. Les deux furent combinés dans une architecture multimodale appelée MultiModel, publiée quatre jours après l'article fondateur sur les transformeurs[24].
Équilibrage de charge
Les mélanges d'experts simples rencontrent souvent un problème d'équilibrage : certains experts sont très fréquemment sollicités, tandis que d'autres le sont rarement, voire jamais. Pour encourager le routeur à sélectionner chaque expert à fréquence comparable dans un lot, les couches MoE peuvent inclure des fonctions de coût auxiliaires. Le Switch Transformer[22] regroupe ce mécanisme en une seule fonction auxiliaire.
Soit le nombre d'experts et un lot de requêtes. La perte auxiliaire vaut :
où
est la proportion de jetons ayant choisi l'expert , et
est la proportion de poids attribuée à cet expert. Cette fonction atteint son minimum, égal à , lorsque tous les experts reçoivent le même poids dans toutes les situations.

Les chercheurs de DeepSeek ont conçu une variante comprenant des « experts partagés », toujours sollicités, et des « experts routés », qui ne le sont que lorsque le routeur les sélectionne. Selon eux, l'équilibrage standard pousse les experts à reproduire des capacités fondamentales identiques, par exemple la grammaire anglaise. Les experts partagés sont donc chargés d'apprendre les capacités générales fréquemment utilisées, tandis que les experts routés apprennent des capacités plus périphériques ou spécialisées[26].
DeepSeek a également proposé une stratégie d'équilibrage sans perte auxiliaire. Chaque expert reçoit un biais supplémentaire . Si un expert est trop peu utilisé, ce biais augmente ; dans le cas contraire, il diminue. Pour l'affectation des jetons, chaque jeton choisit les experts obtenant les plus grands scores après ajout de ce biais :
Le biais intervient dans le choix des experts, mais pas dans la pondération de leurs sorties[27].
Facteur de capacité
Supposons qu'une couche comporte experts et qu'un lot contienne requêtes. Si chaque requête est envoyée vers un expert, comme dans le Switch Transformer, et si la charge est parfaitement équilibrée, chaque expert reçoit en moyenne requêtes. En pratique, l'équilibrage n'est jamais parfait : un expert peut être peu sollicité dans certains lots et surchargé dans d'autres.
Comme les entrées ne peuvent quitter la couche qu'une fois tous les experts terminés, l'équilibrage est important. Un facteur de capacité peut imposer une contrainte stricte : chaque expert ne peut traiter que
requêtes au maximum par lot. Le rapport ST-MoE indique que des valeurs de comprises entre et fonctionnent bien en pratique[28].
Routage
Dans le mélange d'experts parcimonieux d'origine, seuls les experts les mieux classés sont interrogés et leurs sorties sont additionnées avec pondération. D'autres méthodes existent[28]. Le routage est un problème d'affectation : il s'agit d'associer les jetons aux experts tout en respectant différentes contraintes, notamment le débit de calcul et l'équilibrage de charge.
On distingue généralement trois familles :
- les experts choisissent les jetons (expert choice) ;[29]
- les jetons choisissent les experts, comme dans le mélange parcimonieux d'origine ;
- un algorithme global apparie experts et jetons[30].
Lors de l'inférence, un mélange d'experts traite simultanément un grand lot de jetons. Si les jetons choisissent les experts, certains experts peuvent recevoir très peu de jetons tandis que d'autres dépassent leur capacité maximale, ce qui oblige à ignorer une partie des jetons. Inversement, lorsque les experts choisissent les jetons, certains jetons peuvent n'être sélectionnés par aucun expert. Ce phénomène est appelé « abandon de jetons » (token drop). Dans un transformeur, il n'est pas nécessairement catastrophique : en raison des connexions résiduelles, un jeton abandonné ne disparaît pas ; sa représentation traverse simplement la couche à propagation avant sans modification[30].
D'autres méthodes traitent le routage comme un problème de programmation linéaire sous contraintes[31], ou utilisent l'apprentissage par renforcement pour apprendre l'algorithme de routage, le choix d'un expert étant une action discrète[32]. L'appariement peut aussi ne comporter aucun apprentissage : ce « routage statique » repose alors sur une fonction de hachage déterministe[33] ou sur un générateur aléatoire[34].
Applications aux transformeurs
Les couches MoE sont employées dans les plus grands modèles transformeurs, pour lesquels entraîner et exécuter l'ensemble des paramètres serait trop coûteux. Elles sont généralement parcimonieuses, avec un ou deux experts activés par jeton. Dans les transformeurs, les couches MoE servent souvent à remplacer ou sélectionner les couches à propagation avant, généralement de type linéaire–ReLU–linéaire, situées après l'attention multi-têtes dans chaque bloc. Ces couches représentent une part croissante du coût de calcul lorsque la taille des modèles augmente. Dans PaLM-540B, par exemple, environ 90 % des paramètres appartiennent aux couches à propagation avant[35].
Un transformeur dense déjà entraîné peut être converti en mélange d'experts en dupliquant ses couches à propagation avant, en initialisant aléatoirement le routeur, puis en poursuivant l'entraînement. Cette technique est appelée sparse upcycling[36].
Les transformeurs MoE présentent de nombreux choix de conception influant sur la stabilité de l'entraînement et les performances finales. Le rapport OLMoE en propose une analyse détaillée[37].
À partir de 2023, les modèles suffisamment grands pour recourir à des mélanges d'experts sont le plus souvent de grands modèles de langage, chaque expert pouvant comporter de l'ordre de dix milliards de paramètres. La méthode a aussi été appliquée à la vision : Vision MoE[38] est un transformeur doté de couches MoE, dont une version à 15 milliards de paramètres a été entraînée. Des transformeurs MoE ont également été employés dans des modèles de diffusion[39].
Plusieurs grands modèles de langue de Google reposent sur cette architecture. GShard[40] active jusqu'à deux experts par couche. Le premier expert est toujours sélectionné, tandis que le second l'est avec une probabilité proportionnelle au poids que lui attribue le routeur. GLaM[41] a ensuite atteint 1,2 billion de paramètres, chaque couche MoE activant deux experts parmi 64. Les Switch Transformers n'en activent qu'un seul.
NLLB-200, développé par Meta AI, est un modèle de traduction automatique couvrant 200 langues[42]. Chaque couche MoE utilise une hiérarchie à deux niveaux. Au premier niveau, le routeur choisit entre une couche à propagation avant partagée et un ensemble d'experts. Dans ce second cas, un autre routeur calcule les poids et sélectionne les deux meilleurs experts[43].
Les grands modèles de langue MoE peuvent être adaptés à des tâches en aval au moyen de l'ajustement par instructions[44].
En décembre 2023, Mistral AI publie Mixtral 8x7B sous licence Apache 2.0. Ce modèle de langue MoE comporte 46,7 milliards de paramètres, huit experts et une parcimonie de deux experts actifs par jeton. Une version ajustée pour le suivi d'instructions est également publiée[45],[46].
En mars 2024, Databricks publie DBRX, un modèle MoE de 132 milliards de paramètres, comportant seize experts et une parcimonie de quatre experts actifs. Une version ajustée pour le suivi d'instructions est également proposée[47],[48].
Voir aussi
- Produit d'experts
- Modèle de mélange
- Modèle de mélange gaussien
- Apprentissage ensembliste
- Réseau neuronal modulaire