MoE : plus rapides & plus puissants, les nouveaux rois des LLMs !

Dans cet article, nous introduisons une nouvelle forme d'architecture de LLM : les Mixture Of Experts. Les MoEs rendent les LLMs plus performants et moins chers, nous expliquerons aussi pourquoi, ils ne sont pas le meilleur choix pour tous les cas d’usages.

05/02/2024

Bastien Zimmermann
R&D Engineer
R&D

Tous les articles

Sommaire

À télécharger

Introduction

Afin de suivre l’évolution de l’intelligence artificielle, nous nous sommes tournés vers les benchmarks de LLMs pour prendre la température de quels LLMs sont dominants. Commençant par le benchmark le plus connu, l'Open LLM leaderboard on s’aperçoit immédiatement que le top 10 est envahi par une ribambelle de modèles comportant “MoE” dans leurs noms ?!

À la recherche d'une validation de cette tendance, nous nous tournons vers le Chatbot Arena Benchmark, reconnu comme la référence pour évaluer le meilleur modèle de langage global. Ici encore, le top 10 est envahi de MoEs ! En effet, GPT4 est soupçonné d’en être un, il est accompagné du modèle de Mistral, Mixtral (Mix indiquant son architecture MoE).

Face à cette invasion, il devient essentiel d’introduire ce que sont les MoE ainsi qu’expliquer le gain de performance qui vient de leur utilisation.

Mixture of Experts (MOE): les attentes

A priori, les mixtures of experts semblent être une solution fabuleuse qui nous promet :

  • De meilleures performances,
  • Un entrainement du modèle plus rapide (et donc moins couteux),
  • Des couts d’inférences significativement plus faibles.

Mais qu’est-ce qu’un MoE ?

Commençons par expliquer comment est-il possible d’améliorer les performances d’un LLM ? Un pratiquant du machine learning  ayant assisté à l’ascension historique du deep learning commencera par augmenter la simple quantité de paramètres de notre modèle. Les Mixtures of Experts est une manière plus raffinée de faire cela.

Architecture du mixture of Experts

Qu’est-ce qu’un expert ? Il s’agit simplement d’un réseau de neurones avec des poids uniques appris indépendamment.

La deuxième brique composant l’essence des mixtures of experts est le routeur :

Le routeur prend en entrée les tokens donnés au modèle et les redirige vers le ou les experts les plus appropriés. C’est un détail important, chaque token (~mot) peut passer par un expert différent. Les résultats des différents experts sont ainsi agrégés et normés pour former la sortie du modèle.

Plus formellement, le routeur est un modèle appris ($G$) et on peut représenter le fonctionnement du MoEs par l’équation suivante (avec $E_i$ les réseaux experts):

$$y = \sum_{i=1}^{n}{G(x)_iE_i(x)}$$

Une fonction de gating qui pourait etre choisie est le Softmax. Une autre exemple est la fonction de gating de Mixtral qui y ajoute une fonction $TopK$ ne garde que les K meilleurs experts pour chaque token (le $SwiGlu_i$ représentant les réseaux experts.) :

$$y = \sum_{i=0}^{n-1}{Softmax(TopK(x\cdot W_g}))_i \cdot SwiGlu_i(x)$$

Le cas des transformers

Un détail important que nous avons omis jusqu’ici est que les MoE que nous avons mentionnés en introduction sont présents dans des architectures de Transformers et cela introduit quelques nuances.

Les experts et leur mécanisme de routeur sont introduits à la place des blocs feed-forward de l’architecture transformers. La couche d’attention est partagée (Pour les moins matheux, c’est ce qui explique de Mistral 8x7b est en réalité un modèle 47b et non 56b). Avec cela, on constate aussi que les experts de chaque bloc de Transformers sont différents.

Les MoEs : Pourquoi sont-ils meilleurs ?

  • L'inférence/pré-entraînement plus efficace

Les MoEs sont le moyen d’avoir des paramètres en plus “gratuitement”. En effet, le mécanisme Top-k nous assure que la plupart des experts ne sont pas utilisés, ainsi à l’inférence, nous n’utilisons qu’une fraction des paramètres. Cette fraction optimisée grâce au mécanisme du routeur qui lui aussi est entrainé.

  • L’entrainement est moins cher.

L’entrainement des MoEs est plus efficace. En effet, en divisant les paramètres entre différents experts, on réduit énormément le nombre de gradients à calculer. L’entrainement convergera donc plus vite et cela représente une économie de calcul et donc de temps ainsi que d’argent !

Y-a-t-il une spécialisation des experts ?

Selon la perception commune, un expert est une personne compétente dans un domaine particulier. En est-il de même pour nos experts MoEs ?

Les experts ne sont pas des experts thématiques, comme notre intuition pourrait nous l’indiquer. En effet, il n’y a pas d’expert qui se reçoit une charge significativement supérieure à un autre sur un sujet du dataset The Pile donné. La seule exception étant pour “DM Mathematics” ce qui semble pointer vers une spécialisation de nature syntaxique.

Jiang et al. Mixtral of Experts.

Cependant, il semble aussi que certains experts soient spécialisés dans le traitement de certains tokens, comme les tokens de ponctuation ou bien ceux de conjonctions. Cependant, ces résultats de spécialisation restent l’exception, les résultats du tableau suivant sont choisis parmi d’autres exemples sans une spécialisation sémantique ou syntaxique claire.

Zoph et al. ST-MOE: DESIGNING STABLE AND TRANSFERABLE SPARSE EXPERT MODELS

Les inconvénients des MoEs

Les modèles MoEs, au-delà de leur nature différente, ont un comportement différent des modèles classique lorsque l’on veut faire du fine-tuning. En effet, les MoEs sont plus susceptibles à l’overfitting. En règle générale, plus le nombre d’experts est faible, plus il sera facile de fine-tune notre modèle. Il y a cependant des exceptions comme pour le dataset TriviaQA pour lequel le fine-tune MoE excelle.

Même si les MoEs n’utilisent qu’une fraction de leurs paramètres, il est néanmoins nécessaire de charger le modèle et tous ses experts en mémoire. Il faut donc avoir des machines possédant un VRAM (vidéo RAM) pour pouvoir faire le choix des MoEs.

De cette particularité pointe qu’il faut choisir un MoEs si l’on dispose suffisamment de VRAM et que l’on nécessite un débit important à l’inférence. Dans le cas contraire, un modèle dense (par opposition à MoEs) sera plus approprié.

Conclusion

Les Mixtures of Experts sont un moyen simple d’augmenter les performances des LLMs, le tout avec un cout d’apprentissage plus faible ainsi qu’un cout d’inférence réduit. Cependant, cette architecture vient avec ses propres défis. De tels modèles requièrent des ressources supplémentaires en mémoire (VRAM) pour pouvoir charger le modèle et à cela s’ajoute une perte d’adaptabilité du modèle qui est à priori plus difficilement fine-tunable.

En résumé, les Mixtures of Experts marquent une avancée majeure, offrant des meilleures performances, néanmoins, ils exigent des investissements conséquents en matériel et en expertise pour être pleinement exploités.

References

Une plateforme compatible avec tout l’écosystème

aws
Azure
Google Cloud
OVH Cloud
scikit-lean
PyTorch
Tensor Flow
XGBoost
jupyter
PC
Python
R
Rust
mongo DB