Le Modèle Architectural Triage-et-Voix pour Éliminer les Hallucinations des LLM
Un LLM dans un chatbot analyse une conversation et, au lieu de fournir le vrai numéro d'urgence, invente une ligne d'aide pour enfants. L'instruction "ne pas inventer de contacts" est ignorée. La raison est un conflit de tâches en une seule passe : l'analyse précise et la réponse empathique se disputent les tokens, conduisant à des hallucinations dans les données critiques.
Le Problème de l'Architecture à Passe Unique
Dans le schéma standard des produits LLM, l'entrée utilisateur va directement au modèle, qui produit la réponse finale. L'analyse nécessite une sortie JSON structurée avec des faits précis : participants, risques, objectifs. Formuler la réponse est une tâche créative impliquant la voix et le ton.
Combiner ces éléments en un seul prompt conduit à des compromis :
- Le modèle sacrifie la précision pour le style.
- Les hallucinations sont masquées en texte convaincant.
- Il est impossible de distinguer programmatiquement les faits de la fiction.
Augmenter la puissance du modèle (modèles de raisonnement, plus de tokens) réduit la fréquence des erreurs mais n'élimine pas le problème. Dans les cas complexes avec sous-texte, même les meilleurs modèles confondent les motifs et fabriquent des détails. Le risque concerne les données de confiance : prix, adresses, dosages, contacts de service.
Le Modèle Triage-et-Voix
Diviser le traitement en deux passes LLM avec un gardien backend entre elles.
Passe 1 : Triage. Analyse structurelle sans style. Le modèle extrait le signal en JSON :
{
"humeur" : "anxiété",
"est_crise" : false,
"type_crise" : null,
"participants" : [...],
"motifs" : [...]
}
Exemple de crise :
{
"humeur" : "drapeau_rouge",
"est_crise" : true,
"type_crise" : "violence"
}
Gardien backend. Code déterministe vérifie les drapeaux :
if (triage.estCrise) {
var contacts = await db.obtenirContactsCriseVerifies(triage.typeCrise);
prompt = modelePromptCrise.avecContacts(contacts);
}
Les données vérifiées de la base sont insérées. Routage par règles : crise → prompt spécial.
Passe 2 : Voix. Le modèle reçoit une entrée enrichie et génère une réponse dans le ton souhaité. Il n'analyse ni n'invente de faits.
Tests sur DeepSeek V3.2 (des dizaines de cas de crise) : zéro hallucination de contact.
Avantages de la Séparation
- Séparation des responsabilités. Le triage se concentre sur la structure (tokens pour les faits). La voix se concentre sur le style (tokens pour l'empathie). La qualité dans les deux dimensions s'améliore (vérifié sur 40 cas d'évaluation).
- Mise en cache. L'analyse est faite une fois. En changeant la voix (perspectives dans un bot Telegram), seule la Voix est réexécutée. Métriques : première réponse 30–45 s (contre 50–90 s), réponses suivantes 15–20 s.
- Sécurité. Le contrôle est dans le code, pas dans le prompt. Le modèle définit un drapeau ("quand"), le backend décide ("quoi"). Testable, prévisible.
Scénarios d'Application
Le modèle est pertinent pour les produits LLM avec :
- Analyse d'entrée + génération de sortie.
- Données de confiance (finance, références juridiques, médecine).
- Cas limites (crises, exceptions).
- Perspectives multiples sans réanalyse.
- Un point de contrôle nécessaire entre analyse et sortie.
Principe : le modèle analyse → le code décide → le modèle formule.
Signal de refactorisation : le prompt contient "NE PAS inventer [données]".
Points Clés
- Changement architectural : d'un appel à deux avec un gardien, éliminant le conflit de tâches.
- Métriques de performance : l'analyse est mise en cache, la Voix accélère 2–3 fois.
- Sécurité : le backend déterministe insère les faits, le modèle ne touche pas à la base de données.
- Évolutivité : applicable aux chatbots, analytiques, produits avec cas limites.
- Vérifié : 40 évaluations + des dizaines d'exécutions de crise sans hallucinations.
Risques de l'Architecture Naïve
Un appel = opération atomique sans validation. Manque de :
- Validation de la décision du modèle avant d'atteindre l'utilisateur.
- Cache d'analyse.
- Routage des cas limites.
- Insertion de données vérifiées.
Faire confiance à la génération probabiliste dans les endroits critiques est une vulnérabilité. Triage-et-Voix ajoute du contrôle : +1 appel, +1 gardien = pipeline vérifiable.
— Editorial Team
Aucun commentaire pour le moment.