- Mixtral 8x7B est un modèle SMoE (Sparse Mixture of Experts) qui conserve l’architecture de base de Mistral 7B tout en remplaçant les blocs feedforward de chaque couche par 8 experts, et il est publié en open weights sous licence Apache 2.0
- Pour chaque token, un routeur ne sélectionne que 2 experts sur 8 pour le calcul ; le modèle peut ainsi accéder à 47B de paramètres par token, tout en limitant à 13B les paramètres actifs à l’inférence
- Il a été entraîné avec une fenêtre de contexte de 32k tokens et a montré des performances supérieures ou comparables à Llama 2 70B et GPT-3.5 sur l’ensemble des benchmarks évalués, avec une force particulière en mathématiques, génération de code et tâches multilingues
- Mixtral 8x7B – Instruct est un modèle de chat entraîné au suivi d’instructions via fine-tuning supervisé et optimisation directe des préférences (DPO), et il surpasse GPT-3.5 Turbo, Claude-2.1, Gemini Pro et Llama 2 70B-chat en évaluation humaine
- L’architecture à experts clairsemés permet d’augmenter le nombre total de paramètres tout en maîtrisant le coût de calcul par token, ce qui laisse espérer une inférence plus rapide à faible batch size et un débit plus élevé à grande batch size
Modèles publiés et performances sur les benchmarks
- Mixtral 8x7B est un modèle open weights à mélange clairsemé d’experts (SMoE), disponible sous licence Apache 2.0 pour un usage académique et commercial
- Le modèle de base ainsi que Mixtral 8x7B – Instruct pour le suivi d’instructions ont été publiés ensemble
- Le code et une page web sont disponibles
- Sur plusieurs benchmarks, il dépasse Llama 2 70B et GPT-3.5 ou atteint un niveau équivalent
- Il montre de meilleures performances que Llama 2 70B sur les tâches nécessitant des mathématiques, de la génération de code et de la compréhension multilingue
- Il a été confirmé qu’il peut retrouver l’information dans une fenêtre de contexte de 32k tokens, quelle que soit sa position et la longueur de la séquence
Architecture à mélange clairsemé d’experts
- Mixtral est un transformer decoder-only qui remplace les blocs feedforward d’un transformer classique par des couches Mixture-of-Experts
- Dans chaque couche, le réseau de routage sélectionne 2 experts parmi 8 pour chaque token
- Les sorties des experts sélectionnés sont combinées par somme pondérée
- Le choix des experts peut varier à chaque pas de temps
- Un token peut accéder à 47B de paramètres, mais les paramètres actifs réellement utilisés à l’inférence sont de 13B
- Cette architecture vise à augmenter le nombre total de paramètres du modèle tout en contrôlant le coût de traitement par token et la latence
Mode de calcul des couches MoE
- La sortie du module MoE est calculée comme une somme pondérée des sorties des réseaux d’experts, avec des poids déterminés par le réseau de gating
- Si le vecteur de gating est clairsemé, il n’est pas nécessaire de calculer la sortie des experts dont la valeur de gate est nulle
- Mixtral applique softmax aux K logits les plus élevés de la couche linéaire
- K est un hyperparamètre qui détermine le nombre d’experts utilisés par token
- Dans Mixtral, K = 2
- En augmentant le nombre d’experts n tout en gardant K fixe, il est possible d’augmenter le nombre total de paramètres tout en maintenant pratiquement constant le coût de calcul par token
- Cela sépare donc le nombre total de paramètres clairsemés du nombre de paramètres actifs utilisés pour traiter chaque token
Implémentation et efficacité en inférence
- Les couches MoE peuvent être exécutées efficacement sur un seul GPU grâce à des kernels spécialisés
- Megablocks accélère l’exécution en représentant les opérations FFN des couches MoE comme une grande multiplication de matrices creuses, et gère aussi les cas où le nombre de tokens affectés à chaque expert varie
- Les couches MoE peuvent être distribuées sur plusieurs GPU via le parallélisme de modèle standard et le parallélisme d’experts (Expert Parallelism)
- Les tokens à traiter par un expert donné sont routés vers le GPU correspondant
- Les sorties des experts sont renvoyées à leur position de token d’origine
- En parallélisme d’experts, un équilibrage de charge est nécessaire afin de répartir uniformément le travail entre GPU
- Afin de pouvoir exécuter Mixtral sur une stack entièrement open source, une modification intégrant les kernels CUDA de Megablocks au projet vLLM a été proposée, et Skypilot prend en charge le déploiement d’endpoints vLLM sur des instances cloud
Modèle Instruct et caractéristiques d’évaluation
- Mixtral 8x7B – Instruct est un modèle de chat entraîné au suivi d’instructions via fine-tuning supervisé et optimisation directe des préférences (DPO)
- Sur les benchmarks d’évaluation humaine, il obtient de meilleures performances que GPT-3.5 Turbo, Claude-2.1, Gemini Pro et Llama 2 70B-chat
- Sur des benchmarks comme BBQ et BOLD, il présente moins de biais et un profil de sensibilité plus équilibré
- Grâce à son architecture clairsemée, on peut attendre une vitesse d’inférence plus élevée à faible batch size et un débit supérieur à grande batch size
- Il se distingue structurellement de GShard en ce qu’il remplace tous les sous-blocs FFN par des couches MoE, alors que GShard n’en remplace qu’une partie
1 commentaires
Avis sur Hacker News
Cet article détaille un modèle rendu public et utilisé depuis environ un mois. Mixtral 8x7B est vraiment excellent : il a grosso modo la taille d’un modèle 13B, mais il est évalué bien plus haut que les modèles de taille comparable dans des classements comme https://www.reddit.com/r/LocalLLaMA/comments/1916896/llm_com...
Ravenwolf a indiqué que ce modèle se comportait en pratique un peu mieux que ne le suggéraient certains benchmarks, et mon expérience va dans le même sens. Pour un modèle de cette taille, il est étonnamment bon, et largement suffisant pour un usage quotidien sur Mac en chat, en saisie de code et pour d’autres usages
Ce qui est apparu après la publication des poids, c’est qu’il est assez probable que les 8 experts aient tous été initialisés à partir de Mistral 7B, puis aient divergé ensuite. C’est pourquoi la communauté des LLM locaux mène beaucoup d’expériences consistant à cloner le modèle pour créer des experts à moindre coût
On pensait généralement qu’entraîner un réseau 8x7B demanderait autant de travail qu’entraîner huit réseaux 7B, mais il semble que ce n’ait pas été le cas pour Mistral, ce qui est très intéressant
Avec la publication continue d’articles comme Calm de DeepMind, et d’expériences combinant des couches à la volée comme Goliath-120b, il paraît très probable que l’on voie cette année des améliorations d’architecture assez intéressantes côté LLM. Calm semble indiquer l’étape suivante après les MoE, et des modèles comme Goliath montrent qu’une mise en œuvre très paresseuse de Calm — simplement alterner des couches entières de poids, sans combinaison linéaire des couches — peut déjà produire un effet important
Dans l’ensemble, en 2024, probablement dès le premier semestre, on devrait voir de puissants modèles tourner avec de bonnes performances sur du matériel grand public
Jusqu’ici, les principales plateformes grand public capables de le faire tourner sans quantification trop agressive au point de dégrader la qualité de sortie semblent être les Mac Apple Silicon récents avec mémoire unifiée, en général à partir de 48 Go. On dit que c’est possible aussi avec 32 Go ou 36 Go, mais il n’y a pas beaucoup de marge
Comme l’a souligné coder543, une configuration multi-GPU avec suffisamment de VRAM cumulée permettrait de l’exécuter sans recourir à une quantification plus destructrice
La contamination des jeux de données est un problème, mais ce n’est pas en demandant des astuces sur un subreddit et en évaluant les LLM de manière folklorique qu’on le résoudra
Ce qui ressort avec ce modèle, c’est que son nombre de paramètres utilisés est aussi bas que celui d’un 13B : il peut donc tourner de manière fluide et en haute qualité sur une 3090, tout en battant GPT-3.5 sur HumanEval et en offrant aussi un contexte de 32k
La 3090 est une carte grand public et courante dans les PC de gaming. J’aimerais que les développeurs de jeux commencent à expérimenter l’intégration de Mixtral déployé localement dans leurs jeux. Par exemple, dans un jeu comme Civilization, chaque dirigeant pourrait être piloté par un LLM
Sur mon M2 Pro, la vitesse de génération et l’intelligence me donnent l’impression d’utiliser GPT-3.5 Turbo. C’est le premier modèle que j’ai commencé à utiliser réellement à la place de GPT-3.5, au-delà du simple fait de jouer avec parce que la technologie est sympa
Un Apple M2 Pro avec 32 Go de RAM est dans la même gamme de prix qu’un PC de gaming équipé d’une 3090 ; c’est donc un autre exemple où des gens ordinaires disposant d’un système raisonnablement performant peuvent, « par hasard », faire tourner un modèle comparable à GPT-3.5
Si vous avez un appareil Apple qui remplit ces conditions et que vous voulez expérimenter, LLM Studio est open source et facilite la prise en main : https://lmstudio.ai/
J’espère que Mixtral et les modèles qui suivront encourageront beaucoup plus de bricolage expérimental
Pour cette somme, on peut acheter un PC complet ; j’ai donc du mal à croire qu’un GPU aussi cher soit « grand public » et « courant »
Existe-t-il des GPU adaptés aux LLM ou à d’autres IA génératives qui ne soient pas absurdement chers ? Ou bien des produits spécialement conçus pour l’IA plutôt que pour les graphismes de jeux ?
Par exemple, on peut demander à un acteur qui planifie à l’avance de répondre à trois éléments arbitraires parmi les 5W, tout en le laissant écrire librement dans les valeurs de chaîne JSON, afin de s’en servir ensuite comme contexte pour choisir dans un ensemble d’actions limité. Ou encore permettre au modèle de demander plus de temps de réflexion à la fin de sa réponse, mais l’obliger à indiquer l’action suivante s’il ne le demande pas
À mon avis, cela n’a pas d’impact sur la vitesse de génération et peut être utilisé de manière très créative. En revanche, si la sortie est tronquée, il peut être nécessaire de régénérer, et j’ai dû écrire une fonction séparée qui s’arrête dès qu’un objet JSON valide est fermé, ou lorsque plus de cinq sauts de ligne consécutifs sont générés. Cela peut varier selon les modèles
Si vous voulez essayer ce modèle, ce sera probablement l’une des versions distribuées par Mozilla/jart sous forme de Llamafile
chmod +x mixtral-8x7b-instruct-v0.1.Q5_K_M.llamafile./mixtral-8x7b-instruct-v0.1.Q5_K_M.llamafile[0] https://hacks.mozilla.org/2023/11/introducing-llamafile/
[1] https://github.com/Mozilla-Ocho/llamafile#quickstart
Sur Mac Silicon, c’est possible avec Ollama
https://ollama.ai/
ollama pull mixtralSi vous voulez une interface web façon ChatGPT : https://github.com/ollama-webui/ollama-webui
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v ollama-webui:/app/backend/data --name ollama-webui --restart always ghcr.io/ollama-webui/ollama-webui:mainIl suffit ensuite d’aller sur http://localhost:3000. Ollama peut aussi être utilisé avec LangChain
Articles récents liés
Mixtral of experts - https://news.ycombinator.com/item?id=38598559 - décembre 2023, 300 commentaires
Mistral-8x7B-Chat - https://news.ycombinator.com/item?id=38594578 - décembre 2023, 69 commentaires
Mistral "Mixtral" 8x7B 32k model [magnet] - https://news.ycombinator.com/item?id=38570537 - décembre 2023, 239 commentaires
Mixtral devance notamment largement Llama 2 70B sur les benchmarks de mathématiques, de génération de code et multilingues
Je suis curieux de voir ses performances en maths. Les maths ont toujours semblé être un point faible évident, et un domaine que personne n’a encore vraiment réussi à traiter efficacement
Je ne pense pas que de meilleurs LLM suffisent à « résoudre » ce problème ; cela ne sera probablement possible qu’avec des modèles multimodaux ayant accès à l’exécution de programmes et à des calculatrices
Je n’ai pas lu énormément d’articles sur les LLM, mais je trouve que celui-ci est assez faible, avec peu de détails. Je parle bien de l’article lui-même, pas des résultats du LLM
S’il était arrivé sur mon bureau pour relecture, je l’aurais probablement renvoyé rien que pour cette raison. Par exemple, il n’explique pas vraiment comment les experts ont été entraînés ni quels jeux de données ont été utilisés
Est-ce la norme actuelle dans ce domaine ?
Le code et l’architecture étant faciles à reproduire, toute organisation disposant de suffisamment d’argent peut « facilement » créer un modèle concurrent
OpenAI a lancé cette tendance, puis l’a entérinée avec le « rapport technique » de GPT-4, qui ne précisait même pas le nombre de paramètres du modèle. Concernant les jeux de données, ils étaient déjà flous depuis bien plus longtemps
Je ne suis pas du tout spécialiste des LLM, mais ce serait intéressant, notamment de savoir comment les différents paramètres d’entraînement influencent les performances
Je me demande quand des modèles multimodaux accessibles publiquement commenceront à apparaître
Les progrès des modèles uniquement textuels ont été impressionnants, mais beaucoup des comportements « émergents » de GPT-4 pourraient être dus non seulement au MoE ou au nombre de paramètres, mais aussi à l’apprentissage multimodal
Je me demande si l’on observera un bond similaire avec des modèles multimodaux plus petits
Meta a aussi publié, sous licence non commerciale, un modèle multimodal reliant 6 modalités : https://ai.meta.com/blog/imagebind-six-modalities-binding-ai...
Les poids du modèle étant sous licence non commerciale, ce n’est apparemment pas vraiment de l’open source, mais cela correspond bien à « l’accès public » demandé
Ce serait bien que quelqu’un entraîne from scratch un modèle compatible avec CogVLM sous licence open source
Je me demande si l’on peut exécuter ce modèle avec les outils LLM de Simon Willison. Je n’ai pas trouvé de mention de Mixtral dans les issues ni les discussions
À part ça, existe-t-il un moyen simple d’essayer ce modèle en ligne de commande ?
LM Studio est aussi une option
En ligne de commande, Ollama : https://ollama.ai/library/mixtral
Si vous avez besoin d’une UI, GPT4All : https://gpt4all.io/index.html ; toutefois, Mixtral n’est pas encore pris en charge
Dans une application, superagent.sh : https://github.com/homanp/superagent
Dans une récente interview sur le podcast A16Z, le fondateur de Mistral a déclaré qu’ils avaient en interne plusieurs modèles d’une qualité située entre ChatGPT et GPT-4
Vu la qualité de ce qui a été publié jusqu’à présent, la période s’annonce intéressante pour les LLM open source