Intelligence Artificielle
Mistral 2 et Mistral NeMo : un guide complet des derniers LLM en provenance de Paris

Fondée par des anciens de DeepMind et Meta de Google, la startup basée à Paris IA Mistral a constamment fait des vagues dans la communauté de l’IA depuis 2023.
Mistral AI a d'abord attiré l'attention du monde entier avec son premier modèle, Mistral 7B, sorti en 2023. Ce modèle de 7 milliards de paramètres a rapidement gagné en popularité grâce à ses performances impressionnantes, surpassant des modèles plus grands comme Llama 2 13B dans divers benchmarks et rivalisant même Flamme 1 34B dans de nombreux paramètres. Quel ensemble Mistral7B ce qui se distinguait non seulement par ses performances, mais aussi par son accessibilité – le modèle pouvait être facilement téléchargé depuis GitHub ou même via un torrent de 13.4 Go, ce qui le rend facilement accessible aux chercheurs et développeurs du monde entier.
L'approche non conventionnelle de l'entreprise en matière de publication, renonçant souvent aux publications traditionnelles, 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, associée à son engagement envers les principes open source, a positionné Mistral AI comme un acteur incontournable du secteur.
L'ascension fulgurante de Mistral AI dans le secteur est également attestée par son récent succès financier. L'entreprise a atteint une valorisation exceptionnelle de 2 milliards de dollars suite à une levée de fonds menée par Andreessen Horowitz. Cette levée de fonds fait suite à un tour de table historique de 118 millions de dollars – le plus important de l'histoire européenne – témoignant de la confiance immense des investisseurs dans la vision et les capacités de Mistral AI.
Au-delà de leurs avancées technologiques, Mistral AI a également été activement impliqué dans l'élaboration de la politique de l'IA, en particulier dans les discussions autour de la loi européenne sur l'IA, où ils ont plaidé pour une réglementation réduite de l'IA open source.
Aujourd’hui, en 2024, Mistral AI place une nouvelle fois la barre plus haut avec deux modèles révolutionnaires : Mistral Grand 2 (également connu sous le nom de Mistral-Large-Instruct-2407) et Mistral NéMoDans ce guide complet, nous allons approfondir les fonctionnalités, les performances et les applications potentielles de ces impressionnants modèles d'IA.
Les principales spécifications du Mistral Large 2 incluent :
- 123 milliards paramètres
- 128K fenêtre contextuelle
- Prise en charge de dizaines de langues
- Maîtrise de 80+ codage langues
- Capacités avancées d’appel de fonctions
Le modèle est conçu pour repousser les limites de la rentabilité, de la vitesse et des performances, ce qui en fait une option attrayante pour les chercheurs et les entreprises cherchant à tirer parti de l’IA de pointe.
Mistral NeMo : le nouveau modèle plus petit
Si Mistral Large 2 représente le meilleur des modèles à grande échelle de Mistral AI, Mistral NeMo, sorti 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, offrant néanmoins des capacités impressionnantes :
- 12 milliards paramètres
- contexte 128k fenêtre
- Performances de pointe dans sa catégorie de taille
- Licence Apache 2.0 pour utilisation ouverte
- Prise en charge de la quantification formation pour une inférence efficace
Mistral NeMo se positionne comme un remplacement immédiat des systèmes utilisant actuellement Mistral 7B, offrant des performances améliorées tout en conservant 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 :
- Grandes fenêtres contextuelles: Avec des longueurs de contexte de 128 XNUMX jetons, les deux modèles peuvent traiter et comprendre des morceaux de texte beaucoup plus longs, permettant des sorties plus cohérentes et contextuellement pertinentes.
- Soutien multilingue: Les modèles excellent dans un large éventail de langues, notamment 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.
- Instructions suivantes: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 fonction: La prise en charge native des appels de fonctions permet à ces modèles d'interagir dynamiquement avec des outils et services externes.
- Raisonnement et résolution de problèmes: Capacités améliorées de raisonnement mathématique et de tâches complexes de résolution de problèmes.
Explorons certaines de ces fonctionnalités et examinons comment elles fonctionnent dans la pratique.
Benchmarks de Performance
Pour comprendre les véritables capacités du Mistral Large 2 et du Mistral NeMo, il est essentiel d'analyser leurs performances sur différents benchmarks. Examinons quelques indicateurs clés :
Mistral Large 2 Repères
Ce tableau présente la maîtrise 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 affiche de solides performances dans plusieurs langages, avec des scores particulièrement élevés en Python et Java. Cette compétence est essentielle pour les applications impliquant la génération de code, le débogage et le développement de logiciels, ce qui fait de ces modèles des outils précieux pour les développeurs.
Références Mistral NeMo
Bien que les scores de référence spécifiques du Mistral NeMo ne soient pas fournis dans les informations fournies, il est décrit comme offrant des performances de pointe dans sa catégorie. Le modèle surpasse d'autres modèles open source pré-entraînés récents, tels que Gemma 2 9B et Llama 3 8B, dans diverses tâches.
Prouesses multilingues et de codage
L'une des caractéristiques remarquables de Mistral Large 2 et de Mistral NeMo réside dans leurs capacités multilingues exceptionnelles. Ceci 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, dont 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 compétence multilingue s'étend au-delà de la simple traduction, englobant une compréhension et une génération nuancées de ces langues.
Pour illustrer cela, regardons un exemple de Mistral Large 2 générant du texte dans plusieurs langues :
[INST] Generate a short greeting in English, French, German, Spanish, and Japanese. [/INST]
Voici de courtes salutations dans les langues demandées :
Anglais : Bonjour ! Comment allez-vous aujourd'hui?
Français : Bonjour ! Comment allez-vous aujourd'hui ?
Allemand : Bonjour ! Comment est-ce que je suis là aujourd'hui ?
Espagnol : ¡Hola ! Comment es-tu aujourd'hui ?
Japonais : こんにちは!今日はお元気ですか?
[INST]
Maintenant, écrivez un simple « Bonjour, tout le monde ! » programme en Python, Java et JavaScript. [/INST]
Ces exemples mettent en valeur à la fois les capacités de génération de texte multilingue et 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 IA | Frontier AI entre vos mains).
Le paradigme agentique et l'appel de fonction
Mistral Large 2 et Mistral NeMo adoptent tous deux une conception centrée sur les agents, ce 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'agir pour atteindre des objectifs spécifiques.
Une fonctionnalité clé permettant ce paradigme est la prise en charge native des appels de fonctions. Cela permet aux modèles d'interagir de manière dynamique avec des outils et services externes, étendant ainsi efficacement leurs capacités au-delà de la simple génération de texte.
Voyons un exemple de la façon dont l'appel de fonction 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 # Initialize tokenizer and model mistral_models_path = "path/to/mistral/models" # Ensure this path is correct tokenizer = MistralTokenizer.from_file(f"{mistral_models_path}/tokenizer.model.v3") model = Transformer.from_folder(mistral_models_path) # Define a function for getting weather information weather_function = Function( name="get_current_weather", description="Get the current weather", parameters={ "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA", }, "format": { "type": "string", "enum": ["celsius", "fahrenheit"], "description": "The temperature unit to use. Infer this from the user's location.", }, }, "required": ["location", "format"], }, ) # Create a chat completion request with the function completion_request = ChatCompletionRequest( tools=[Tool(function=weather_function)], messages=[ UserMessage(content="What's the weather like today in Paris?"), ], ) # Encode the request tokens = tokenizer.encode_chat_completion(completion_request).tokens # Generate a response 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]) print(result)
Dans cet exemple, nous définissons une fonction permettant d'obtenir des informations météorologiques et l'incluons dans notre demande de fin de chat. Le modèle peut ensuite 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 à jour.
Tekken : un tokeniseur plus efficace
Mistral NeMo présente un nouveau tokenizer appelé Tekken, basé sur Tiktoken et formé dans plus de 100 langues. Ce nouveau tokenizer offre des améliorations significatives en termes d'efficacité de compression de texte par rapport aux tokenizers précédents comme SentencePièce.
Les principales fonctionnalités de Tekken incluent :
- Compression 30 % plus efficace pour le code source, le chinois, l'italien, le français, l'allemand, l'espagnol et le russe
- Compression 2x plus efficace pour le coréen
- Compression 3 fois plus efficace pour l'arabe
- Surclasse le tokenizer Llama 3 en matière de compression de texte pour environ 85 % de toutes les langues
Cette efficacité améliorée de la tokenisation se traduit par de meilleures performances du modèle, en particulier lorsqu'il s'agit de texte et de code source multilingues. Cela permet au modèle de traiter plus d'informations dans la même fenêtre contextuelle, conduisant à des résultats plus cohérents et contextuellement pertinents.
Licence et disponibilité
Mistral Large 2 et Mistral NeMo ont des modèles de licence différents, reflétant les cas d'utilisation prévus :
Mistral Grand 2
- Publié sous la licence Mistral Research
- Permet l'utilisation et la modification à des fins de recherche et à des fins non commerciales
- L'utilisation commerciale nécessite une licence commerciale Mistral
Mistral NéMo
- Publié sous la licence Apache 2.0
- Permet une utilisation ouverte, y compris des applications commerciales
Les deux modèles sont disponibles sur différentes plateformes :
- Visage câlin : Les poids des modèles de base et d'instruction sont hébergés ici
- IA Mistral: Disponible en
mistral-large-2407
(Mistral Grand 2) etopen-mistral-nemo-2407
(Mistral NéMo) - Fournisseurs de services en nuage:Disponible sur Vertex AI de Google Cloud Platform, 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 model_name = "mistralai/Mistral-Large-Instruct-2407" device = "cuda" # Use GPU if available # Load the model and tokenizer model = AutoModelForCausalLM.from_pretrained(model_name) tokenizer = AutoTokenizer.from_pretrained(model_name) # Move the model to the appropriate device model.to(device) # Prepare input messages = [ {"role": "system", "content": "You are a helpful AI assistant."}, {"role": "user", "content": "Explain the concept of neural networks in simple terms."} ] # Encode input input_ids = tokenizer.apply_chat_template(messages, return_tensors="pt").to(device) # Generate response output_ids = model.generate(input_ids, max_new_tokens=500, do_sample=True) # Decode and print the response response = tokenizer.decode(output_ids[0], skip_special_tokens=True) print(response)
Ce code montre comment charger le modèle, préparer l'entrée dans un format de discussion, générer une réponse et décoder la sortie.