L’équipe de Mistral AI est fière de publier Mistral 7B, le modèle de langage le plus puissant à ce jour pour sa taille.
Mistral 7B en bref
Mistral 7B est un modèle de 7,3 milliards de paramètres qui :
Surpasse Llama 2 13B sur tous les benchmarks
Surpasse Llama 1 34B sur de nombreux benchmarks
Se rapproche des performances de CodeLlama 7B sur le code, tout en restant performant sur les tâches en anglais
Utilise l’attention à requêtes groupées (GQA) pour accélérer l’inférence
Utilise l’attention à fenêtre glissante (SWA) pour traiter des séquences plus longues à moindre coût
Nous publions Mistral 7B sous licence Apache 2.0. Il peut être utilisé sans restriction.
Téléchargez-le et utilisez-le partout, y compris en local, avec notre implémentation de référence,
Déployez-le sur n’importe quel cloud (AWS/GCP/Azure), avec vLLM inference server et skypilot,
Utilisez-le sur HuggingFace.
Mistral 7B se prête facilement au fine-tuning pour toute tâche. À titre de démonstration, nous fournissons un modèle fine-tuné pour la conversation, qui surpasse Llama 2 13B chat.
Performances en détail
Nous avons comparé Mistral 7B à la famille Llama 2 et réexécuté nous-mêmes toutes les évaluations de modèles pour garantir une comparaison équitable.

Les benchmarks sont classés par thème :
Commonsense Reasoning : moyenne 0-shot de Hellaswag, Winogrande, PIQA, SIQA, OpenbookQA, ARC-Easy, ARC-Challenge et CommonsenseQA.
World Knowledge : moyenne 5-shot de NaturalQuestions et TriviaQA.
Reading Comprehension : moyenne 0-shot de BoolQ et QuAC.
Math : moyenne de GSM8K 8-shot avec maj@8 et de MATH 4-shot avec maj@4
Code : moyenne de Humaneval 0-shot et de MBPP 3-shot
Résultats agrégés courants : MMLU 5-shot, BBH 3-shot et AGI Eval 3-5-shot (questions à choix multiple en anglais uniquement)

Une métrique utile pour comparer les modèles dans le plan coût/performance consiste à calculer des « tailles de modèle équivalentes ». En raisonnement, compréhension et raisonnement STEM (MMLU), Mistral 7B atteint des performances équivalentes à celles d’un Llama 2 qui ferait plus de trois fois sa taille. C’est autant de mémoire économisée et de débit gagné.
Remarque : différences importantes entre notre évaluation et l’article LLaMA2 :
Pour MBPP, nous utilisons le sous-ensemble vérifié manuellement
Pour TriviaQA, nous ne fournissons pas les contextes Wikipédia
Flash and Furious : dérive de l’attention
Mistral 7B utilise un mécanisme d’attention à fenêtre glissante (SWA) (Child et al., Beltagy et al.), dans lequel chaque couche prête attention aux 4 096 états cachés précédents. L’amélioration principale, et la raison pour laquelle cette approche a été initialement étudiée, est un coût de calcul linéaire de O(sliding_window.seq_len). En pratique, les modifications apportées à FlashAttention et xFormers offrent un gain de vitesse de 2× pour une longueur de séquence de 16k avec une fenêtre de 4k. Un grand merci à Tri Dao et Daniel Haziza pour leur aide à intégrer ces modifications dans un calendrier très serré.
L’attention à fenêtre glissante utilise les couches empilées d’un transformer pour accéder au passé au-delà de la taille de la fenêtre : un token i à la couche k prête attention aux tokens [i-sliding_window, i] à la couche k-1. Ces tokens ont prêté attention aux tokens [i-2*sliding_window, i]. Les couches supérieures ont accès à des informations plus anciennes que ce que les schémas d’attention semblent indiquer.

Enfin, une portée d’attention fixe signifie que nous pouvons limiter notre cache à une taille de sliding_window tokens, en utilisant des tampons circulaires (pour en savoir plus, consultez le dépôt de notre implémentation de référence). Cela économise la moitié de la mémoire cache pour l’inférence sur une longueur de séquence de 8 192, sans affecter la qualité du modèle.
Fine-tuning de Mistral 7B pour la conversation
Pour montrer les capacités de généralisation de Mistral 7B, nous l’avons fine-tuné sur des jeux de données d’instructions disponibles publiquement sur HuggingFace. Aucune astuce, aucune donnée propriétaire. Le modèle obtenu, Mistral 7B Instruct, surpasse tous les modèles 7B sur MT-Bench et atteint un niveau comparable aux modèles conversationnels 13B.

Le modèle Mistral 7B Instruct est une démonstration rapide : le modèle de base peut être fine-tuné facilement pour atteindre des performances solides. Il ne dispose d’aucun mécanisme de modération. Nous souhaitons échanger avec la communauté sur les moyens de faire respecter finement les garde-fous par le modèle, afin de permettre son déploiement dans des environnements qui exigent des sorties modérées.
Remerciements
Nous remercions CoreWeave pour son aide 24 h/24 et 7 j/7 dans l’orchestration de notre cluster. Nous remercions l’équipe CINECA/EuroHPC, et en particulier les opérateurs de Leonardo, pour leurs ressources et leur aide. Nous remercions les mainteneurs de FlashAttention, vLLM, xFormers et Skypilot pour leur aide précieuse dans l’implémentation de nouvelles fonctionnalités et l’intégration de leurs solutions aux nôtres. Nous remercions les équipes de HuggingFace, AWS, GCP et Azure ML pour leur aide soutenue afin de rendre notre modèle compatible partout.





