无需恐慌地理解幻觉
一个会编造内容的语言模型并没有出故障——它正是在做自己被造出来要做的事。本文讲清楚幻觉为何发生,以及如何驾驭它。
"幻觉"是一个用来形容语言模型满怀自信地陈述虚假内容的词——一条并不存在的看似可信的引文、一个听起来干净利落却是错的事实、一句从没人说过的引语。这个词让它听起来像是个故障,是某种偶尔抽风的东西。它不是。幻觉是这些模型运作方式的可预测结果,而理解这一点,正是恐惧它与驾驭它之间的分界线。
这篇解析旨在消除恐慌,但不消除谨慎。一个会编造内容的模型,在错误的场景里确实有真实的风险。但一旦你看清这种行为的来源,风险就是可理解、可控制的。
模型实际在做什么
语言模型不像数据库存储记录那样存储事实。它从海量文本中学习模式,并在给定某段输入时,生成与那些模式最一致的续写。它的核心能力是合理性——生成读起来像是通常会接在后面的那类文本。
大多数时候,合理与真实是吻合的,因为真实的陈述在训练文本中很常见。但模型优化的是合理性,而非真实性,这两者在边缘地带会分道扬镳。当它们分歧时,模型跟随的是合理性,因为那是它被造出来唯一会去追踪的东西。一条捏造的引文看起来和真实的一模一样。一个错误的日期,嵌在句子里和正确的日期一样顺滑。流畅并不是正确的证据;流畅本身就是产品。
为什么自信的捏造是内生的,而非外加的
这里有个令人不安的核心:生成正确答案的,和制造幻觉的,是同一套机器。并不存在一个独立的"编造内容"模块偶尔被打开。当模型熟知某个模式时,你得到一个正确答案。当它不熟悉时——因为信息稀少、缺失,或从未学过——模型并不会停下。它照样生成那个看起来最合理的续写,带着同样流畅的自信,因为它的基本运作中没有任何东西能区分"我知道这个"和"这就是一个答案该有的样子"。
这就是为什么幻觉无法被彻底修补掉。它是一个系统的属性,这个系统总会生成某种东西,却没有内置的、对自身知识边界的感知。你可以减少它、遏制它、检测它,但你不能假定某个未来的模型已经消除了它,因为它早已编织进模型生成的方式之中。
把它和人如何处理自己知识的边缘做个对比会有帮助。被问到一件我们只记得一半的事时,我们会感到那份不确定——而那种感觉促使我们去含糊其辞、加上限定,或者去查证。模型没有一个对等的、能可靠地标记出"我现在是在猜"的内在信号。无论它是站在坚实的地面上还是在即兴发挥,它都只是生成下一个合理的词元,而这两者之间的过渡,从内部看是无缝的。当知识耗尽时,没有内部警报会响起。比起任何单个的错误,正是那个缺失的警报,才是问题的根源。
为什么自信才是危险的部分
如果幻觉听起来不确定——含糊、犹豫、明显没把握——那它的危害会小得多。危险在于,一个捏造的答案是用和正确答案一样平稳、权威的口吻说出来的。模型的口吻不是其可靠性的信号。无论对错,它读起来都很自信,因为自信是流畅文本的一种特征,而非内在确定性的读数。
这打破了人类一直依赖的一个习惯。我们把另一个人的犹豫当作复核的提示。模型把这条提示剥夺了。实际后果是:你不能用模型的口吻来判断要不要信任它。 一个顺滑、具体、结构良好的答案,被编造出来的可能性和一个笨拙的答案完全一样——有时甚至更高,因为具体性正是让捏造显得可信的一部分。
幻觉何时会加剧
幻觉并非均匀分布。它在可预测的条件下飙升,而了解这些条件,能告诉你何时要当心:
- 冷僻或罕见的主题。 训练覆盖越稀薄,模型就越是在即兴发挥。
- 具体的细节。 精确的数字、日期、人名、引文和引语都是高风险的,因为它们有许多看似合理却错误的变体,且没有"差不多就行"的余地。
- 带有错误前提的问题。 问一件并不存在的事,模型往往会自信地编造一段描述,而不是反驳你。
- 被迫作答的压力。 一个要求给出明确答复、又不允许说"我不知道"的提示,会让捏造更容易发生。
共同的主线,是问题所要求的与模型可靠知道的之间的落差。这道落差越宽,框架越是逼着要一个确凿答案,编造的空间就越大。
还有一个更微妙的触发因素:一个答案越长、越精巧,就有越多机会让一个游离的捏造细节溜进来。一句简短的事实回复,出错的表面积很小。一段大而全的、充满具体内容的多段落回应,则表面积巨大——而每一个具体内容都是一个或许会兑现、或许不会的小赌注。这就是为什么一个模型可以在某个主题上大体正确,却在周围的行文里埋下一些自信的小错误。整体的形状是对的;那些装饰是不可靠的。又长又详细、听起来权威的答案,理应得到更多审视,而不是更少。
如何驾驭它
你无法消除幻觉;你只能围绕它做工程设计。那些经得起时间的技巧:
- 用提供的材料锚定模型。 把相关文档交给它,并指示它只依据这些材料作答。这是最有效的单一杠杆,因为它用"从证据中阅读"取代了"从记忆中回忆"(这正是检索增强生成的核心思想)。
- 允许"我不知道"。 明确允许并奖励模型在材料不包含答案时拒绝作答。许多捏造都来自那个隐含的、总要生成点什么的要求。
- 要求来源。 要求引用或所用的具体段落,能让答案可被核查——并暴露出捏造的依据。
- 核实重要内容。 对于高风险的具体内容,把输出当作有待确认的草稿,而不是可以信任的事实。
- 从设计上降低风险。 在错误答案容易被发现和纠正的地方使用模型,并在不容易的地方加上人工审查。
这些都不会让模型变得真实。它们让模型的错误变得可被捕捉,而这才是可实现的目标。
人类判断仍然属于哪里
正确的姿态既不是嗤之以鼻,也不是盲目信任。模型是一个非凡的、能生成合理、有用、大体正确文本的生成器——同时也是一个不可靠的、判断哪部分正确的仲裁者。所以你要把人留在回路里,恰恰在出错代价昂贵的地方:医疗、法律、金融、安全攸关,或任何会被发表、会被据以行动而不再复看一眼的事情。对于低风险、易核实或探索性的工作,一个罕见的自信错误是可以容忍的成本。让信任的程度与出错的代价相匹配,这就是全部的纪律。
总结
幻觉不是一个等它过去的 bug;它是一个被造来生成合理文本、而非已核实真相的系统的阴影面。生成正确答案的同一套机器也在用同样自信的口吻捏造,而模型没有内置的、对自身知识何处终结的感知。所以,别再把流畅当成可靠了。用真实材料锚定模型,给它说"我不知道"的许可,要求来源,并核实重要内容。把幻觉当作一个已知的属性来驾驭——心平气和地——这些模型就会成为强大的工具,而不是让你猝不及防的自信骗子。
