Comment l'évaluation basée sur l'entropie peut vous indiquer quand votre modèle invente des données — et à quel endroit — : tout cela dans « artefactual », notre bibliothèque Python.
Remarque : cet article fait suite à celui rédigé par nos amis d'Ardian, qui explique en détail à quel point une IA responsable est essentielle pour les institutions financières. N'hésitez pas à le consulter !
Le problème des hallucinations
Les grands modèles linguistiques sont d'une efficacité étonnante. Ils savent résumer, traduire, raisonner et coder (mieux que moi). Mais contrairement à moi, ils sont également connus pour inventer des faits avec une assurance déconcertante.
Dans la littérature consacrée au traitement du langage naturel (NLP), on parle d’« hallucination » pour désigner tout contenu généré par un modèle qui est factuellement incorrect, absurde ou non conforme à une source fournie, tout en semblant parfaitement plausible. Les conséquences vont de bénignes (une mauvaise réponse à un quiz) à graves (une citation juridique inventée, un dosage incorrect de médicaments). À mesure que les organisations intègrent les modèles de langage de grande envergure (LLM) dans leurs systèmes de production, la question passe de « ce modèle peut-il générer un texte utile ? » à « peut-on se fier à ce qu’il vient de dire ? »
Prenons un exemple concret. Vous travaillez dans un établissement financier et vous posez la question suivante à votre LLM local :
« Quel était le chiffre d'affaires net d'Emerson Electric en 2023 ? »

Le modèle répond : « Emerson Electric a déclaré un chiffre d'affaires net d'environ 15,2 milliards de dollars pour l'exercice 2023. » Cela semble plausible. Mais est-ce exact ? Vous n'avez pas le rapport annuel sous les yeux. Vous ne disposez d'aucune donnée de référence à laquelle vous comparer. Vous n'avez que le résultat fourni par le modèle… et le doute.
Voici le contexte dans lequel nous travaillons. Pas d'oracle. Pas de réponse de référence au moment de l'inférence. Juste une réponse générée par un modèle de langage (LLM) et les métadonnées qu'il produit lors de sa génération. L'objectif : quantifier la probabilité que ce résultat soit le fruit d'une hallucination, à partir d'un seul cycle de génération.
Détecter les hallucinations : c'est plus difficile qu'il n'y paraît
La méthode par force brute
Une idée qui vient naturellement à l'esprit consiste à poser plusieurs fois la même question au modèle et à vérifier si les réponses concordent. Si cinq des six essais donnent « 15,2 milliards de dollars » et un seul « 18,7 milliards de dollars », ce consensus est rassurant. C'est le principe qui sous-tend des méthodes telles que SelfCheckGPT, qui mesurent la cohérence entre plusieurs résultats échantillonnés — une approche de type « Monte Carlo » pour la détection des hallucinations.
Ça marche. Mais cela présente deux inconvénients majeurs :
- Coût. Chaque génération supplémentaire multiplie votre budget d'inférence. Pour SelfCheckGPT avec 10 échantillons, vous payez environ 10 fois le coût de calcul, auquel s'ajoute le coût d'un modèle de similarité sémantique. À grande échelle, cela devient prohibitif.
- Granularité. Les méthodes multi-tentatives fonctionnent au niveau des séquences. Elles vous indiquent que « cette réponse semble peu fiable », mais sans préciser quelle partie de la réponse pose problème. Une réponse peut être exacte à 90 %, tout en comportant un seul chiffre erroné niché au milieu. On aimerait savoir où exactement.
Ces limites nous ont incités à rechercher un autre type de signal : un signal peu coûteux, qui ne nécessite qu’une seule opération et qui fonctionne au niveau des tokens (les éléments individuels des mots que le LLM manipule en interne).
Le signal est déjà là
Lorsqu’un modèle LLM génère du texte, il ne se contente pas de produire des tokens. À chaque étape, il calcule une distribution de probabilités sur l’ensemble de son vocabulaire : « compte tenu de la consigne et de tout ce que j’ai généré jusqu’à présent, quelle est la probabilité d’apparition de chaque token suivant possible ? »Le token retenu est sélectionné. Les autres sont écartés. Mais ces probabilités (et plus précisément, leur dispersion) fournissent des informations sur le niveau de confiance interne du modèle.
Si le modèle est très sûr de lui, la majeure partie de la masse de probabilité se concentre sur un seul élément. Si le modèle hésite, la probabilité se répartit entre plusieurs candidats. C'est précisément cette répartition que mesure l'entropie.
L'entropie : un petit détour
L'entropie est une grandeur issue de la théorie de l'information qui mesure l'incertitude d'une distribution de probabilité. Le principe est simple. Imaginez trois boîtes. L'une d'elles contient un biscuit. Vous devez deviner laquelle.

- Scénario A : Vous savez que le biscuit se trouve dans la boîte n° 2. Votre incertitude est nulle. Entropie = 0.
- Scénario B : Vous n'en avez aucune idée. Chaque boîte a une probabilité de 1/3. Votre incertitude est maximale. Entropie = log₂(3) ≈ 1,58 bits.
Remplacez maintenant les cases par des tokens et le cookie par le mot « correct » suivant. À chaque étape de génération, un LLM est confronté à ce choix précis — sauf qu’au lieu de 3 cases, il choisit parmi un vocabulaire de plus de 100 000 tokens. Lorsque le modèle est sûr de lui, un token domine et l’entropie est faible. Lorsqu’il hésite, l’entropie augmente.

La distribution de probabilité varie selon deux cas différents.
L'idée principale est qu'une entropie élevée à une position donnée du token est associée à un risque d'erreur plus élevé à cette position. Le modèle vous indique, à travers sa distribution de probabilité, qu'il n'est pas certain de ce qui va suivre. Il suffit de l'écouter.
De l'entropie aux scores d'hallucination
EPR : Taux de production d'entropie
Notre premier indicateur, l'EPR (taux de production d'entropie), est direct. Pour chaque token de la séquence générée, nous calculons l'entropie des K meilleures probabilités de token prédites par le modèle. Nous faisons ensuite la moyenne sur l'ensemble de la séquence. Cela donne un chiffre unique qui reflète l'hésitation moyenne du modèle sur l'ensemble de la réponse.
Il s'agit d'un indicateur non supervisé : aucune étiquette n'est requise. Dans nos expériences (publiées lors de l'ECIR 2026), l'EPR atteint à lui seul des scores ROC-AUC compris entre 74 et 81 sur TriviaQA avec quatre grands modèles de langage (LLM) différents. Pas mal pour un indicateur qui ne coûte pratiquement rien, si ce n'est un simple passage de génération.
Mais nous pouvons faire mieux.
WEPR : Taux de production d'entropie pondéré
L'entropie brute traite tous les rangs de tokens de la même manière. La contribution à l'entropie du token classé en 1er position (le plus probable) et celle du token classé en 10e position sont pondérées de la même façon. En pratique, la manière dont l'incertitude se répartit entre les rangs fournit des informations discriminantes.
Le WEPR (EPR pondéré) apprend un ensemble de poids afin de rééquilibrer ces contributions. Il utilise deux signaux :
- L'entropie pondérée moyenne sur l'ensemble de la séquence — qui reflète l'hésitation globale.
- La contribution maximale à l'entropie par rang — permettant de détecter les pics d'incertitude. Un seul moment de forte hésitation peut être le signe caractéristique d'une hallucination, même si le reste de la séquence a été généré avec assurance.
Ces caractéristiques sont intégrées dans un modèle de régression logistique, entraîné sur un ensemble de données étiquetées. La fonction sigmoïde renvoie une probabilité calibrée :
« Cette réponse a 86 % de chances de contenir une hallucination. »

Au-delà de la classification, WEPR génère également des scores au niveau des tokens. Chaque token de la séquence générée se voit attribuer sa propre probabilité d'hallucination, ce qui vous permet d'identifier précisément les parties d'une réponse qui méritent d'être examinées de plus près. Ce calcul s'effectue en temps réel, token par token, au fur et à mesure que le modèle génère la séquence — nul besoin d'attendre la sortie complète.

Et les étiquettes ?
Une méthode supervisée nécessite des annotations. L'étiquetage manuel de milliers de paires question-réponse est un processus fastidieux. Nous avons donc recours à une approche utilisant un modèle de langage de grande capacité (LLM) comme juge: un modèle distinct compare chaque réponse générée à la réponse de référence connue et la classe comme correcte ou incorrecte.
Est-ce fiable ? Nous avons validé ce système par rapport à des évaluateurs humains. Un groupe de 15 chercheurs a étiqueté manuellement plus de 1 300 paires de réponses. La concordance entre le système d'évaluation automatisé et les évaluateurs humains a atteint 95,7 %, avec un coefficient Kappa de Cohen de 0,90. Les étiquettes générées automatiquement constituent un indicateur fiable du jugement humain et sont suffisamment robustes pour permettre l'entraînement d'un détecteur d'hallucinations.
Voici artefactual : à vous de jouer.
Nous avons regroupé tout cela dans une bibliothèque Python open source : artefactual.
La bibliothèque est fournie avec des poids d'étalonnage précalculés pour plusieurs familles de modèles (Mistral-Small, Falcon-3, Phi-4, Ministral-8B), ce qui vous permet de commencer immédiatement à évaluer les résultats sans avoir à exécuter de pipeline d'entraînement. Elle analyse d'emblée les résultats provenant de vLLM, de l'API OpenAI Chat Completions et de l'API OpenAI Responses.
Voici l'exemple d'utilisation le plus simple qui soit :

Les scores au niveau des tokens sont particulièrement utiles pour la visualisation. Chaque token de la réponse se voit attribuer sa propre probabilité d'hallucination, que vous pouvez représenter sous forme de dégradé de couleurs : vert pour les tokens fiables et rouge pour les tokens incertains. D'un seul coup d'œil, vous voyez exactement quelles parties d'une réponse méritent d'être examinées de plus près.
Dans un pipeline RAG
C'est dans le domaine de la « génération augmentée par la recherche » que cela prend tout son sens. Imaginez un processus qui extrait des documents d'une base de connaissances et les fournit comme contexte à un modèle de langage de grande envergure (LLM). Si la recherche échoue (documents erronés, pages manquantes, contexte incomplet, etc.), le modèle tentera de combler les lacunes à partir de sa mémoire paramétrique, et c'est là que les hallucinations font leur apparition.
Avec artefactual, vous pouvez ajouter une porte :

Notre article scientifique en bref — Nos conclusions
Nous avons testé les modèles EPR et WEPR sur quatre grands modèles de langage (Mistral-Small-24B, Falcon-3–10B, Phi-4, Ministral-8B) dans le cadre de trois tâches : la détection des hallucinations sur TriviaQA, la généralisation à WebQuestions et la détection des contextes manquants dans un contexte RAG financier.
Quelques points forts :
- WEPR surpasse systématiquement les méthodes existantes. Il devance à la fois SelfCheckGPT (une méthode multi-shot nécessitant 10 fois plus de puissance de calcul) et HalluDetect (une méthode single-shot concurrente) dans la quasi-totalité des combinaisons modèle-ensemble de données.
- Il n'est pas nécessaire d'avoir beaucoup de probabilités logarithmiques. Les performances atteignent un plateau lorsque le nombre de probabilités logarithmiques accessibles par token est compris entre 8 et 10. Même avec un accès limité à l'API, le signal est bien présent.
- Ce modèle est polyvalent. Le modèle WEPR, formé sur TriviaQA, s'adapte bien à WebQuestions et même à un corpus financier spécialisé, permettant de détecter les cas où un système RAG a généré des réponses sans contexte suffisant.
- C'est rapide. L'évaluation prend environ 80 microsecondes par séquence. À titre de comparaison, cela prend plus de 10 secondes avec SelfCheckGPT.
Dans le cadre de nos expériences sur une tâche RAG dans le domaine financier (analyse des rapports annuels 10-K issus de l'ensemble de données ArGiMi-Ardian), WEPR a atteint un AUC-ROC de 93,6 % pour la détection des réponses générées sans contexte approprié. Ce résultat constitue un indicateur fort justifiant le lancement d'un deuxième cycle de recherche.
Remarque concernant l'accès aux probabilités logarithmiques :
Tout ce qui a été décrit ci-dessus repose sur un élément essentiel : l'accès aux probabilités de log au niveau des tokens fournies par le modèle. C'est ce qui nous permet de calculer l'entropie et, par extension, les scores d'hallucination.
À l'heure actuelle, cet accès n'est pas garanti. Anthropic ne fournit pas les probabilités logarithmiques via son API. OpenAI les propose pour les modèles sans capacité de raisonnement : vous pouvez demander les « top_logprobs » avec GPT-5.4 ou GPT-5.4-mini, mais uniquement si vous définissez l'effort de raisonnement sur « none ». En revanche, Google permet d'accéder à toutes les probabilités logarithmiques via son API « generate_content ».
Les modèles à poids ouverts fournis via vLLM ou des moteurs d'inférence similaires offrent un accès complet.
C'est important. Les probabilités logarithmiques constituent un indicateur simple et riche en informations. Leur calcul n'entraîne aucun coût supplémentaire (le modèle les calcule de toute façon lors de la génération) et elles permettent de mettre en œuvre toute une catégorie de méthodes de quantification de l'incertitude, y compris la nôtre. En restreignant leur accès, on pousse les utilisateurs soit à se fier aveuglément aux résultats du modèle, soit à recourir à des méthodes de détection multi-tentatives coûteuses.
Si vous utilisez des modèles de langage (LLM) en production et que vous accordez de l'importance à la fiabilité des résultats, la disponibilité des probabilités logarithmiques devrait faire partie de vos critères de sélection de modèles. Et si vous êtes fournisseur de modèles : la publication des probabilités logarithmiques est l'un des moyens les plus économiques de renforcer la fiabilité de vos modèles.

BLOG






