Histoire de l’IA

Qu’est-ce qu’un modèle à mélange d’experts?

· Par Robert Scales · 5 min de lecture

Réponse courte

Un modèle à mélange d’experts divise une partie de chaque couche en plusieurs sous-réseaux plus petits, appelés experts, et utilise un petit routeur pour envoyer chaque jeton à quelques-uns d’entre eux seulement. Le modèle peut contenir un très grand nombre de paramètres tout en n’effectuant qu’une fraction du calcul pour chaque jeton, comme le montre Mixtral 8x7B de Mistral, avec deux experts sur huit actifs à la fois.

La plupart des modèles de langage sont « denses » : chaque partie du réseau travaille pour chaque jeton, le petit morceau de texte que le modèle traite à chaque étape. Un modèle à mélange d’experts (mixture of experts), souvent abrégé MoE, est plutôt « clairsemé ». Il contient de nombreux sous-réseaux parallèles, mais n’en active que quelques-uns pour un jeton donné. Cette idée permet à un modèle d’en savoir plus sans ralentir chaque étape.

L’approche n’est pas nouvelle. En 2017, une équipe de Google Brain dirigée par Noam Shazeer a décrit une couche à mélange d’experts « à portes clairsemées », comptant jusqu’à des milliers de sous-réseaux experts et une porte entraînable qui en choisissait quelques-uns pour chaque entrée. Ce qui a changé, c’est qu’un modèle diffusé ouvertement montre maintenant que l’idée fonctionne bien à une taille que beaucoup de développeurs peuvent réellement utiliser : Mixtral 8x7B, lancé par Mistral AI en décembre, avec un article technique complet publié le 8 janvier.

Une analogie avec une cuisine de restaurant

Imaginez un restaurant achalandé. Dans une cuisine « dense », chaque cuisinier touche à chaque commande : le pâtissier, le cuisinier au gril et le saucier s’occupent tous de votre salade. Ça fonctionne, mais c’est lent, et la cuisine ne peut pas grandir sans que chaque commande prenne plus de temps.

Dans une cuisine à mélange d’experts, il y a huit cuisiniers à chaque poste, et un chef au passe jette un coup d’œil à chaque commande et appelle les deux cuisiniers les mieux placés pour s’en occuper. Leur travail est combiné, pondéré selon la confiance du chef envers chacun, et l’assiette passe au poste suivant, où un autre chef fait un nouveau choix. La cuisine emploie beaucoup de cuisiniers, mais chaque commande ne coûte que le temps de deux d’entre eux à chaque poste.

L’analogie a une limite importante. Dans Mixtral, les « cuisiniers » ne sont pas nettement spécialisés par sujet. Les auteurs de l’article ont vérifié si certains experts s’occupaient des mathématiques, de la biologie ou de la philosophie et n’ont trouvé aucune tendance évidente. Le routage semblait suivre la structure du texte plus que son sujet, par exemple en envoyant l’indentation du code ou un mot comme self en Python aux mêmes experts.

Comment cela fonctionne dans un Transformer

Une couche de Transformer a deux parties principales : l’attention, qui permet aux jetons de partager le contexte, et un bloc à propagation avant, un petit réseau qui traite chaque jeton séparément. Dans Mixtral, chaque couche garde une seule partie d’attention commune, mais remplace l’unique bloc à propagation avant par huit blocs experts.

Un routeur (aussi appelé réseau de porte) est une petite couche apprise qui donne à chaque expert un score pour le jeton en cours. Mixtral garde les deux scores les plus élevés, les transforme en poids dont la somme est égale à un, fait tourner seulement ces deux experts et mélange leurs résultats. Cela se produit séparément à chacune de ses 32 couches, de sorte qu’un même jeton peut passer par des paires d’experts différentes au fil de sa montée.

Un tableau de routage par l’exemple

Le tableau montre à quoi pourrait ressembler le routage d’une courte phrase dans une couche. Les numéros d’experts et les poids sont illustratifs, et non tirés du vrai modèle.

JetonExperts choisis (sur 8)PoidsExperts inactifs
The2, 50,62 / 0,386 sur 8
oven1, 50,55 / 0,456 sur 8
is2, 70,70 / 0,306 sur 8
hot1, 50,51 / 0,496 sur 8

Deux choses ressortent. Chaque jeton n’utilise que deux des huit experts, alors la plus grande partie de la couche reste inactive pour ce jeton. Et les jetons voisins réutilisent souvent les mêmes experts, une tendance que l’article sur Mixtral dit observer aussi dans du vrai texte.

À essayer : prenez une phrase de huit mots et jouez le rôle du routeur. Donnez-vous quatre experts imaginaires et, pour chaque mot, choisissez-en deux et attribuez-leur des poids dont la somme est égale à 1. Comptez ensuite combien de « passages » d’experts vous avez utilisés, comparativement à faire tourner les quatre chaque fois. Ce rapport est l’essentiel de l’économie.

Pourquoi rend-il les grands modèles moins coûteux à faire tourner?

Le coût de production de chaque jeton dépend surtout du nombre de paramètres (les nombres appris à l’intérieur du modèle) réellement utilisés dans le calcul. Mixtral compte environ 47 milliards de paramètres au total, mais comme seulement deux experts par couche tournent pour chaque jeton, seulement 13 milliards environ sont actifs à la fois. Mistral affirme que cela lui permet de fonctionner à la vitesse et au coût d’un modèle d’à peu près cette taille plus petite, tandis que son article rapporte des résultats qui égalent ou dépassent ceux de Llama 2 70B, un modèle dense qui utilise ses 70 milliards de paramètres pour chaque jeton.

Il y a un hic, et l’article le dit clairement. La mémoire, elle, ne diminue pas. Les huit experts de chaque couche doivent être chargés, alors le matériel doit contenir les 47 milliards de paramètres au complet, même si chaque jeton n’en utilise qu’une partie. Le routeur ajoute aussi un certain surcoût, et les économies sont les plus importantes quand un serveur traite de nombreuses requêtes à la fois, de sorte que le travail se répartit également entre les experts.

« Moins coûteux » veut donc dire moins coûteux en calcul par jeton, pas plus facile à faire tenir sur une petite machine. Pour les entreprises qui servent beaucoup d’utilisateurs, ce compromis est intéressant : elles paient une fois pour la mémoire et économisent du calcul sur chaque jeton. Pour quelqu’un qui fait tourner un modèle à la maison, l’exigence en mémoire est généralement la limite à vérifier en premier.

Sources

  1. Mixtral of Experts — Albert Q. Jiang et al., Mistral AI (arXiv), 8 janvier 2024
  2. Mixtral of experts — Mistral AI, 11 décembre 2023
  3. Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer — Noam Shazeer et al., Google Brain (arXiv), 23 janvier 2017

Recevez gratuitement le Guide de l’intelligence artificielle

Abonnez-vous à l’infolettre hebdomadaire et recevez le guide gratuit : ce qui a changé en IA cette semaine, une leçon, un prompt à essayer. Désabonnement en un clic.

Ce que nous faisons de votre adresse

Retour en haut

Affichage

Vos choix sont enregistrés dans ce navigateur seulement. Aucune donnée n’est transmise.

Taille du texte
100 %
Couleurs
Lecture
Autres réglages
Déclaration d’accessibilité