Skip to content

引言

2023 年 5 月,纽约南区联邦法院。律师 Roberto Mata 的代理律师 Steven Schwartz 站在法官面前,脸色苍白。

法官 P. Kevin Castel 正在质问他提交的法律文书:文书中引用了六个先例案件——但法院系统里根本找不到这些案件

Schwartz 的解释令人难以置信:「这些案件是 ChatGPT 生成的,我不知道它会编造案例。」

最终,Schwartz 及其同事 Peter LoDuca 被罚款 $5,000,整个法律界为之震动。ChatGPT 编造了 6 个完全虚构的联邦案例,包括案件号、判决日期、甚至法官名字——全部是假的。

这就是大模型最危险的能力:幻觉(Hallucination)——用极其自信、极其逼真的方式说出完全错误的话。


什么是幻觉?

定义

幻觉(Hallucination):
  大语言模型生成看似合理但实际上不正确、
  无根据或与事实不符的内容。

关键特征:
  ├── 看起来很可信(语法正确、逻辑通顺、格式专业)
  ├── 模型很自信(不会说「我不确定」)
  └── 用户很难分辨(需要领域知识才能发现)

幻觉的类型

类型 1:事实性错误
  问:「珠穆朗玛峰有多高?」
  答:「珠穆朗玛峰海拔 7,848 米。」(实际是 8,848.86 米)
  → 数字编造,但看起来合理

类型 2:虚构引用
  问:「AI 安全方面有什么重要论文?」
  答:「Smith et al. (2023) 在 'AI Safety Framework' 一文中提出...」
  → 作者、论文、年份全部编造
  → 这就是那位律师遇到的

类型 3:合理推断但实际错误
  问:「李白和苏轼见过面吗?」
  答:「根据历史记载,李白和苏轼曾在汴京相聚...」
  → 李白(701-762),苏轼(1037-1101)
  → 差了 300 年,根本不可能见面

类型 4:知识截止问题
  问:「2025 年的最新 AI 新闻是什么?」
  答:(基于训练数据的最后时间点之前的新闻)
  → 不是幻觉,但同样不可靠

为什么模型会产生幻觉?

根本原因:模型不「知道」任何事情

大语言模型的工作原理:

  训练阶段:
    阅读海量文本 → 学习统计规律 → 调整权重

  生成阶段:
    给定上下文 → 预测下一个最可能的 token → 输出

  关键理解:
    模型不是在「回忆」事实,而是在「预测」最可能出现的文字
    它不知道什么是真的什么是假的
    它只知道什么文字在什么上下文中更「常见」

更深层的机制

为什么幻觉如此逼真?

  1. 语言模型擅长「填空」
     "根据 2023 年的研究,___"
     模型知道学术论文的常见格式和用词
     它会生成看起来像学术论文的文字
     即使内容是编造的

  2. 模型不知道「自己不知道什么」
     人类在被问到不懂的问题时会说「不知道」
     但模型没有元认知能力
     它只会生成「最可能的下一个 token」

  3. RLHF 训练可能加剧问题
     人类标注员倾向于奖励「有用的回答」
     模型学到:给出答案比说「不知道」更容易获得奖励
     → 倾向于编造答案而不是承认无知

幻觉的数学本质

语言模型的概率分布:

  P(下一个 token | 之前的所有 token)

  当模型的概率分布在「正确答案」和「错误答案」
  之间差距不大时,采样可能选到错误的那个

  特别容易出错的场景:
  ├── 冷门知识(训练数据少)
  ├── 具体数字(日期、统计量)
  ├── 引用和出处(论文、法律案例)
  └── 多步推理(每步都有误差,累积放大)

知识截止问题

模型的训练数据有时间边界:

  GPT-4:     训练数据截止到 2024 年初
  Claude 4:  训练数据截止到 2025 年初
  Gemini:    训练数据截止到具体版本不同

  之后发生的所有事情,模型都不知道。

  但模型不会主动告诉你「我的知识到此为止」
  它可能自信地用旧信息回答新问题

  例如:
  问:「OpenAI 的现任 CEO 是谁?」
  模型可能回答「Sam Altman」——这恰好是对的
  但如果是问某个最近才换人的职位,就可能错了

如何应对幻觉?

目前的解决方案

Level 1: Prompt Engineering
  "如果你不确定,请说「我不确定」"
  → 有一定效果,但不可靠
  → 模型有时仍然会编造

Level 2: RAG(检索增强生成)
  在回答前先检索相关文档
  → 让模型基于真实文档回答
  → 大幅降低幻觉(下一节详细讲)

Level 3: Grounding + Attribution
  要求模型标注信息来源
  → 用户可以验证
  → 但模型可能编造来源

Level 4: 多模型交叉验证
  用多个模型回答同一个问题,比较结果
  → 一致的部分更可信
  → 但成本高、耗时长

Level 5: 事实性微调
  在特定领域数据上微调模型
  → 提高该领域的准确性
  → 但不能完全消除幻觉

开发者的实践建议

减少幻觉的工程实践:

  1. 明确告知模型的知识边界
     System prompt: "你的知识截止于 2024 年。
                    对于之后的事件,明确表示你不了解。"

  2. 要求模型标注不确定
     "对每个事实性陈述,标注置信度(高/中/低)"

  3. 使用 RAG 而不是依赖模型记忆
     不问 "告诉我关于 X 的知识"
     而是检索文档 + "基于以下文档回答"

  4. 输出结构化 + 来源引用
     要求输出包含 source 字段
     方便程序验证来源是否存在

  5. 关键决策不用 LLM
     医疗诊断、法律建议、金融决策
     这些场景不应完全依赖 LLM 的输出

本节小结

概念要点
幻觉模型用逼真的方式输出错误内容——最危险的 AI 问题之一
根本原因模型预测最可能的 token,不知道什么是对的
类型事实错误、虚构引用、错误推断、知识过期
应对方法RAG 最有效——让模型基于真实文档回答,而不是靠记忆
开发建议明确边界、要求标注不确定、使用 RAG、关键决策不用 LLM

思考题

  1. 那位律师用 ChatGPT 写法律文书的故事中,谁应该承担责任?律师、OpenAI、还是两者都有?
  2. 为什么 RAG 能有效减少幻觉?它的原理是什么?(提示:想想信息来源从「模型记忆」变成了什么)
  3. 如果模型能够 100% 区分自己「知道」和「不知道」的内容,幻觉问题就解决了吗?