Les hallucinations sont souvent présentées comme un défaut fondamental des LLM. C'est à moitié vrai : elles ne disparaîtront pas, mais elles sont largement réductibles. Voici les 4 leviers qui comptent.

1. Donner au modèle le droit de dire "je ne sais pas"

Un LLM cherche à faire plaisir. Sans instruction contraire, il préfère inventer que décevoir. Pourtant, une simple ligne dans le system prompt change tout : "Si tu ne sais pas, dis-le explicitement. Mieux vaut un 'je ne sais pas' honnête qu'une réponse inventée."

Sur mes benchmarks, cette phrase seule réduit les hallucinations de 30-40 %.

2. Ancrer avec des citations

Si votre LLM répond à partir de documents (RAG), imposez qu'il cite les sources. Pas de source = pas de réponse. Format typique :

Réponds en citant les chunks pertinents sous forme [^id].
Si aucun chunk ne contient la réponse, dis "information absente".

Ensuite, vous pouvez programmatiquement vérifier que chaque affirmation est liée à un chunk. Faux-positifs quasi nuls.

3. Séparer "tâche" et "connaissance"

Un LLM peut raisonner parfaitement sur un texte que vous lui fournissez, mais halluciner quand on lui demande de se souvenir de trucs. Règle simple : utilisez le LLM pour transformer/raisonner, pas pour mémoriser. La mémoire, c'est votre base de données.

4. Température et sampling

Sur une tâche factuelle, temperature=0 (ou 0.1). Sur une tâche créative, 0.7-0.9. L'erreur classique est de laisser la valeur par défaut pour toutes les tâches. Pour les sorties structurées (JSON, extraction), temperature=0 est quasi obligatoire.

Le cas particulier des chiffres

Les LLM hallucinent massivement sur les chiffres précis (dates, montants, statistiques). Règle simple : un LLM ne calcule pas, ne compte pas, n'additionne pas. Toujours externaliser via tool use ou vérification post-génération.

Mesurer avant de jurer

Sans eval, "mon app hallucine trop" est un sentiment, pas une donnée. Construisez un jeu de 50-100 questions/réponses connues. Mesurez votre taux d'erreur. Améliorez. Re-mesurez. openai/evals ou Promptfoo font le job.

Les modèles hallucinent différemment

  • Claude : tend à dire "je ne sais pas" volontiers, peu enclin à inventer.
  • GPT : plus confiant, parfois à tort. Meilleur après calibration via system prompt.
  • Gemini : variable, en amélioration nette sur 2.5.
  • Petits modèles open source : hallucinent beaucoup plus que les frontières. À réserver aux tâches simples.

Besoin de fiabiliser une app IA existante ? Audit qualité disponible.