Intelligence artificielle
Mistral 2 et Mistral NeMo : Un guide complet sur les derniers LLM issus de Paris

Fondée par d’anciens employés de Google’s DeepMind et Meta, la startup basée à Paris Mistral AI fait régulièrement parler d’elle dans la communauté de l’IA depuis 2023.
Mistral AI a d’abord attiré l’attention du monde avec son modèle de lancement, Mistral 7B, publié en 2023. Ce modèle de 7 milliards de paramètres a rapidement gagné en popularité pour ses performances impressionnantes, dépassant des modèles plus grands comme Llama 2 13B dans divers benchmarks et même rivalisant avec Llama 1 34B dans de nombreux indicateurs de performance. Ce qui distingue Mistral 7B n’est pas seulement ses performances, mais également son accessibilité – le modèle peut être facilement téléchargé depuis GitHub ou même via un torrent de 13,4 gigaoctets, le rendant facilement disponible pour les chercheurs et les développeurs du monde entier.
L’approche non conventionnelle de la société en matière de publications, souvent en renonçant aux articles de recherche traditionnels, aux blogs ou aux communiqués de presse, s’est avérée remarquablement efficace pour capter l’attention de la communauté de l’IA. Cette stratégie, couplée à leur engagement en faveur des principes open source, a positionné Mistral AI comme un acteur majeur dans le paysage de l’IA.
L’ascension rapide de Mistral AI dans l’industrie est encore attestée par son récent succès en matière de financement. La société a atteint une valorisation de 2 milliards de dollars à la suite d’un cycle de financement mené par Andreessen Horowitz. Cela est survenu après un tour de table historique de 118 millions de dollars – le plus important de l’histoire européenne – mettant en évidence la confiance immense que les investisseurs ont dans la vision et les capacités de Mistral AI.
Au-delà de leurs progrès technologiques, Mistral AI a également été activement impliquée dans l’élaboration des politiques d’IA, en particulier dans les discussions autour de l’Acte IA de l’UE, où ils ont plaidé en faveur d’une réglementation réduite dans l’IA open source.
Maintenant, en 2024, Mistral AI a à nouveau élevé la barre avec deux modèles révolutionnaires : Mistral Large 2 (également connu sous le nom de Mistral-Large-Instruct-2407) et Mistral NeMo. Dans ce guide complet, nous allons plonger dans les fonctionnalités, les performances et les applications potentielles de ces modèles d’IA impressionnants.
Les spécifications clés de Mistral Large 2 incluent :
- 123 milliards de paramètres
- 128k fenêtre de contexte
- Prise en charge de dizaines de langues
- Maîtrise de 80+ langages de codage
- Capacités avancées d’appel de fonctions
Le modèle est conçu pour repousser les limites de l’efficacité coût, de la vitesse et des performances, ce qui en fait une option attrayante à la fois pour les chercheurs et les entreprises souhaitant exploiter l’IA de pointe.
Mistral NeMo : Le nouveau modèle plus petit
Alors que Mistral Large 2 représente le meilleur des modèles à grande échelle de Mistral AI, Mistral NeMo, publié en juillet 2024, adopte une approche différente. Développé en collaboration avec NVIDIA, Mistral NeMo est un modèle plus compact de 12 milliards de paramètres qui offre encore des capacités impressionnantes :
- 12 milliards de paramètres
- 128k contexte fenêtre
- Performances de pointe dans sa catégorie de taille
- Apache 2.0 license pour une utilisation ouverte
- Formation consciente de la quantification pour une inférence efficace
Mistral NeMo est positionné comme un remplacement direct pour les systèmes utilisant actuellement Mistral 7B, offrant des performances améliorées tout en maintenant la facilité d’utilisation et la compatibilité.
Fonctionnalités et capacités clés
Mistral Large 2 et Mistral NeMo partagent plusieurs fonctionnalités clés qui les distinguent dans le paysage de l’IA :
- Fenêtres de contexte larges : Avec des longueurs de contexte de 128k jetons, les deux modèles peuvent traiter et comprendre des pièces de texte beaucoup plus longues, permettant des sorties plus cohérentes et plus pertinentes au niveau du contexte.
- Prise en charge multilingue : Les modèles excellent dans une large gamme de langues, y compris l’anglais, le français, l’allemand, l’espagnol, l’italien, le chinois, le japonais, le coréen, l’arabe et l’hindi.
- Capacités de codage avancées : Les deux modèles démontrent une maîtrise exceptionnelle de la génération de code dans de nombreux langages de programmation.
- Suivi des instructions : Des améliorations significatives ont été apportées à la capacité des modèles à suivre des instructions précises et à gérer des conversations à plusieurs tours.
- Appel de fonctions : Prise en charge native de l’appel de fonctions permettant à ces modèles d’interagir dynamiquement avec des outils et des services externes.
- Raisonnement et résolution de problèmes : Capacités améliorées en matière de raisonnement mathématique et de résolution de problèmes complexes.
Explorons certaines de ces fonctionnalités et examinons comment elles se comportent dans la pratique.
Benchmarks de performance
Pour comprendre les véritables capacités de Mistral Large 2 et Mistral NeMo, il est essentiel d’examiner leurs performances sur divers benchmarks. Examinons certains indicateurs clés :
Benchmarks de Mistral Large 2
Ce tableau présente la compétence de divers LLM dans différents langages de programmation. Des modèles comme Mistral Large 2 (24.07), Llama 3.1 (405B) et GPT-4o sont évalués sur leur capacité à comprendre et à générer du code dans des langages tels que Python, C++, Bash, Java, TypeScript, PHP et C#.
Llama 3.1 405B montre des performances solides dans plusieurs langages, avec des scores particulièrement élevés en Python et en Java. Cette compétence est cruciale pour les applications impliquant la génération de code, le débogage et le développement de logiciels, ce qui rend ces modèles des outils précieux pour les développeurs.
Benchmarks de Mistral NeMo
Bien que les scores de benchmark spécifiques pour Mistral NeMo ne soient pas fournis dans les informations données, il est décrit comme offrant des performances de pointe dans sa catégorie de taille. Le modèle surpasse d’autres modèles open source récents comme Gemma 2 9B et Llama 3 8B dans diverses tâches.
Polyvalence linguistique et codage
L’une des fonctionnalités les plus remarquables de Mistral Large 2 et Mistral NeMo est leur exceptionnelle polyvalence linguistique. Cela est particulièrement important dans notre monde de plus en plus globalisé, où les modèles d’IA doivent comprendre et générer du contenu dans plusieurs langues.
Mistral Large 2, par exemple, prend en charge des dizaines de langues, y compris le français, l’allemand, l’espagnol, l’italien, le portugais, l’arabe, l’hindi, le russe, le chinois, le japonais et le coréen. Cette polyvalence linguistique va au-delà de la simple traduction, englobant une compréhension et une génération nuancées dans ces langues.
Pour illustrer cela, examinons un exemple de Mistral Large 2 générant du texte dans plusieurs langues :
[INST] Générer un court message de salutation en anglais, français, allemand, espagnol et japonais. [/INST]
Voici des salutations courtes dans les langues demandées :
Anglais : Bonjour ! Comment allez-vous aujourd’hui ?
Français : Bonjour ! Comment allez-vous aujourd’hui ?
Allemand : Hallo ! Wie geht es Ihnen heute?
Espagnol : ¡Hola! ¿Cómo estás hoy?
Japonais : こんにちは!今日はお元気ですか?
[INST]
Maintenant, écrivez un simple programme “Hello, World!” en Python, Java et JavaScript. [/INST]
Ces exemples mettent en évidence à la fois la génération de texte multilingue et les capacités de codage du modèle.
Les deux modèles sont disponibles sur diverses plateformes telles que Hugging Face, la plateforme de Mistral AI et les principaux fournisseurs de services cloud tels que Google Cloud Platform, Azure AI Studio, Amazon Bedrock et IBM watsonx.ai (Mistral AI | Frontier AI in your hands).
Le paradigme agentique et l’appel de fonctions
Mistral Large 2 et Mistral NeMo adoptent un design centré sur l’agent, qui représente un changement de paradigme dans la façon dont nous interagissons avec les modèles d’IA. Cette approche se concentre sur la construction de modèles capables d’interagir avec leur environnement, de prendre des décisions et d’effectuer des actions pour atteindre des objectifs spécifiques.
Une fonctionnalité clé permettant ce paradigme est la prise en charge native de l’appel de fonctions. Cela permet aux modèles d’interagir dynamiquement avec des outils et des services externes, élargissant ainsi leurs capacités au-delà de la simple génération de texte.
Examinons un exemple de la façon dont l’appel de fonctions pourrait fonctionner avec Mistral Large 2 :
from mistral_common.protocol.instruct.tool_calls import Function, Tool
from mistral_inference.transformer import Transformer
from mistral_inference.generate import generate
from mistral_common.tokens.tokenizers.mistral import MistralTokenizer
from mistral_common.protocol.instruct.messages import UserMessage
from mistral_common.protocol.instruct.request import ChatCompletionRequest
# Initialiser le tokenizer et le modèle
mistral_models_path = "path/to/mistral/models" # Assurez-vous que ce chemin est correct
tokenizer = MistralTokenizer.from_file(f"{mistral_models_path}/tokenizer.model.v3")
model = Transformer.from_folder(mistral_models_path)
# Définir une fonction pour obtenir des informations météorologiques
weather_function = Function(
name="get_current_weather",
description="Obtenir la météo actuelle",
parameters={
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "La ville et l'état, par exemple San Francisco, CA",
},
"format": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "L'unité de température à utiliser. En déduire de l'emplacement de l'utilisateur.",
},
},
"required": ["location", "format"],
},
)
# Créer une demande d'achèvement de conversation avec la fonction
completion_request = ChatCompletionRequest(
tools=[Tool(function=weather_function)],
messages=[
UserMessage(content="Quelle est la météo aujourd'hui à Paris?"),
],
)
# Encoder l'entrée
tokens = tokenizer.encode_chat_template(completion_request).to("pt")
# Générer une réponse
output_ids = model.generate(tokens, max_new_tokens=256, do_sample=True)
# Décodez et imprimez la réponse
result = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(result)
Dans cet exemple, nous définissons une fonction pour obtenir des informations météorologiques et l’incluons dans notre demande d’achèvement de conversation. Le modèle peut alors utiliser cette fonction pour récupérer des données météorologiques en temps réel, démontrant ainsi comment il peut interagir avec des systèmes externes pour fournir des informations plus précises et plus à jour.
Tekken : Un tokenizer plus efficace
Mistral NeMo introduit un nouveau tokenizer appelé Tekken, basé sur Tiktoken et formé sur plus de 100 langues. Ce nouveau tokenizer offre des améliorations significatives en termes d’efficacité de compression du texte par rapport aux tokenizeurs précédents comme SentencePiece.
Les fonctionnalités clés de Tekken incluent :
- 30 % plus d’efficacité de compression pour le code source, le chinois, l’italien, le français, l’allemand, l’espagnol et le russe
- 2 fois plus d’efficacité de compression pour le coréen
- 3 fois plus d’efficacité de compression pour l’arabe
- Surpasse le tokenizer Llama 3 dans la compression de texte pour environ 85 % de toutes les langues
Cette amélioration de l’efficacité de tokenization se traduit par de meilleures performances du modèle, en particulier lorsqu’il s’agit de texte multilingue et de code source. Cela permet au modèle de traiter plus d’informations dans la même fenêtre de contexte, conduisant à des sorties plus cohérentes et plus pertinentes au niveau du contexte.
Licence et disponibilité
Mistral Large 2 et Mistral NeMo ont des modèles de licence différents, reflétant leurs cas d’utilisation prévus :
Mistral Large 2
- Publié sous la licence de recherche Mistral
- Autorise l’utilisation et la modification pour la recherche et les fins non commerciales
- L’utilisation commerciale nécessite une licence commerciale Mistral
Mistral NeMo
- Publié sous la licence Apache 2.0
- Autorise une utilisation ouverte, y compris les applications commerciales
Les deux modèles sont disponibles sur diverses plateformes :
- Hugging Face : Les poids pour les modèles de base et d’instruction sont hébergés ici
- Mistral AI : Disponible en tant que
mistral-large-2407(Mistral Large 2) etopen-mistral-nemo-2407(Mistral NeMo) - Fournisseurs de services cloud : Disponible sur Google Cloud Platform’s Vertex AI, Azure AI Studio, Amazon Bedrock et IBM watsonx.ai
Pour les développeurs souhaitant utiliser ces modèles, voici un exemple rapide de la façon de charger et d’utiliser Mistral Large 2 avec Hugging Face transformers :
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "mistralai/Mistral-Large-Instruct-2407"
device = "cuda" # Utilisez GPU si disponible
# Charger le modèle et le tokenizer
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# Déplacer le modèle sur le dispositif approprié
model.to(device)
# Préparer l'entrée
messages = [
{"role": "system", "content": "Vous êtes un assistant d'IA utile."},
{"role": "user", "content": "Expliquez le concept de réseaux de neurones en termes simples."},
]
# Encoder l'entrée
input_ids = tokenizer.apply_chat_template(messages, return_tensors="pt").to(device)
# Générer une réponse
output_ids = model.generate(input_ids, max_new_tokens=500, do_sample=True)
# Décodez et imprimez la réponse
response = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(response)
Ce code démontre comment charger le modèle, préparer l’entrée dans un format de conversation, générer une réponse et décoder la sortie.
















