Module 7 — Hallucinations : causes et parades
Un LLM produit parfois une phrase parfaitement bien écrite, plausible et fausse. Pas partiellement approximative : totalement inventée. C'est le principal obstacle à sa mise en production pour toute tâche factuelle. Pour notre assistant de support, une hallucination sur le délai de remboursement ou sur le contenu d'une garantie n'est pas une bizarrerie amusante : c'est un engagement de l'entreprise, potentiellement opposable. Ce module explique pourquoi cela se produit et ce qui marche vraiment pour le réduire.
Ce qu'est une hallucination
Le mot « hallucination » recouvre en fait deux phénomènes distincts.
- Hallucination intrinsèque : la sortie contredit ce qu'il y avait dans l'invite. Le contexte disait « livraison sous 48 h » et la réponse affirme « livraison sous 24 h ».
- Hallucination extrinsèque : la sortie ajoute des faits absents du contexte. Un numéro d'article inventé, une date qui n'existe pas, un article de loi imaginaire.
Les deux ont des causes différentes et se traitent différemment. Distinguer les deux dans son jeu d'évaluation (module 9) est la première étape pour progresser.
Pourquoi le modèle invente
Un LLM ne « ment » pas et ne « croit » pas non plus qu'il dit la vérité. Il produit, à chaque position, la continuation la plus probable selon son entraînement. Trois raisons structurelles rendent l'invention inévitable dans le cas général.
D'abord, l'objectif d'entraînement est de maximiser la vraisemblance du texte suivant. Ce texte est souvent lui-même approximatif dans le corpus : forums, blogs, encyclopédies à jour partielle. Le modèle apprend à imiter cette prose, y compris ses erreurs stylistiques — l'assurance de la formulation. Un contenu inventé se signale par un ton hésitant dans le corpus, et le modèle apprend à ne pas produire ce ton.
Ensuite, le modèle n'a aucun mécanisme pour distinguer « je sais » de « je ne sais pas ». Sa probabilité conditionnelle sur le jeton suivant est presque toujours définie et positive, y compris quand il devrait avouer son ignorance. Il n'y a pas de sortie spéciale « inconnu ».
Enfin, la production de texte est autorégressive. Une petite erreur au début d'une phrase — un numéro, un nom propre — ancre les jetons suivants dans un contexte imaginaire, et l'invention s'étoffe pour rester cohérente avec elle-même. La phrase suivante « la clause 4.2.3 du contrat stipule… » est très bien construite ; le problème est qu'il n'y a pas de clause 4.2.3.
Deux causes qui aggravent
Deux configurations d'usage augmentent nettement la fréquence des hallucinations.
- Les questions à fort recouvrement mémoriel apparent. Le modèle a vu passer beaucoup de choses proches du sujet, sans avoir vu exactement la bonne réponse ; il combine des fragments. C'est le cas typique des questions sur des versions récentes d'un logiciel, sur des filiales d'une entreprise, sur des personnalités mineures.
- Les questions sous-spécifiées. Le modèle comble le manque en inventant les hypothèses manquantes.
Pour notre assistant, une question du type « à combien s'élève la garantie sur les modèles récents ? » invite deux hallucinations : le modèle ne sait pas ce que « récents » désigne, et n'a jamais vu la garantie précise.
Ce qui marche : l'ancrage dans des sources
La parade principale n'est pas dans le modèle. Elle consiste à ne pas lui demander de deviner : on lui fournit les sources dont il a besoin, et on lui demande de s'y référer.
def repondre_avec_sources(question, extraits):
invite = (
"Reponds a la question du client uniquement en utilisant les extraits fournis. "
"Si l'information n'y figure pas, reponds exactement 'Je ne trouve pas cette information dans les documents fournis.'\n\n"
"--- Extraits ---\n"
+ "\n\n".join(f"[{i+1}] {e}" for i, e in enumerate(extraits))
+ f"\n\n--- Question ---\n{question}\n\n"
"Cite entre crochets le numero d'extrait pour chaque affirmation."
)
return generer(invite)
Trois éléments de cette invite comptent également.
- Une règle explicite : ne pas répondre au-delà des extraits.
- Une formule d'abstention littérale, à copier telle quelle. Sans cette formule, le modèle abstiendra dans son style, souvent trop poliment pour être détecté par un contrôle automatique.
- Une demande de citations, qui a un double effet : elle rend les hallucinations vérifiables (une citation vers un extrait inexistant est un signal net), et elle réduit leur fréquence parce que le modèle est conditionné à sourcer.
C'est le mécanisme central de la génération augmentée par récupération, développée au cours 18. On ne « corrige » pas le modèle : on change la tâche.
La vérification par un second modèle
Une fois la réponse produite, on peut la faire vérifier par un second appel, souvent au même modèle. Le principe est celui du contradicteur.
def verifier(question, reponse, extraits):
consigne = (
"Voici une question, une reponse et les extraits utilises. "
"Pour chaque affirmation de la reponse, indique si elle est directement "
"soutenue par les extraits (OUI/NON), et cite l'extrait."
)
invite = (
consigne
+ f"\n\nQuestion : {question}"
+ "\n\nExtraits :\n" + "\n".join(extraits)
+ f"\n\nReponse a verifier :\n{reponse}"
)
return generer(invite, temperature=0.0)
Cette vérification n'est pas gratuite — elle double le coût par requête — mais elle rattrape typiquement 70 à 85 pour cent des hallucinations extrinsèques dans un pipeline bien conçu. En cas de « NON » sur au moins une affirmation, on peut soit régénérer la réponse, soit basculer sur une réponse d'abstention prédéfinie, soit escalader à un opérateur humain.
L'abstention comme fonctionnalité de première classe
Un assistant utile doit savoir se taire. En pratique, cela veut dire deux choses.
- Une classe d'abstention dans le jeu d'évaluation. Sur un lot de questions dont la réponse n'est pas dans les documents, le taux d'abstention doit dépasser un seuil, par exemple 90 pour cent. C'est aussi mesurable que l'exactitude.
- Une frontière d'abstention réglable. Un modèle qui s'abstient toujours n'est pas utile ; un modèle qui ne s'abstient jamais est dangereux. Le bon point de fonctionnement dépend du coût relatif d'une mauvaise réponse par rapport à une réponse manquante.
Pour notre support, un remboursement promis à tort coûte plusieurs dizaines d'euros ; une escalade vers un opérateur coûte quelques minutes. L'arbitrage penche donc nettement du côté de l'abstention.
Ce qui ne marche pas
Plusieurs remèdes populaires ne réduisent pas réellement les hallucinations, ou seulement en apparence.
| Remède | Effet réel |
|---|---|
| Baisser la température à 0 | verrouille les erreurs autant que les bonnes réponses (module 5) |
| « Ne mens pas » dans l'invite système | aucun effet mesurable dans les études |
| Modèle plus grand | réduit certaines erreurs, en introduit d'autres, ne suffit jamais seul |
| Chaîne de pensée | améliore le raisonnement, pas la factualité brute |
| Vérification par le même modèle sans contexte | tend à confirmer sa propre réponse |
La liste est instructive : les remèdes qui ne coûtent rien à implémenter sont aussi ceux qui ne marchent pas. Un traitement sérieux des hallucinations passe par un travail sur les données (fournir des sources), sur la pipeline (vérifier après), et sur l'évaluation (mesurer l'abstention).
Un LLM produit ses réponses avec une confiance de ton stable, quelle que soit la vérité. Les probabilités du modèle sur son premier jeton corrèlent mal avec l'exactitude finale — un peu mieux que le hasard, pas assez pour prendre une décision. Utiliser la probabilité de la sortie comme « score de confiance » à afficher à l'utilisateur induit en erreur. Une vraie mesure de confiance passe par des méthodes externes : accord entre plusieurs échantillons, vérification par contradicteur, présence de sources.
Une manière rapide d'évaluer le risque d'hallucination d'un pipeline : poser cent questions volontairement mal fondées — un numéro de commande inventé, une garantie qui n'existe pas, un délai improbable. Compter combien de fois l'assistant s'abstient. En dessous de 80 pour cent, le pipeline n'est pas mûr pour la production ; au-dessus de 95, on peut envisager un déploiement encadré.
En résumé
- Les hallucinations sont structurelles : le modèle maximise la vraisemblance d'un texte plausible, sans mécanisme pour distinguer connaissance et invention.
- L'ancrage dans des sources — extraits placés dans le contexte, avec règle explicite et citations — est de loin la parade la plus efficace, prélude au cours 18 sur la génération augmentée par récupération.
- La vérification par un second appel rattrape la majorité des hallucinations extrinsèques, au prix d'un doublement du coût par requête.
- L'abstention doit être une fonctionnalité mesurée et réglable, pas un accident ; on la mesure aussi rigoureusement que l'exactitude.
Module suivant : comment servir un modèle à coût acceptable, par la quantification et les moteurs d'inférence optimisés.