跳到主要内容
LLM

如何应对幻觉 - 减少不符合事实的回答

LLM 把不符合事实的内容说得煞有介事的现象 (幻觉) 无法消除,但可以减少并发现它。本文说明其产生的机制和容易发生的场景、靠出处、资料和人工确认的对策,以及如何看懂基准测试的准确性。

LLM 为什么会说出不符合事实的话

LLM (大语言模型) 并不是查证事实后作答,而是选择作为后续可能出现的词来组成句子。因此,即使是不知道或记忆模糊的事,它也会用自信的语气编出煞有介事的回答。这叫作幻觉。

幻觉无论换模型还是改设置都不会消失。能做的是采用不容易引发它的提问方式,以及发现已经出现的错误。了解容易发生的场景,就知道该确认哪里,确认的精力也会减少。

本文依次说明产生的机制、容易发生的场景、4 项对策,以及如何看懂基准测试的准确性。

预测下一个词的机制会产生错误

LLM 阅读大量文本,学习某个词之后容易出现哪个词。句子的形式和措辞因为反复出现,所以能正确学会。另一方面,像某个人的生日这样只出现一两次的事实,区分正确答案与错误答案的线索很少。

2025 年的一篇论文论证,在无法区分正确句子与错误句子时,错误在统计上是无法避免的。而且,很多评测在答案正确时给分,回答不知道则给 0 分。在这种评分下,靠猜作答分数更高,所以模型被培养成不知道时也会作答。

也就是说,煞有介事的错误与其说是构造上的缺陷,不如说是从学习方式和被评测的方式中自然产生的。要记住语气的自信并不代表答案的正确。

容易发生的场景在哪里

容易出错的,是无法从句子形式判断正确与否、不记得事实本身就答不出的部分。

  • 专有名词:人名、公司名、商品名、地名
  • 数字:日期、金额、比例、统计数值
  • 引用:书和论文的标题、法规条文、URL
  • 新的事件:训练数据截止日期之后的事
  • 细节性的专业内容:在面向大众的文章中很少出现的知识

引用尤其危险。它有时会以像模像样的形式编出并不存在的论文标题或条文编号。另一方面,在文章的摘要、改写和结构建议这类不依赖事实正确性的工作中,错误的危害较小。要先分辨出委托的工作中哪些部分依赖事实。

减少幻觉的 4 项对策

对策有以下 4 项。组合得越多错误越少,但不会降到零。

  1. 让它给出出处:让它为每个主张标出依据的出处或引文,撤回找不到依据的主张
  2. 提供资料:提供作为回答依据的文档,并要求只用这份资料作答。检索资料并提供给模型的机制叫作 RAG
  3. 不知道时让它直说:在指令中写上“资料里没有的内容,可以回答不知道”
  4. 由人确认:专有名词、数字和引用,要打开原始资料确认

Anthropic 也建议告诉模型可以回答不知道,并让它为每个主张给出佐证的引文。把同一个问题问几次,找出回答互相矛盾的部分,也是发现错误的线索。

例如询问公司内部的规章时,就贴上规章文档,并写明“只用这份文档作答。文档里没有的内容,回答不知道。把作为回答依据的句子从文档中原样引用附上”。附有引文的话,确认时只要打开引文的位置就行。

在法律、医疗和税务这类错误危害很大的问题上,LLM 的回答只作为查资料的入口,最后要找专家或官方资料确认。Anthropic 也写明重要的信息一定要确认。

如何看懂基准测试的准确性

基准测试 (用共同的题目来测量的考试) 的正确率,是答对的题目所占的比例。回答不知道的题目和答错的题目,多数情况下同样算作失误。按这种算法,越爱靠猜的模型正确率越容易上升。

在事实正确性很重要的工作中,不仅要看正确率,也要看答错的比例。也有把回答分类评分的基准测试。例如 2024 年公开的 SimpleQA,把对简短事实问题的回答分为答对、答错和未作答 3 类来评分。正确率相同的话,答错比例低的一方,是确认精力更少的模型。

用途页面的评价并没有直接测量不符合事实的回答有多少。要在自己的工作中确认,就准备 10 个左右知道答案的问题,分别数出错误的数量和回答“不知道”的数量。

总结 - 只确认依赖事实的部分

幻觉产生于预测下一个词的机制,以及让靠猜占便宜的评测。它无法消除,所以要分辨出专有名词、数字、引用和新事件这类容易出错的部分来确认。使用回答前给依赖事实的部分做上记号,只用原始资料确认这些部分,比重新查证全文省力。

对策是给出出处、提供资料、让它说不知道、由人确认这 4 项。如果常用提供资料让它作答的方式,就到读取文档并作答的页面确认长文档阅读理解的评价。

这个页面对你有帮助吗?

相关用途