Modèles et plateformes d’IA
Mistral 2 et Mistral NeMo : Un guide complet sur les derniers modèles LLM issus de Paris

Fondée par d’anciens employés de Google DeepMind et Meta, la startup parisienne 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 entier 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. Ce qui a distingué Mistral 7B n’était pas seulement ses performances, mais également son accessibilité – le modèle pouvait être facilement téléchargé depuis GitHub ou même via un torrent de 13,4 gigaoctets, le rendant ainsi facilement accessible aux chercheurs et développeurs du monde entier.
L’approche non conventionnelle de la société en matière de sorties, souvent en ignorant les papiers traditionnels, les blogs ou les 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 avec leur engagement en faveur des principes open source, a positionné Mistral AI comme un acteur important 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 à la suite d’un cycle de financement initial 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 ses progrès technologiques, Mistral AI a également été activement impliquée dans l’élaboration des politiques de l’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 IA impressionnants.
Les spécifications clés de Mistral Large 2 incluent :
- 123 milliards de paramètres
- 128k de fenêtre de contexte
- Prise en charge de dizaines de langues
- Maîtrise de 80+ langages de programmation
- Capacités avancées d’appel de fonctions
Le modèle est conçu pour repousser les limites de l’efficacité coût-efficacité, 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 (NVDA ), 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 de fenêtre de contexte
- Performances de pointe dans sa catégorie de taille
- Licence Apache 2.0 pour une utilisation ouverte
- Formation avec prise en compte de la quantification pour une inférence efficace
Mistral NeMo est positionné comme un remplacement 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
Les deux modèles, 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 de jetons, les deux modèles peuvent traiter et comprendre des morceaux de texte beaucoup plus longs, permettant ainsi 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 le hindi.
- Capacités de codage avancées : Les deux modèles font preuve d’une exceptionnelle maîtrise 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 : La prise en charge native de l’appel de fonctions permet à 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.
Examinons certaines de ces fonctionnalités et voyons comment elles se comportent dans la pratique.
Benchmarks de performances
Pour comprendre les véritables capacités de Mistral Large 2 et de Mistral NeMo, il est essentiel d’examiner leurs performances sur divers benchmarks. Regardons quelques 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 langues, 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écemment formés comme Gemma 2 9B et Llama 3 8B dans diverses tâches.
Compétences multilingues et de codage
L’une des fonctionnalités les plus remarquables des deux modèles, Mistral Large 2 et Mistral NeMo, est leur exceptionnelle compétence multilingue. 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, le hindi, le russe, le chinois, le japonais et le coréen. Cette compétence multilingue va au-delà de la simple traduction, englobant une compréhension nuancée et une génération dans ces langues.
Pour illustrer cela, regardons un exemple de Mistral Large 2 générant du texte dans plusieurs langues :
[INST] Générer un court salut 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 “Bonjour, monde !” 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 comme Google Cloud Platform, Azure AI Studio, Amazon Bedrock et IBM watsonx.ai (Mistral AI | L’IA de pointe à portée de main).
Le paradigme agentic et l’appel de fonctions
Les deux modèles, 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.
Regardons 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
<p># Initialiser le tokeniseur et le modèle
mistral_models_path = "chemin/vers/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)</p>
<p># 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"],
},
)</p>
<p># Créer une demande d'achèvement de conversation avec la fonction
completion_request = ChatCompletionRequest(
tools=[Tool(function=weather_function)],
messages=[
UserMessage(content="Quel est le temps aujourd'hui à Paris ?"),
],
)</p>
<p># Encoder la demande
tokens = tokenizer.encode_chat_completion(completion_request).tokens</p>
<p># Générer une réponse
out_tokens, _ = generate([tokens], model, max_tokens=256, temperature=0.7, eos_id=tokenizer.instruct_tokenizer.tokenizer.eos_id)
result = tokenizer.decode(out_tokens[0])</p>
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 tokenizeur plus efficace
Mistral NeMo présente un nouveau tokenizeur appelé Tekken, basé sur Tiktoken et formé sur plus de 100 langues. Ce nouveau tokenizeur 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 % de compression plus efficace pour le code source, le chinois, l’italien, le français, l’allemand, l’espagnol et le russe
- 2 fois plus de compression efficace pour le coréen
- 3 fois plus de compression efficace pour l’arabe
- Surpasse le tokenizeur Llama 3 dans la compression du texte pour environ 85 % de toutes les langues
Cette amélioration de l’efficacité de tokenisation 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 des fins de recherche et 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 des 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 les transformateurs Hugging Face :
from transformers import AutoModelForCausalLM, AutoTokenizer
<p>model_name = "mistralai/Mistral-Large-Instruct-2407"
device = "cuda" # Utiliser le GPU si disponible</p>
<p># Charger le modèle et le tokeniseur
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)</p>
<p># Déplacer le modèle vers le périphérique approprié
model.to(device)</p>
<p># Préparer l'entrée
messages = [
{"role": "system", "content": "Vous êtes un assistant IA utile."},
{"role": "user", "content": "Expliquez le concept de réseaux de neurones en termes simples."}
]</p>
<p># Encoder l'entrée
input_ids = tokenizer.apply_chat_template(messages, return_tensors="pt").to(device)</p>
<p># Générer une réponse
output_ids = model.generate(input_ids, max_new_tokens=500, do_sample=True)</p>
<p># Décoder et imprimer la réponse
response = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(response)</p>
Ce code 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.
















