Suivez nous sur

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

Intelligence Artificielle

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

mm
Mistral Large 2 et Mistral NeMo

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 :

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.

https://mistral.ai/news/mistral-large-2407/

https://mistral.ai/news/mistral-large-2407/

https://mistral.ai/news/mistral-large-2407/

https://mistral.ai/news/mistral-large-2407/

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) et open-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
https://mistral.ai/news/mistral-large-2407/

https://mistral.ai/news/mistral-large-2407/

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.

Limites et considérations éthiques

Bien que Mistral Large 2 et Mistral NeMo représentent des avancées significatives dans la technologie de l’IA, il est essentiel de reconnaître leurs limites et les considérations éthiques entourant leur utilisation :

  1. Potentiel de biais: Comme tous les modèles d'IA entraînés sur de grands ensembles de données, ces modèles peuvent hériter et amplifier les biais présents dans leurs données d'entraînement. Les utilisateurs doivent en être conscients et mettre en œuvre les mesures de protection appropriées.
  2. Manque de véritable compréhension: Malgré leurs capacités impressionnantes, ces modèles ne possèdent pas de véritable compréhension ou conscience. Ils génèrent des réponses basées sur des modèles présents dans leurs données d’entraînement, ce qui peut parfois conduire à des informations apparemment plausibles mais incorrectes.
  3. Questions de confidentialité:Lors de l'utilisation de ces modèles, en particulier dans les applications traitant des informations sensibles, il est essentiel de prendre en compte les implications en matière de confidentialité et de sécurité des données.

Conclusion

La mise au point de modèles avancés tels que Mistral Large 2 et Mistral NeMo présente une puissante opportunité d'exploiter l'IA de pointe pour une variété d'applications, de l'appel de fonctions dynamiques au traitement multilingue efficace. Voici quelques conseils pratiques et informations clés à garder à l’esprit :

  1. Comprendre votre cas d'utilisationDéfinissez clairement les tâches et les objectifs spécifiques que vous souhaitez atteindre avec votre modèle. Cette compréhension guidera votre choix de modèle et votre approche d'optimisation, qu'il s'agisse des puissantes capacités d'appel de fonctions de Mistral ou de son traitement de texte multilingue efficace.
  2. Optimiser pour l'efficacité: utilisez le tokenizer Tekken pour améliorer considérablement l'efficacité de la compression de texte, en particulier si votre application implique la gestion de gros volumes de texte ou de plusieurs langues. Cela améliorera les performances du modèle et réduira les coûts de calcul.
  3. Tirer parti des appels de fonctionsAdoptez le paradigme agentique en intégrant des appels de fonctions dans les interactions de votre modèle. Cela permet à votre IA d'interagir dynamiquement avec des outils et services externes, fournissant des résultats plus précis et exploitables. Par exemple, l'intégration d'API météo ou d'autres sources de données externes peut considérablement améliorer la pertinence et l'utilité des réponses de votre modèle.
  4. Choisissez la bonne plateformeAssurez-vous de déployer vos modèles sur des plateformes compatibles avec leurs fonctionnalités, telles que Vertex AI de Google Cloud Platform, Azure AI Studio, Amazon Bedrock et IBM watsonx.ai. Ces plateformes fournissent l'infrastructure et les outils nécessaires pour optimiser les performances et l'évolutivité de vos modèles d'IA.

En suivant ces conseils et en utilisant les exemples de code fournis, vous pouvez exploiter efficacement la puissance de Mistral Large 2 et Mistral NeMo pour vos besoins spécifiques.

J'ai passé les cinq dernières années à m'immerger dans le monde fascinant du Machine Learning et du Deep Learning. Ma passion et mon expertise m'ont amené à contribuer à plus de 50 projets de génie logiciel divers, avec un accent particulier sur l'IA/ML. Ma curiosité continue m'a également attiré vers le traitement automatique du langage naturel, un domaine que j'ai hâte d'explorer davantage.