Mélange D'Experts (MoE) : Détails Des Architectures Et Applications De Mixtral 8X7B, DBRX Et Deepseek-V2
Découvrez en profondeur l’architecture et le fonctionnement des modèles à mélange d’experts (MoE) et explorez les applications et avantages de modèles MoE populaires tels que Mixtral 8X7B, DBRX et Deepseek-v2. Implémentez un modèle MoE en Python et évaluez sa performance dans des tâches telles que le raisonnement logique, le résumé et l’extraction d’entités.
Le concept de modèle à mélange d’experts (MoE) fait sensation depuis un certain temps dans le domaine des grands modèles de langage (LLM). Non seulement il améliore considérablement l’efficacité et l’évolutivité des modèles, mais il offre aussi de nouvelles approches pour traiter des tâches complexes. En termes simples, un modèle MoE divise un large modèle en plusieurs petits modèles, chacun se concentrant sur une tâche ou un type de données spécifique. Ainsi, lors du traitement d’une tâche, le modèle n’active que les “experts” concernés, économisant ainsi considérablement les ressources informatiques.
Dans cet article, vous allez :
- Comprendre l’architecture de base et le fonctionnement des modèles MoE
- Découvrir quelques modèles MoE populaires comme Mixtral 8X7B, DBRX et Deepseek-v2
- Implémenter un modèle MoE en Python sur Google Colab
- Évaluer la performance d’un modèle MoE typique dans des tâches de raisonnement logique, de résumé et d’extraction d’entités
- Explorer les avantages et défis des modèles MoE dans des tâches complexes telles que le traitement du langage naturel et la génération de code
1 Qu’est-ce qu’un modèle à mélange d’experts (MoE) ?
Les modèles d’apprentissage profond actuels sont principalement basés sur les réseaux de neurones artificiels, composés de plusieurs couches, chacune contenant de nombreux “neurones”. Chaque neurone traite les données d’entrée, effectue des calculs basiques (comme les fonctions d’activation), puis transmet le résultat à la couche suivante. Des modèles plus avancés comme le Transformer introduisent un mécanisme d’auto-attention capable de capturer des motifs complexes dans les données.
Cependant, dans les modèles denses traditionnels, l’ensemble du réseau contribue au calcul de chaque entrée, ce qui engendre des coûts computationnels extrêmement élevés. Pour y remédier, les modèles Mixture of Experts (MoE) adoptent une architecture éparse, n’activant que les parties du réseau pertinentes pour la tâche en cours, ou les “experts”. De cette manière, les modèles MoE consomment nettement moins de ressources informatiques pour traiter des tâches complexes comme le traitement du langage naturel.
Imaginez un projet d’équipe où les membres sont divisés en groupes, chaque groupe se concentrant sur une tâche différente. Le fonctionnement d’un modèle MoE est similaire. Il divise un problème complexe en plusieurs sous-tâches, chacune étant gérée par des “experts” dédiés.
Les principaux avantages des modèles MoE sont :
- Vitesse de pré-entraînement accélérée : Par rapport aux modèles denses traditionnels, les modèles MoE sont plus efficaces lors du processus de pré-entraînement.
- Vitesse d’inférence améliorée : Même avec un nombre de paramètres identique, un modèle MoE offre une vitesse d’inférence plus rapide.
- Exigences élevées en VRAM : Tous les experts doivent être stockés simultanément en mémoire, d’où une demande en VRAM relativement grande pour les modèles MoE.
Un modèle MoE est constitué de deux composants clés : les experts, petits réseaux neuronaux se concentrant sur des tâches spécifiques, et un routeur, qui active sélectivement les experts pertinents à partir des données d’entrée. Cette activation sélective améliore l’efficacité en n’utilisant que les experts nécessaires pour chaque tâche.
2 Quelques modèles MoE typiques
Ces dernières années, les modèles MoE ont suscité un vif intérêt dans la recherche en IA en raison de leur capacité à conserver des performances élevées tout en étendant efficacement les grands modèles de langage. Parmi ceux-ci, Mixtral 8x7B est un exemple typique reposant sur l’architecture à mélange d’experts épars. Ce modèle active seulement un sous-ensemble de ses experts pour chaque entrée, améliorant ainsi l’efficacité tout en réalisant des performances comparables à celles d’un modèle dense massif.
Voyons quelques modèles MoE populaires et testons-les en Python sur Google Colab avec Ollama pour apprécier leur potentiel.
2.1 Mixtral 8X7B
L’architecture de Mixtral 8X7B repose sur un Transformer uniquement avec décodeur. Le modèle traite les entrées sous forme de séries de tokens, convertis en vecteurs puis traités via les couches de décodeur. Le résultat est une probabilité que chaque position soit remplie par un mot, permettant ainsi un remplissage et une prédiction de texte.
Chaque couche de décodeur se compose principalement de deux parties clés : un mécanisme d’attention pour capturer des informations contextuelles, et une section à mélange d’experts épars (SMOE) pour traiter individuellement chaque vecteur de mot. La couche MLP constitue le principal poste de dépense en ressources informatiques. SMOE offre de nombreux “experts”, et pour chaque entrée, seul le résultat pondéré des experts les plus pertinents est retenu, permettant à la couche SMOE d’apprendre des modèles complexes avec un coût de calcul réduit.
Caractéristiques clés du modèle :
- Nombre total d’experts : 8
- Nombre d’experts activés : 2
- Nombre de couches de décodeur : 32
- Taille du vocabulaire : 32000
- Taille d’embedding : 4096
- Taille par expert : 5,6 milliards de paramètres, au lieu de 7 milliards. Les autres paramètres (7 milliards - 5,6 milliards) proviennent de composants partagés comme les couches d’embedding, de normalisation et le mécanisme de porte.
- Total des paramètres activés : 12,8 milliards
- Longueur du contexte : 32k tokens
Lors du chargement du modèle, tous les 44,8 milliards (8*5,6 milliards de paramètres) doivent être chargés (ainsi que tous les paramètres partagés), mais seuls 2×5,6 milliards (12,8 milliards) de paramètres sont nécessaires pour l’inférence.
Mixtral 8x7B excelle dans de nombreux domaines tels que la génération de texte, la compréhension, la traduction, le résumé, l’analyse de sentiment, l’éducation, les services à la clientèle automatisés, et l’assistance à la recherche. Son architecture efficace en fait un outil puissant pour divers champs d’application.
2.2 DBRX
Développé par Databricks, DBRX est un modèle de langage de grande taille (LLM) basé sur un décodeur Transformer, entraîné pour prédire le prochain token. Il utilise une architecture de mélange d’experts (MoE) à granularité fine avec un total de 132 milliards de paramètres, et 36 milliards de paramètres activés pour chaque entrée. Il a été pré-entraîné sur 12 000 milliards de données textuelles et de code. Comparé à d’autres modèles MoE open source (comme Mixtral et Grok-1), DBRX se distingue par une granularité plus fine et l’utilisation de plus petits experts. DBRX utilise 16 experts, en choisissant 4, contre 8 experts pour Mixtral et Grok-1, qui choisissent 2.
Caractéristiques clés de l’architecture :
- Experts à granularité fine : Au lieu de simplement dupliquer les couches FFN pour créer plusieurs experts lors de la transition vers une couche MoE, l’objectif avec des experts à granularité fine est de créer davantage d’experts sans augmenter le nombre de paramètres. Pour ce faire, une seule couche FFN peut être divisée en multiples segments, chaque segment se comportant comme un expert distinct. DBRX adopte ce type d’architecture MoE, avec 16 experts parmi lesquels 4 sont sélectionnés pour chaque entrée.
- Le modèle applique aussi d’autres innovations comme le codage de position rotatif (RoPE), les unités linéaires avec engorgement (GLU) et l’attention de requête groupée (GQA).
Caractéristiques clés du modèle :
- Nombre total d’experts : 16
- Nombre d’experts activés par couche : 4
- Nombre de couches de décodeur : 24
- Total des paramètres activés : 36 milliards
- Nombre total de paramètres : 132 milliards
- Longueur du contexte : 32k tokens
Le modèle DBRX est particulièrement performant dans des cas d’échelle tels que la génération de code, la compréhension fine du langage, le raisonnement mathématique et les tâches de programmation, notamment dans des scénarios exigeant efficacité et précision, comme la génération de snippets de code, la résolution de problèmes mathématiques, et la fourniture d’explications détaillées pour des prompts complexes.
2.3 Deepseek-v2
Dans l’architecture MoE de Deepseek-v2, deux idées essentielles sont mises à profit :
- Experts à granularité fine : Convient à une spécialisation plus avancée des experts et à un accès plus précis aux connaissances.
- Experts partagés : Cette méthode vise à désigner certains experts comme des experts partagés, garantissant leur activation continuelle. Cette stratégie aide à rassembler et à synthétiser des connaissances universelles pertinentes à travers divers contextes.
Caractéristiques clés du modèle :
- Nombre total de paramètres : 236 milliards
- Total des paramètres activés : 21 milliards
- Nombre d’experts par couche routée : 160 (dont 2 sont choisis)
- Nombre d’experts partagés par couche : 2
- Nombre d’experts activés par couche : 8
- Nombre de couches de décodeur : 60
- Longueur du contexte : 128k tokens
Le modèle a été pré-entraîné sur un large ensemble de données comptant 81 000 milliards de tokens.
DeepSeek-V2 est particulièrement adapté pour les conversations, ce qui en fait un bon choix pour les chatbots et les assistants virtuels. Le modèle peut générer du texte de haute qualité et est donc approprié pour la création de contenu, la traduction linguistique, et le résumé. Il est également bien adapté pour des cas d’utilisation générant du code.
3 Implémenter un modèle MoE avec Python
Les modèles MoE représentent une avancée majeure en apprentissage machine, sélectionnant dynamiquement différents réseaux d’experts pour traiter diverses tâches. Voici comment implémenter un modèle MoE en Python et explorer sa puissance.
3.1 Étape 1 : Installer les bibliothèques Python nécessaires
D’abord, il est nécessaire d’installer quelques bibliothèques Python essentielles :
|
|
3.2 Étape 2 : Activer les threads
Ensuite, utilisez threading pour faire fonctionner le service Ollama :
|
|
3.3 Étape 3 : Récupérer le modèle Ollama
Récupérez un modèle Ollama, tel que DBRX :
|
|
3.4 Étape 4 : Interroger le modèle
Testez le modèle et voyez comment il se comporte :
|
|
4 Performance Réelle du Modèle Mixtral 8x7B
Lors de la comparaison des sorties des différents modèles MoE, nous pouvons analyser leurs différences sur des tâches telles que le raisonnement logique, le résumé et l’extraction d’entités.
Problème de Raisonnement Logique
|
|
Sortie :
|
|
Comme on peut le voir dans la sortie ci-dessus, tous les mots de la réponse n’ont pas 9 lettres. Sur les 13 mots, seuls 8 ont 9 lettres. Ainsi, la réponse est partiellement correcte.
Problème de Résumé
|
|
Sortie :
|
|
La sortie ci-dessus montre que la réponse est bien résumée.
Extraction d’Entités
|
|
Sortie :
|
|
La sortie ci-dessus montre que toutes les valeurs et unités ont été correctement extraites.
Problème de Raisonnement Mathématique
|
|
Sortie :
|
|
La sortie du modèle est inexacte. La réponse correcte devrait être 2, car il reste 2 des 4 pommes après en avoir utilisé 2 pour la tarte.
5 Conclusion
Les modèles MoE offrent une méthode d’apprentissage profond efficace en n’activant que les experts pertinents pour chaque tâche. Cette activation sélective permet aux modèles MoE de réaliser des opérations complexes avec moins de ressources informatiques comparé aux modèles denses traditionnels. Cependant, les modèles MoE nécessitent des compromis, car ils demandent une grande quantité de VRAM pour stocker tous les experts.
L’architecture Mixtral 8X7B est un exemple typique. Elle utilise un mécanisme de mélange d’experts épars (SMoE) qui active uniquement un sous-ensemble d’experts pour réaliser un traitement de texte efficace, ce qui diminue considérablement le coût computationnel. Avec ses 12,8 milliards de paramètres activés et une longueur de contexte de 32k tokens, il performe bien dans diverses applications allant de la génération de texte à l’automatisation du service client. Le modèle DBRX de Databricks se distingue également par son architecture MoE innovante à granulométrie fine, permettant d’activer uniquement 36 milliards de paramètres lors de chaque entrée tout en utilisant un total de 1320 milliards de paramètres. De même, DeepSeek-v2 utilise des experts granulaires et partagés pour offrir une architecture puissante avec 2360 milliards de paramètres et une longueur de contexte de 128 000 tokens, ce qui le rend idéal pour des applications variées telles que les chatbots, la création de contenu et la génération de code.
5.1 Points Clés
- Les modèles MoE améliorent l’efficacité de l’apprentissage profond en n’activant que les experts pertinents pour des tâches spécifiques, réduisant l’utilisation des ressources informatiques par rapport aux modèles denses traditionnels.
- Bien que les modèles MoE offrent une efficacité computationnelle, ils requièrent une grande capacité de VRAM pour stocker tous les experts, soulignant un compromis clé entre la puissance de calcul et les besoins en mémoire.
- Mixtral 8X7B adopte un mécanisme de mélange d’experts épars (SMoE), activant un sous-ensemble des 12,8 milliards de paramètres pour un traitement de texte efficace et prise en charge d’une longueur de contexte de 32 000 tokens, le rendant applicable à diverses applications, y compris la génération de texte et l’automatisation du service client.
- Le modèle DBRX de Databricks utilise une architecture de mélange d’experts à grains fins, activant efficacement 36 milliards de paramètres à chaque entrée tout en exploitant 1320 milliards de paramètres au total, démontrant sa capacité à gérer des tâches complexes de traitement du langage.
- DeepSeek-v2 combine une stratégie d’experts granulaires et partagés, formant une architecture puissante avec 2360 milliards de paramètres et une longueur de contexte de 128 000 tokens, le faisant exceller dans des applications variées telles que les chatbots, la création de contenu et la génération de code.
6 Questions Fréquemment Posées
Q1. Qu’est-ce qu’un modèle à mélange d’experts (MoE) ?
A. Les modèles MoE utilisent une architecture éparse, n’activant que les experts les plus pertinents pour chaque tâche, réduisant ainsi l’utilisation des ressources informatiques comparé aux modèles denses traditionnels.
Q2. Quels sont les avantages et inconvénients de l’utilisation des modèles MoE ?
A. Bien que les modèles MoE améliorent l’efficacité computationnelle, ils requièrent une grande quantité de VRAM pour stocker tous les experts, nécessitant un compromis entre la puissance de calcul et les besoins en mémoire.
Q3. Combien de paramètres activés compte le modèle Mixtral 8X7B ?
A. Mixtral 8X7B compte 12,8 milliards (2×5,6 milliards) de paramètres activés, représentant une portion des 44,8 milliards au total (8×5,6 milliards de paramètres), le rendant capable de gérer efficacement des tâches complexes tout en offrant une inférence plus rapide.
Q4. En quoi le modèle DBRX diffère-t-il des autres modèles MoE, tels que Mixtral et Grok-1 ?
A. DBRX utilise une méthode de mélange d’experts à granularité fine avec 16 experts par couche et 4 experts activés, contrairement aux autres modèles MoE avec 8 experts par couche et 2 experts activés.
Q5. Comment DeepSeek-v2 se distingue-t-il parmi les autres modèles MoE ?
A. DeepSeek-v2 combine des experts granulaires et partagés ainsi qu’un ensemble de paramètres vastes et une longue longueur de contexte, en faisant un outil puissant pour une variété d’applications.