Points clés
- Définition du modèle de chat : Un modèle de chat dans Mistral définit des rôles structurés (tels que « utilisateur » et « assistant ») et des règles de formatage qui guident le traitement des données conversationnelles, garantissant des interactions cohérentes et contextuelles dans la génération de dialogues basée sur l’IA.
- Guide d’utilisation du modèle de chat Mistral : Ce guide complet comprend la configuration de l’environnement, la construction et l’application du modèle de chat.
- Efficacité du pipeline automatisé : Introduction d’un pipeline de chat automatisé qui simplifie l’application des modèles de chat, améliorant l’efficacité de la génération de réponses adaptées à des contextes conversationnels spécifiques.
Introduction
Curieux de maîtriser l’utilisation du modèle de chat Mistral ? Plongez dans notre guide complet étape par étape ! Avant de nous plonger dans le guide d’utilisation, nous allons analyser le fonctionnement d’un modèle de chat pour améliorer votre compréhension. De plus, nous présenterons un pipeline de chat automatisé pour booster l’efficacité. Si cela vous intéresse, continuez à lire !
Qu’est-ce que le modèle de chat Mistral ?
En bref, « modèle de chat Mistral » désigne le modèle de chat pour les modèles Mistral.
Série de modèles Mistral

La série de modèles Mixtral fait partie des modèles d’IA générative open source de Mixtral AI, disponibles sous licence Apache 2.0. Mistral AI propose les modèles Mixtral en open source, permettant aux développeurs et aux entreprises de les utiliser et de les personnaliser pour diverses applications. Plus précisément, il existe deux versions des modèles Mixtral : Mixtral 8x7B et Mixtral 8x22B.
Présentation du modèle de chat
L’utilisation des LLM pour les applications de chat devient de plus en plus courante. Contrairement aux modèles de langage traditionnels qui traitent le texte en séquence continue, les LLM dans un contexte de chat gèrent un dialogue continu composé de plusieurs messages. Chaque message de ce dialogue est caractérisé par un rôle spécifique, comme « utilisateur » ou « assistant », ainsi que par le texte réel du message.
Comme pour le processus de tokenisation, différents LLM nécessitent des formats d’entrée distincts pour les interactions de chat. Pour répondre à ce besoin, les modèles de chat ont été intégrés en tant que fonctionnalité. Ces modèles sont intégrés dans les fonctionnalités du tokenizer, décrivant la méthode pour transformer une liste de messages conversationnels en une chaîne tokenisable unique et spécifique au modèle.

Comment fonctionne le modèle de chat ?
Structure des messages
Chaque message dans un modèle de chat est généralement représenté comme un objet ou un dictionnaire contenant deux attributs principaux :
- Role : Spécifie le rôle de l’intervenant, comme « utilisateur » ou « assistant ».
- Content : Le texte réel ou le contenu du message.
{"role": "user", "content": "Bonjour, comment allez-vous ?"}
{"role": "assistant", "content": "Je vais très bien. Comment puis-je vous aider aujourd'hui ?"}
Règles de formatage
Les modèles de chat définissent comment ces messages sont concaténés ou séparés pour former une chaîne d’entrée cohérente pour le modèle. Cela peut impliquer l’ajout d’espaces, de ponctuation ou de jetons spéciaux pour indiquer la structure de la conversation.
Exemple :
- Modèle simple (BlenderBot) :
" Bonjour, comment allez-vous ? Je vais très bien. Comment puis-je vous aider aujourd'hui ? Je voudrais montrer comment fonctionne le modèle de chat !</s>"
- Modèle complexe (Mistral-7B-Instruct) :
"<s>[INST] Bonjour, comment allez-vous ? [/INST]Je vais très bien. Comment puis-je vous aider aujourd'hui ?</s> [INST] Je voudrais montrer comment fonctionne le modèle de chat ! [/INST]"
Dans Mistral-7B-Instruct, par exemple, les jetons [INST] et [/INST] sont utilisés pour délimiter les messages utilisateur, indiquant des informations structurelles spécifiques que le modèle a été entraîné à interpréter.
Intégration avec le tokenizer
Les modèles de chat sont intégrés dans le tokenizer du modèle pour garantir que les données conversationnelles formatées sont converties en un format tokenisé que le modèle peut traiter efficacement. Cette tokenisation est cruciale pour que le modèle génère des réponses appropriées en fonction du contexte fourni par la conversation.
Comment utiliser le modèle de chat Mistral ?
Pour utiliser le modèle Mistral-7B-Instruct-v0.2 avec des modèles de chat pour la génération conversationnelle, vous pouvez suivre ces étapes basées sur les informations fournies :
Configuration et paramétrage
Tout d’abord, assurez-vous d’avoir les imports et la configuration nécessaires pour votre environnement, y compris l’obtention de l’API du modèle Mistral depuis Novita AI :
from transformers import AutoModelForCausalLM, AutoTokenizer
# Supposons que vous ayez déjà importé OpenAI et configuré le client
# from openai import OpenAI
# client = OpenAI(base_url="https://api.novita.ai/v3/openai", api_key="<YOUR Novita AI API Key>")
# Définissez votre modèle et tokenizer
model_name = "mistralai/Mistral-7B-Instruct-v0.2"
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# Définissez le périphérique (CPU ou GPU)
device = "cuda" if torch.cuda.is_available() else "cpu"
model.to(device)
Construction du modèle de chat
Définissez votre conversation comme une liste de messages, où chaque message inclut le rôle (« user » ou « assistant ») et le contenu du message :
messages = [
{"role": "user", "content": "Quel est votre condiment préféré ?"},
{"role": "assistant", "content": "Eh bien, j'aime beaucoup un bon filet de jus de citron frais. Cela ajoute juste ce qu'il faut de saveur zestée à tout ce que je cuisine dans la cuisine !"},
{"role": "user", "content": "Avez-vous des recettes de mayonnaise ?"}
]
Application du modèle de chat
Utilisez la méthode apply_chat_template() fournie par le tokenizer pour formater les messages selon les exigences du modèle de chat de Mistral :
encodeds = tokenizer.apply_chat_template(messages, return_tensors="pt")
model_inputs = encodeds.to(device)
Génération des réponses
Générez des réponses en utilisant le modèle Mistral :
generated_ids = model.generate(model_inputs['input_ids'], max_new_tokens=1000, do_sample=True)
decoded_responses = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)
print(decoded_responses)
Explication :
- Tokenisation : La méthode
apply_chat_template()convertit la liste de messages (messages) dans un format attendu par le modèle Mistral. Elle gère l’ajout des jetons nécessaires comme[INST]et[/INST]pour délimiter les entrées utilisateur comme spécifié. - Inférence du modèle :
model.generate()est utilisée pour générer des réponses basées sur l’entrée formatée. Ajustezmax_new_tokensselon les besoins pour contrôler la longueur des réponses générées.do_sample=Trueactive l’échantillonnage à partir de la distribution du modèle, ce qui peut améliorer la diversité des réponses. - Décodage :
tokenizer.batch_decode()décode les identifiants de jetons générés en texte lisible, en ignorant les jetons spéciaux comme<s>et</s>.
Remarques :
- Assurez-vous que votre environnement dispose de suffisamment de ressources (CPU/GPU) pour gérer l’inférence du modèle, en particulier avec des modèles plus grands comme Mistral-7B.
- Ajustez des paramètres tels que
max_new_tokensetdo_sampleen fonction des exigences spécifiques de votre application concernant la longueur des réponses et la stratégie de génération.
Comment utiliser un pipeline automatique pour le chat ?
En plus des modèles de chat, par exemple le modèle de chat Mistral, le pipeline de génération de texte automatisé fourni par Hugging Face Transformers simplifie l’intégration des modèles d’IA conversationnelle. L’utilisation du « TextGenerationPipeline », qui inclut désormais les fonctionnalités auparavant gérées par le « ConversationalPipeline » obsolète, permet de générer facilement des réponses basées sur des messages de chat structurés.
Points clés
- Intégration du pipeline : Le « TextGenerationPipeline » prend en charge les entrées de chat, gérant la tokenisation et l’application du modèle de chat de manière transparente.
- Fonctionnalité obsolète : L’ancienne classe « ConversationalPipeline » a été dépréciée au profit de l’approche unifiée avec le « TextGenerationPipeline ».
- Exemple avec le modèle Mistral : Démontre l’utilisation du pipeline avec le modèle Mistral-7B-Instruct-v0.2. Les messages sont structurés avec des rôles (« system » ou « user ») et du contenu, formatés selon le modèle de chat de Mistral.
- Simplification d’utilisation : Initialiser le pipeline et lui passer une liste de messages structurés automatise la tokenisation et l’application du modèle.
- Exemple de sortie : La réponse de l’assistant est générée en fonction du message d’entrée, en conservant le contexte et le style spécifiés par le modèle Mistral.
Exemple de code
from transformers import pipeline, AutoModelForCausalLM, AutoTokenizer
# Initialisez le pipeline de génération de texte avec le modèle Mistral
model_name = "mistralai/Mistral-7B-Instruct-v0.2"
pipe = pipeline("text-generation", model=model_name)
# Définissez les messages de chat avec rôles et contenu
messages = [
{"role": "system", "content": "Vous êtes un chatbot amical."},
{"role": "user", "content": "Expliquez le concept d'intelligence artificielle."},
]
# Générez une réponse en utilisant le pipeline
response = pipe(messages, max_new_tokens=128)[0]['generated_text']
# Affichez la réponse de l'assistant
print(response)
Dans cet exemple de code :
- Initialisation : Le pipeline est initialisé avec le modèle Mistral-7B-Instruct-v0.2 en utilisant
pipeline("text-generation", model="mistralai/Mistral-7B-Instruct-v0.2"). - Format des messages : Les messages sont structurés avec des rôles (« system » ou « user ») et du contenu, conformément au format du modèle de chat de Mistral.
- Génération de réponse : Le pipeline gère la tokenisation et applique automatiquement le modèle de chat. La réponse générée reflète le contexte d’entrée et le style spécifiés par le modèle Mistral.
Cette approche exploite les capacités de Hugging Face Transformers pour simplifier l’implémentation des modèles d’IA conversationnelle, garantissant une intégration efficace et performante dans les applications basées sur le chat.
Applications réelles du modèle de chat
Chatbots de support client :
- Scénario : Un client interagit avec un chatbot pour le dépannage ou l’assistance.
- Modèle de chat : Le modèle structure la conversation avec des rôles comme « user » (client) et « assistant » (chatbot), garantissant que le chatbot comprend les demandes des utilisateurs et fournit des réponses appropriées.
- Avantages : Améliore l’efficacité de la résolution des problèmes clients en maintenant le contexte sur plusieurs interactions.
Chatbots éducatifs :
- Scénario : Les étudiants interagissent avec des chatbots pour poser des questions, demander des explications ou recevoir une aide tutorielle.
- Modèle de chat : Des rôles structurés tels que « étudiant » et « tuteur » guident la manière dont le contenu éducatif est présenté et discuté.
- Avantages : Facilite les expériences d’apprentissage personnalisées en adaptant la diffusion du contenu en fonction des questions des étudiants et des objectifs d’apprentissage.
Consultation médicale :
- Scénario : Les patients interagissent avec des assistants de santé virtuels pour des conseils médicaux, la vérification des symptômes ou la prise de rendez-vous.
- Modèle de chat : Définit la manière dont les entrées du patient (symptômes, préoccupations) et les conseils/réponses médicales sont structurés.
- Avantages : Assure une communication précise des informations médicales, le respect des réglementations sur la vie privée et la continuité des soins.
Simulations d’entretiens d’embauche :
- Scénario : Les candidats participent à des entretiens virtuels menés par des recruteurs basés sur l’IA.
- Modèle de chat : Structure le dialogue de l’entretien avec des rôles tels que « interviewer » et « candidate », guidant le flux des questions et des réponses.
- Avantages : Offre une pratique réaliste d’entretien, un retour sur les compétences en communication et une préparation aux entretiens d’embauche réels.
Conclusion
En conclusion, maîtriser l’utilisation du modèle de chat Mistral implique de comprendre son approche structurée du traitement des données conversationnelles. Nous avons exploré le fonctionnement des modèles de chat, en particulier dans le contexte des modèles Mistral comme Mistral-7B-Instruct-v0.2. En décomposant ces composants, nous avons mis en évidence l’intégration transparente des modèles de chat avec le tokenizer et le modèle Mistral, garantissant une génération de dialogue cohérente et contextuelle. De plus, nous avons présenté un pipeline de chat automatisé qui simplifie encore le processus, remplaçant les méthodes obsolètes par une approche unifiée via le TextGenerationPipeline.
Grâce à ces informations et outils, les développeurs et les entreprises peuvent exploiter efficacement la puissance de Mistral pour diverses applications dans les systèmes conversationnels basés sur l’IA.
Novita AI est la plateforme cloud tout-en-un qui alimente vos ambitions en IA. Grâce à des API intégrées de manière transparente, des calculs sans serveur et une accélération GPU, nous fournissons les outils rentables dont vous avez besoin pour créer et faire évoluer rapidement votre entreprise basée sur l’IA. Éliminez les problèmes d’infrastructure et commencez gratuitement — Novita AI concrétise vos rêves d’IA.
Lecture recommandée
Présentation du modèle Mixtral 8x7B de Mistral : Tout ce que vous devez savoir
Présentation de Mixtral-8x22B : Le dernier et plus grand modèle de langage mixte d’experts
