Skip to content
L3 会出事

幻觉:为什么会一本正经地编

这一页讲模型为什么会编造出根本不存在的东西。

先说个丢人的事 ​

我第一次拿大模型查冷门东西,问它某个小众乐器产自哪个国家。它给了个极其完整的答案:国家名、产区、两种流派的代表人物、成立年份。格式漂亮,语气笃定。

那个乐器根本不在那个国家。

我当时的反应不是「它错了」,是「我怎么一点都没怀疑」。这就是幻觉最麻烦的地方——它不长成胡话的样子,它长成一篇通顺的短文。

用之前记住这条:越是冷门的问题越要核。问一个你自己完全不懂的领域,它照样能给你一段挑不出毛病的答案——它不知道什么,它只是在接着往下写。

它为什么会编 ​

幻觉(hallucination)—— 编造出看着像真的、实际不存在的东西。

关键在于模型的工作方式。它不是数据库,是「预测下一个词最像什么」。你问它一个冷门问题,训练数据里这类内容本来就少,模型能做的只是把见过的相似句子拼成最像样的一个。给它一个具体地名,它就能把后面的句式一路顺下去。

温度(temperature)—— 控制随机性大小的旋钮,调低一点它会稍微稳一点,但不稳。地理事实不会因为随机性降低了就变出来。

顺带说一个反直觉的发现。2021 年那篇 TruthfulQA 里,参测的模型里最大的那个最不诚实。研究者 Stephanie Lin、Jacob Hilton 和 Owain Evans 的解释是:假答案就是从互联网文本分布里学来的,模型越大,学得越像互联网,也就把网上的误解学得越像。这跟「越大越强」的常识是反的。

编和猜,界线在哪 ​

2024 年 6 月,Nature 上那篇《Detecting hallucinations in large language models using semantic entropy》给了一个我觉得挺漂亮的切法。Sebastian Farquhar 和同事们把不确定性算在「意思」上,而不是算在具体的字上——同一个意思可以说一百种说法,不该因此就算成一百个不同的答案。

按他们的说法,模型有一类幻觉叫「捏造」(confabulation):就是硬编,跟抽签差不多。

顺便说一句,我的经历不算典型的 confabination。我的乐器错误更像是「知识的空洞被句式填上了」。这两类东西的检测难度差很多。

有没有可能根治 ​

我不认为靠调提示词能根治。

有一说「用检索增强生成(RAG)—— 先查资料再回答的做法」就能解决大半。实测下来会好转,但不会归零。我在几个用过检索增强的产品上试过:给的资料它不读,不给资料它就编,只是编得更短。

那位 2024 年的语义熵论文自己也承认——它能告诉你「这次大概在编」,但没法告诉你「这次一定对」。

延伸阅读 ​

  • TruthfulQA: Measuring How Models Mimic Human Falsehoods(Stephanie Lin、Jacob Hilton、Owain Evans,2021,arXiv)—— 817 道题,38 个类别(健康、法律、金融、政治都在里面),问的全是人也会答错的那种。最好那个模型只在 58% 的题上说了真话,人类是 94%。arXiv: 2109.07958
  • Detecting hallucinations in large language models using semantic entropy(Sebastian Farquhar、Jannik Kossen、Lorenz Kuhn et al.,2024,Nature)—— 不看具体字句、只看意思是否稳定。模型自己都说得含糊时,它能算出「这个答案大概率不可靠」。DOI: 10.1038/s41586-024-07421-0

动手试试 ​

挑一个你很熟的问题,比如你家楼下的早餐店几点开门、你最熟的一部剧的集数顺序。

同一个问题,在新对话里连问三次。注意是「新对话」,不是同一个窗口里追问——追问会把它带进上一轮的话里。

把三次的答案并排看。

稳定的那版不一定对,但不稳的那版一定别信。我试过的一个冷门问题,三次的年份分别是 1967、1971、1967。

下一站 ​

模型会编。但更麻烦的是,它编的东西还带着人的成见——这就轮到下一页的偏见。

内容用 VitePress 构建,站内链接全部为相对路径。