← Retour au blog

Mistral-8x22B et RAG leçons d'une mise en production

Lucian BLETAN

La sortie du modèle open source Mistral-8x22B, un Mixture of Experts (MoE) puissant, a ouvert de nouvelles perspectives pour les applications RAG (Retrieval-Augmented Generation). Sur le papier, ses performances rivalisent avec les meilleurs modèles fermés. En pratique, son intégration en production soulève des questions d’infrastructure, de coût et de qualité. Après plusieurs semaines d’expérimentation et un déploiement sur un périmètre contrôlé, voici les leçons que nous avons tirées : le gain en qualité est réel, mais il se paie par une latence plus élevée et une complexité opérationnelle accrue.

l’architecture de notre pipeline RAG

Le pipeline est classique, mais le choix du LLM comme “générateur” a un impact sur toute la chaîne.

requête

indexation

recherche

top 5 chunks

contexte + question

réponse

documents internes

chunking & embedding

vector store (pgvector)

question utilisateur

embedding

prompt

mistral-8x22b

validation & citation

la qualité de réponse: un vrai saut qualitatif

La capacité de Mistral-8x22B à synthétiser des informations provenant de plusieurs sources et à respecter des instructions complexes (comme la citation de sources) est nettement supérieure aux modèles de la génération précédente.

  • Moins d’hallucinations: Le modèle est plus “conscient” des limites du contexte fourni et refuse plus souvent de répondre s’il ne sait pas.
  • Meilleure synthèse: Il parvient à connecter des idées provenant de chunks différents pour construire une réponse plus complète.
  • Respect des contraintes: Le format de sortie (ex: JSON) et les instructions de citation sont mieux respectés.

le défi de la latence et des coûts

C’est là que les choses se compliquent. Un modèle MoE est lourd, et son inférence demande des ressources importantes.

  • Latence P95: Sans optimisation, la latence de génération peut facilement atteindre 5 à 10 secondes, ce qui est inacceptable pour une expérience utilisateur interactive.
  • Coûts d’infrastructure: Faire tourner un modèle de cette taille nécessite des GPUs conséquents (type H100 ou équivalent), même avec une quantification agressive. L’autoscaling doit être réglé finement pour maîtriser les coûts.

nos optimisations

Pour rendre le déploiement viable, nous avons dû implémenter plusieurs optimisations.

optimisations en production

quantification

GPTQ 4-bit

réduction de 70% de la vram

streaming de la réponse

latence perçue divisée par 2

batching dynamique

regrouper les requêtes concurrentes

cache sémantique

mettre en cache les réponses aux questions similaires

leçons apprises

  1. La quantification est obligatoire, pas une option. Sans une quantification agressive (ex: 4-bit), le coût par requête est prohibitif pour un usage à grande échelle. L’impact sur la qualité a été marginal dans notre cas d’usage.
  2. Le streaming de la réponse est essentiel pour l’UX. Même si le temps total de génération reste le même, afficher la réponse mot à mot donne une impression de réactivité indispensable.
  3. Le monitoring du coût par requête est vital. Nous avons mis en place un dashboard qui suit le nombre de tokens et le coût estimé pour chaque appel, afin d’identifier les cas d’usage qui dérapent.
  4. Le “reranking” devient plus important. La capacité du modèle à gérer un contexte plus large rend la sélection des bons “chunks” encore plus critique. Nous avons ajouté une étape de re-classement avec un petit modèle pour améliorer la pertinence du contexte injecté.

erreurs à éviter

  • Sous-estimer la taille de l’infra: Ne pensez pas faire tourner ce modèle sur un petit GPU. Prévoyez un budget conséquent et des instances adaptées.
  • Oublier le monitoring des prompts: Les prompts qui fonctionnent bien avec GPT-3.5 ou Llama 2 ne sont pas forcément optimaux pour un modèle MoE. Il faut ré-évaluer et tester vos prompts.
  • Négliger le “cold start”: Le premier appel à un endpoint qui a été mis à l’échelle à zéro peut être très long. Mettez en place des stratégies de “warm-up” pour les heures de forte affluence.

faq

  • Avez-vous fine-tuné le modèle ? Non, pas pour l’instant. L’objectif était d’évaluer les performances du modèle de base en RAG. Le fine-tuning (probablement via LoRA) sera notre prochaine étape pour améliorer encore la spécialisation sur notre jargon interne.

  • Quel a été le gain de performance par rapport à un modèle plus petit ? Sur notre set d’évaluation interne, nous avons mesuré une augmentation de 15% de l’exactitude factuelle (moins d’hallucinations) et une amélioration de 25% sur notre score de “qualité de synthèse” (évalué par des humains), par rapport à un modèle 7B.

  • La complexité supplémentaire en vaut-elle la peine ? Pour notre cas d’usage (un assistant interne pour des experts), oui. Le gain en qualité et en fiabilité des réponses justifie l’investissement en infrastructure. Pour un chatbot grand public moins critique, la réponse serait probablement différente.