Découvrez comment l'architecture Mixture of Experts (MoE) permet d'augmenter la taille des réseaux de neurones sans exploser la charge de calcul, grâce à l'activation sélective des blocs experts. Ce guide détaillé explique le fonctionnement du router, les avantages et défis du MoE, et compare cette approche aux modèles denses classiques. Idéal pour comprendre l'avenir du passage à l'échelle des grands modèles de langage.
La MoE (Mixture of Experts) est une architecture de réseau de neurones où, au lieu d'utiliser l'intégralité du modèle pour traiter les données, seule une partie des blocs est activée. Ces blocs sont appelés experts. Pour chaque jeton, le système sélectionne les experts les plus appropriés et n'active que ceux-ci.
L'idée principale de MoE est d'augmenter le nombre de paramètres du réseau de neurones sans accroître proportionnellement la charge de calcul. Un modèle peut comprendre des dizaines, voire des centaines de milliards de paramètres, mais n'en mobiliser qu'une petite fraction pour générer un seul jeton. Ainsi, la taille du réseau et le coût réel des calculs ne progressent plus main dans la main.
Important : Mixture of Experts ne signifie pas que le modèle contient des sous-réseaux indépendants spécialisés (programmation, mathématiques, traduction, etc.). Les experts sont des blocs entraînables d'une même architecture, et un mécanisme spécial de routage se charge de répartir les données entre eux.
Dans un réseau dense traditionnel, chaque entrée traverse successivement les mêmes couches principales. Si le modèle possède un certain nombre de paramètres, la majorité des calculs correspondants est exécutée pour chaque jeton traité.
L'architecture Mixture of Experts fonctionne différemment. Certains niveaux, au lieu de comporter un seul bloc de calcul, se composent de plusieurs alternatives : les experts. Avant de traiter un jeton, le réseau détermine vers quel expert l'orienter. Les autres experts restent inactifs à ce moment-là.
Ce principe est appelé activation sparse (ou activation clairsemée). Le modèle lui-même reste complet : tous les paramètres existent et sont stockés en mémoire. La différence : seule une partie est utilisée simultanément.
Imaginons un niveau composé de huit experts. Plutôt que de faire passer chaque jeton par tous les experts, le système en sélectionne un ou deux. Le jeton suivant pourra être traité par d'autres experts. Résultat : le modèle dispose d'une grande capacité de calcul globale, mais n'a pas besoin de tout activer à chaque étape.
Il ne faut pas prendre le mot " expert " trop littéralement. Pendant l'entraînement, certains blocs peuvent se spécialiser dans certains types de représentations, mais les développeurs ne leur attribuent pas de rôles fixes comme " expert du code " ou " expert de l'anglais ". La spécialisation émerge automatiquement durant l'apprentissage.
C'est la combinaison d'un grand nombre de paramètres et d'un petit nombre de paramètres activés simultanément qui rend les réseaux MoE attractifs pour le passage à l'échelle. Mais cela nécessite un mécanisme distinct pour décider quels experts traiteront chaque jeton.
Dans la plupart des modèles MoE modernes, les experts ne remplacent pas l'intégralité du réseau de neurones. L'architecture repose souvent sur des blocs Transformer classiques, et le mécanisme MoE n'est intégré qu'à certains endroits du modèle.
Le plus souvent, MoE remplace le bloc feed-forward habituel. Dans un Transformer standard, chaque jeton, après l'Attention, passe par le même réseau dense. En MoE, ce bloc est remplacé par plusieurs experts alternatifs, dont une partie seulement est sélectionnée pour chaque jeton.
Un expert s'apparente à un petit réseau de neurones à l'intérieur d'une couche. Tous les experts partagent généralement une structure similaire, mais ont leurs propres paramètres. Ils reçoivent des données différentes durant l'apprentissage et commencent à transformer les entrées de façon distincte.
Dans un niveau MoE à huit experts, cela ne signifie pas que chaque jeton traverse tous les experts : seuls un ou deux peuvent être activés pour un jeton donné. Les autres restent inactifs pour ce jeton.
Au niveau suivant, la sélection peut changer. Un même jeton peut passer par différents experts à différentes étapes du réseau. Le chemin à l'intérieur du modèle est donc dynamique.
Pour sélectionner les bons experts, un router - petit mécanisme de routage entraînable - est utilisé. Il reçoit la représentation interne du jeton et attribue un score à chaque expert disponible.
Plus le score est élevé, plus l'expert est jugé pertinent pour traiter le jeton. Les un ou plusieurs experts les mieux notés sont alors activés pour ce jeton.
Le router n'applique pas des règles figées (" si code, alors expert 3 "). Il apprend, en même temps que le reste du réseau, à distribuer les données de manière optimale.
Les résultats des experts sélectionnés sont ensuite combinés et transmis à l'étape suivante. S'il y a plusieurs experts activés, leurs sorties peuvent être pondérées selon les scores du router.
Le nom Mixture of Experts pourrait laisser penser que chaque requête passe par un mini-modèle dédié, mais en réalité, la plupart de l'architecture reste partagée.
Les mécanismes d'Attention, la normalisation de couche, le traitement des jetons, et les autres composants du Transformer restent utilisés indépendamment du choix des experts. Seuls certains blocs de calcul sont activés dynamiquement.
Il en résulte un schéma hybride : certains paramètres fonctionnent pour chaque jeton, d'autres ne s'activent que lorsque le router leur confie des données. Cela permet au modèle MoE de conserver la structure générale du Transformer tout en augmentant nettement le nombre de paramètres sans tout activer simultanément.
Le choix des experts est fait séparément pour chaque jeton. Ainsi, même au sein d'une phrase, différents mots peuvent passer par différents blocs de calcul. Le réseau ne sélectionne pas un expert unique pour toute la requête : le chemin évolue au fil du traitement de la séquence.
Le jeton est d'abord converti en représentation numérique interne, puis transmis au router, qui évalue la pertinence de chaque expert. Les experts ayant les scores les plus élevés sont choisis.
Le processus peut être résumé ainsi : le jeton entre dans la couche MoE, le router évalue tous les experts, choisit les plus adaptés, leur transmet le jeton, puis combine les résultats pour la suite du réseau.
Le nombre d'experts recevant un jeton est généralement limité à l'avance. Le Top-K routing définit le nombre K d'experts activés.
D'autres valeurs de K existent, mais plus le nombre d'experts actifs augmente, plus l'avantage principal du MoE (l'économie de calculs) diminue. Il faut donc trouver un équilibre entre qualité et efficacité.
Le router décide en fonction de la représentation interne du jeton, pas seulement de sa valeur littérale. Un même jeton, selon le contexte, peut être dirigé vers différents experts.
Par exemple, un mot utilisé en conversation courante ou dans un code source pourra être traité différemment. Mais cela ne signifie pas que le modèle dispose d'un expert dédié à la programmation. Le routage se base sur les caractéristiques détectées par le réseau durant son apprentissage.
De plus, le choix est répété à chaque couche MoE. Un jeton peut passer par un expert au début et par un autre ensuite. Le chemin suivi par les données à travers le modèle MoE est donc une séquence de décisions dynamiques.
Le router est entraîné en même temps que les experts. Si un certain schéma de routage aide à réduire l'erreur du modèle, les paramètres évoluent pour que des représentations similaires soient orientées efficacement.
Mais il y a un risque : sans contraintes supplémentaires, le router peut favoriser systématiquement quelques experts. Certains blocs seraient alors surchargés, d'autres sous-utilisés et moins bien entraînés.
C'est pourquoi l'entraînement MoE inclut des mécanismes d'équilibrage de charge, qui incitent le router à répartir les jetons plus uniformément entre les experts.
Chaque expert peut aussi se voir imposer une limite de jetons à traiter simultanément, ce qui est crucial lors de l'entraînement de grands modèles sur plusieurs GPU, pour éviter les goulets d'étranglement dus à une répartition déséquilibrée.
Le principal avantage de la Mixture of Experts réside dans le fait que le nombre total de paramètres et le nombre de paramètres réellement utilisés pour traiter un jeton peuvent être très différents. Ainsi, un modèle MoE peut être immense sans nécessiter une augmentation proportionnelle des calculs.
Dans un modèle dense classique, presque tous les paramètres d'une couche participent à chaque calcul de jeton. Doubler la taille d'une couche double aussi les calculs nécessaires. En MoE, les paramètres sont répartis entre experts, dont seuls quelques-uns sont activés à la fois.
Exemple : un niveau MoE avec huit experts de taille identique et un routage Top-2. Le niveau possède tous les paramètres des huit experts, mais chaque jeton ne passe que par deux d'entre eux ; les six autres restent inactifs pour ce jeton.
Ainsi, le nombre total de paramètres peut croître beaucoup plus vite que le coût de traitement d'un jeton. Le modèle gagne en capacité de représentation sans surcharger la machine de calculs inutiles.
Il est donc crucial de distinguer la taille du modèle du nombre de paramètres actifs. Le nombre total (dizaines ou centaines de milliards) ne dit pas tout sur la puissance de calcul requise pour générer une réponse. Ce principe est détaillé dans cet article sur les paramètres des réseaux de neurones.
Les paramètres globaux sont tous les paramètres entraînables du modèle, stockés en mémoire et accessibles lors de l'exécution.
Les paramètres actifs sont ceux effectivement utilisés pour traiter un jeton donné. Dans un MoE, ils sont souvent bien moins nombreux car le router n'active qu'une partie des experts.
Par exemple, un modèle hypothétique compte 100 milliards de paramètres, mais n'en active que 20 milliards par jeton. Les 80 milliards restants peuvent servir à d'autres jetons ou couches - la totalité du modèle n'est jamais sollicitée d'un coup.
Ce principe permet d'accroître la capacité de calcul sans augmenter le nombre d'opérations à chaque jeton, ce qui rend le MoE particulièrement pertinent pour le passage à l'échelle des grands modèles linguistiques.
L'activation sparse présente une limite importante : les experts inactifs ne calculent rien, mais leurs paramètres doivent être stockés quelque part.
Un modèle de centaines de milliards de paramètres nécessite un accès matériel à toutes ces données, même si seule une fraction est utilisée à un instant donné. Les besoins en mémoire restent donc considérables.
Il est souvent impossible de loger tout le modèle sur un seul accélérateur. Les experts sont répartis entre plusieurs GPU ou dispositifs. Quand le router choisit un expert, il peut être nécessaire de transférer les données d'un accélérateur à un autre.
Une partie de la charge est ainsi transférée des calculs purs vers la gestion mémoire et le réseau entre accélérateurs. MoE ne rend donc pas automatique l'exploitation d'un immense réseau de neurones à moindre coût ou complexité.
Le routage lui-même nécessite des calculs : le router doit évaluer les experts disponibles, sélectionner les meilleurs et répartir correctement les jetons.
La situation se complique encore lors du traitement simultané d'un grand volume de requêtes. Un expert peut recevoir beaucoup plus de jetons que les autres, surchargeant un GPU tandis que d'autres sont peu utilisés.
Pour remédier à cela, on utilise des mécanismes d'équilibrage de charge, des limites de capacité des experts et des schémas de calcul distribués. L'efficacité réelle d'un MoE dépend donc de l'organisation du routage, de la mémoire et du transfert de données, pas uniquement du nombre de paramètres activés.
En résumé, le MoE permet principalement de réduire les calculs par jeton. Mais cela demande une architecture plus complexe, des besoins mémoire élevés et une gestion efficace d'un système distribué.
La différence entre MoE et un modèle dense classique ne se limite pas au nombre de paramètres. Les deux architectures exploitent différemment les ressources de calcul, la mémoire et l'évolutivité.
Dans un modèle dense, chaque jeton traverse les mêmes blocs de calcul. Dans un MoE, certains blocs sont remplacés par des groupes d'experts, et le router n'en active que quelques-uns. Ainsi, un MoE peut avoir bien plus de paramètres globaux pour une charge de calcul par jeton comparable.
| Caractéristique | Modèle dense | MoE |
|---|---|---|
| Paramètres globaux | Habituellement moins nombreux | Peuvent être beaucoup plus nombreux |
| Paramètres actifs | La majorité de la couche utilisée | Seule une partie des experts activée |
| Calculs par jeton | Croissent avec la taille du modèle | Croissent plus lentement que le nombre total de paramètres |
| Besoins en mémoire | Prévisibles | Peuvent être très élevés |
| Routage | Non requis | Router nécessaire |
| Répartition sur GPU | Relativement simple | Plus complexe à cause des experts |
| Équilibrage de charge | Généralement inutile | Essentiel pour l'efficacité |
L'activation sparse semble tentante, mais le choix d'architecture dépend de la tâche et de l'infrastructure disponible.
Un modèle dense est plus simple à lancer, à distribuer et à optimiser. Sa charge de calcul est plus prévisible, et l'absence de routage dynamique allège les échanges de données.
Pour les modèles de taille modérée, la complexité supplémentaire du MoE n'est pas toujours rentable. Plus la taille du réseau augmente, plus l'avantage de pouvoir ajouter des paramètres sans exploser le coût de calcul devient significatif.
Le MoE est donc particulièrement intéressant pour les très grands modèles, où chaque couche dense supplémentaire devient coûteuse. L'architecture sparse permet de continuer à passer à l'échelle, mais exige une gestion plus complexe de la mémoire, du réseau et de la charge.
Il faut voir la Mixture of Experts non comme un moyen de rendre le réseau " bon marché ", mais comme une nouvelle façon d'exploiter les paramètres : n'activer à chaque jeton que les blocs utiles à cet instant.
Le modèle MoE montre que la taille d'un réseau de neurones et la quantité de calculs n'ont pas forcément à croître de pair. L'architecture Mixture of Experts permet de stocker un très grand nombre de paramètres, mais d'en activer seulement quelques blocs experts pour chaque jeton.
C'est le router qui choisit ces blocs, évaluant la représentation interne du jeton et orientant vers les experts les plus adaptés. Grâce à l'activation sparse, le réseau gagne en capacité globale sans devoir tout utiliser en même temps.
Cependant, le MoE ne règle pas tous les défis d'infrastructure. Les paramètres des experts doivent toujours être en mémoire, et la distribution des jetons entre GPU ajoute de la complexité et des exigences d'équilibrage. L'efficacité dépend donc autant du nombre de paramètres que de la qualité du routage et de l'organisation technique.
Comparer MoE et modèles denses ne se limite pas à la taille annoncée du réseau. Il est plus pertinent de regarder le nombre de paramètres actifs par jeton, la charge de calcul, la consommation mémoire et les contraintes du calcul distribué. Ce sont ces indicateurs qui traduisent la complexité réelle et le coût d'utilisation d'un grand modèle.