Alors non. Une hallucination d’un LLM n’est pas un bug. Les adorateurs de l’IA me fatiguent, mais pour autant on ne doit pas raconter n’importe quoi sous prétexte de les ramener sur terre. Par la construction même d’un LLM, les données de sortie sont émergentes.
Il n’y a rien de factuel et déterministe dans ce qu’une IA va produire depuis des données d’entrée. En très très très basique, un neurone artificiel, c’est une entrée, combinaison de plusieurs sources associées à des poids, une valeur de seuil appliquée à l’entrée, et une sortie. Tant les poids que le seuil ne sont pas programmés. Ils sont déterminés par le LLM en fonction des résultats d’autres neurones ET des nombres aléatoires. Cette composition rend la sortie imprévisible, à multiplier exponentiellement par le nombre de neurones et de couches de réseaux de neurones.
Un bug, c’est quelque chose d’objectif : il y a un résultat qui n’est pas celui attendu à un processus algorithmique. Une hallucination est quelque chose de subjectif : on considère, nous humains avec nos attentes et notre intellect, que la sortie ne correspond pas à ce qu’elle devrait être pour « faire sens ». Mais ça ne veut rien dire, faire sens, pour un LLM. « Hallucination », c’est peut-être trop anthropomorphique comme terme pour certains, mais c’est pas mal trouvé, et ce n’est PAS un bug. Et c’est justement parce que ce n’est pas un bug que ce n’est pas corrigible. Comme une opinion idiote de votre belle-mère n’est pas un bug. Et n’est malheureusement pas corrigible.
D’ailleurs, je suis loin d’être le seul à l’affirmer. Cet article est ressorti récemment : OpenAI admits AI hallucinations are mathematically inevitable, not just engineering flaws. Il est impossible d’y échapper, quelle que soit la qualité de la donnée entrante. Je ne sais pas pourquoi Anthropic ou OpenAI auraient plus de crédibilité que moi sur le sujet mais admettons 😅
Un des problèmes qui n’est pas relevé par l’article ni le papier derrière est le manque de possibilité d’introspection épistémologique des LLM. En gros un LLM ne sait pas comment il est arrivé à ce qu’il écrit et ne peut le savoir, et donc n’a pas la possibilité d’évaluer lui-même ce qu’il écrit. En prenant un exemple simple : une addition. Si on fouillait comment des neurones humains travaillaient pour la résoudre, on ne comprendrait peut-être pas la démarche ; cependant l’humain appliquera un algorithme qu’il pourra expliquer. Le LLM n’applique rien et sa réponse a donc autant de valeur quand elle est bonne que pas quand elle ne l’est pas. Mais si on demande au LLM comment il est arrivé au résultat, il décrira pour autant l’algorithme. Alors qu’il ne l’a pas appliqué. C’est juste la « bonne réponse » à cette question.
On peut imaginer réduire à pas beaucoup les hallucinations, on peut imaginer rajouter des structures de contrôle autour (RAG, meta analyseur de réponses agentiques, …) : ne pas être capable d’expliquer comment on sait ce qu’on sait empêchera durablement les LLM de contrôler leurs hallucinations. Et encore une fois tel n’est pas le but d’un LLM par construction. L’hallucination, c’est le but. C’est ce que ça fait. Ce n’est pas un bug. On ne cherche pas à diminuer les hallucinations, mais à diminuer le nombre de fois où ces hallucinations ne correspondent pas (par hasard) à la réalité.
Le LLM qui a eu la mauvaise réponse à son addition comme celui qui a eu la bonne réponse les ont toutes deux hallucinées. Et comme il n’applique pas l’algorithme qu’un gamin apprend en CE1 pour le résultat (et ne sait même pas qu’il ne le fait pas), il ne peut pas se rendre compte qu’il le fait mal. Ni qu’il a oublié une retenue. Donc lui dire qu’il y a une faute aura trois conclusions : il nie, il dit qu’on a raison pour faire plaisir, ou il dit qu’on a raison parce qu’il a vu des données avec la même addition et sur la majorité d’entre elles un résultat différent que le sien. Hallucination.
((Et ces hallucinations sont souvent bluffantes. Suffisamment pour être très utiles. Ne me faites pas dire ce que je n’ai pas dit.))