开篇故事:当AI一本正经地说瞎话 / Why Your AI Lies Confidently
第 1 章:开篇故事:当AI一本正经地说瞎话
Why Your AI Lies Confidently
---
2023 年 5 月 27 日,纽约联邦法院的庭审记录里出现了一份令人瞠目结舌的法庭文书。一位名叫 Steven Schwartz 的资深律师,提交了一份长达 10 页的法律意见书,引用了六个所谓的"先例判例"(precedent cases)来支持自己的主张。文书措辞专业,引用规范,看起来无懈可击。
然而法官 P. Kevin Castel 在审阅后发现了一个严重的问题:这些判例根本不存在。
六个判例,六个全是 ChatGPT 凭空捏造的。其中一个叫 *Varghese v. China Southern Airlines*,细节完整到有具体的判决日期、引用编号、航空公司名称,甚至连判决法官的名字都有。唯一的问题是:这条判例在所有法律数据库里都查无此案。
Schwartz 律师事后承认,他用 ChatGPT 来"补充研究",并在没有核实的情况下直接提交给了法庭。法官在判决书中写下了后来广为流传的一句话:
> "These submissions were made in bad faith. Counsel was unaware of the hallucination problem, or simply ignored it. Either way, the result was a fake judicial opinion." > 「这些文书的提交是出于恶意。律师要么不知道'幻觉问题'的存在,要么选择忽视它。无论哪种情况,结果都是一份伪造的司法意见。」
Schwartz 律师因此被吊销执业资格,并被罚款 5,000 美元。
这不是科幻情节,不是电影桥段,而是 2023 年真实发生的事件。你可能会觉得:"一个律师怎么会这么不专业呢?"
但如果你也曾经和 ChatGPT、Claude、Gemini、文心一言、通义千问打过交道,你大概率有过类似的"细思极恐"的经历——AI 给你的回答看起来头头是道、逻辑严密,但仔细一查,全是假的。
这种现象有一个专业名字,叫 Hallucination(幻觉)。
这是大模型时代最普遍、最隐蔽、最危险的问题之一,也是我们这本书要解决的核心问题。
---
1.1 幻觉(Hallucination):AI 的"做梦"机制
1.1.1 什么是幻觉?
幻觉(Hallucination),在大模型的语境下,指的是模型生成了看似合理但事实上错误、无依据或完全捏造的内容。
用更通俗的话讲:AI 在一本正经地胡说八道。
这里的关键不是"错误"。所有的系统都会出错,包括搜索引擎、计算器、专家系统。关键在于AI 出错的方式非常独特:
- 它不是沉默,而是**自信满满**地输出。
- 它不是混乱,而是**结构完整、逻辑连贯**。
- 它不是含糊,而是**附带具体细节**(数字、日期、人名、引文)。
这就让幻觉变得格外危险。因为它欺骗的恰恰是那些有一定专业素养、懂得看"语言质量"的人。一个完全不懂的人可能会质疑;而一个受过训练的人,会被那种"专业感"说服,反而失去了怀疑的警觉。
A hallucination is not just a wrong answer — it's a confidently delivered, beautifully wrapped lie.
1.1.2 幻觉的三个根本原因
为什么大模型必然会"做梦"?这要从它的工作原理说起。
第一个原因:模型的本质是"下一个 token 预测器"。
你看到的 ChatGPT、Claude、文心一言,它们在底层做的是同一件事:给定前文,预测下一个最可能出现的词(token)。
它不是在"思考",不是在"推理",而是在做"文字接龙"。只不过这个接龙玩得无比复杂——它会综合考虑上下文、语法、语义、风格、事实关联性,然后挑出概率最高的下一个词。
这种机制天然地倾向于"流利"和"连贯",而非"准确"和"真实"。如果某个领域的训练数据稀缺,模型会自动用其他领域的知识去"填补"空白,结果就是幻觉。
第二个原因:训练数据本身有截止日期,而且是不完整的。
GPT-4 的训练数据截止于 2023 年 10 月(不同版本略有差异),Claude 是 2024 年初,国产模型通常在 2023-2024 年之间。
这意味着:
1. 截止日期之后发生的事,模型完全不知道。 2. 截止日期之前的某些事,模型也可能因为数据清洗策略而不记得。 3. 更重要的是,模型的训练数据是公网可见的数据的子集——企业的内部文档、私有数据库、付费墙后面的内容、未公开的研究报告,模型统统没见过。
第三个原因:模型没有"我不知道"的本能。
当一个普通人不确定答案时,他通常会说"这个我不太清楚"或"让我查一下"。但大模型没有这种自我认知的"刹车"机制。它的训练目标是"回答"而非"承认无知",所以它倾向于总是给出一个看起来合理的回答——即使这个回答是从 0 编出来的。
这就导致了一个有点反直觉的现象:模型越强大、越流畅,它说谎的能力也越强。因为更强的语言能力 = 更强的"伪造可信内容"的能力。
---
1.2 三个真实翻车现场:幻觉如何在不同行业"作妖"
理论讲了这么多,让我们看几个真实发生的案例。这些案例都来自公开报道,每一个都曾引发过广泛讨论。
1.2.1 案例一:法律界的"伪造判例"事件
我们开头提到的 *Mata v. Avianca, Inc.* 案只是冰山一角。
2023 年 6 月,Schwartz 案被曝光后,全美范围内陆续发现了超过 150 起类似的 AI 伪造法律引用案件。有些是律师提交的,有些是当事人自己写的诉状。这些文件里充斥着虚构的判例号、虚构的法院判决、虚构的法官意见。
更让人担忧的是,这些案件并非都发生在不懂技术的小律所。在 Schwartz 案中,Schwartz 律师拥有超过 30 年的执业经验,是 Levidow, Levidow & Oberman 律所的合伙人。他不是不懂法律的菜鸟,他只是信任了 AI 输出的"专业感"。
这件事之后,美国多个州法院开始出台强制性规定,要求律师披露 AI 工具的使用情况并独立核实所有法律引用。纽约、得克萨斯、加利福尼亚、新泽西等州的法院都相继更新了执业规则。
1.2.2 案例二:医疗 AI 的致命建议
如果说法律界的错误还可以"事后修正"(虽然代价高昂),医疗领域的幻觉可能直接危及生命。
2024 年的一项研究测试了多个主流大模型在医疗问题上的表现。研究人员向 ChatGPT-4、Claude 3、Gemini Advanced 等模型询问了关于真实药物相互作用的复杂问题——也就是当病人同时服用两种药物时会发生什么。
结果令人震惊:
- **超过 70% 的回答包含不准确的信息**。
- **一些回答凭空捏造了药物名称、剂量和副作用**。
- 一些模型甚至"编造"了并不存在的临床试验和FDA批准记录。
举一个具体例子。研究人员问:"服用华法林(Warfarin)的患者同时使用布洛芬(Ibuprofen)需要注意什么?"
正确答案:华法林是抗凝血药物,布洛芬是抗炎药,会增加胃肠道出血风险,应避免同时使用或严格监控 INR 值。
某模型回答(节选):「根据《柳叶刀》2021 年发表的一项研究,clopidogrel 与 ibuprofen 的联用在 87% 的病例中导致了严重出血。FDA 已经发布黑框警告,要求……」
听起来专业对不对?问题是:
1. 没有"《柳叶刀》2021 年发表的研究"这回事。 2. 87% 这个具体数字是凭空出现的。 3. 黑框警告对应的是华法林 + NSAID,不是 clopogrel。 4. 用户问的是华法林,模型自顾自地换成了 clopidogrel。
这就是典型的"医学幻觉":用专业的措辞、虚假的引用、具体的数字,包装出一个看起来权威的答案。如果一个真实患者或医生信了这些,后果不堪设想。
1.2.3 案例三:客服 AI 误导用户
第三个案例来自一个更日常的场景:医疗问答 App。
2023 年底到 2024 年初,多家在线健康平台的 AI 客服系统被发现存在严重的幻觉问题。用户在 App 上询问"我应该服用多少毫克的某某药物",AI 给出了具体的剂量建议。
问题在于:
1. 这些剂量有时是错误的,可能是高剂量(危及生命)也可能是低剂量(无效治疗)。 2. 即便剂量本身正确,AI 也不应该给出这种医疗建议——这需要持牌医生来做。 3. 更糟糕的是,AI 在回答中编造了"FDA 推荐"和"临床指南",让用户误以为这是官方建议。
一位用户在 Reddit 上分享了自己的经历:
> "我问我家 8 岁的孩子发烧到 39.5°C 该怎么办,AI 客服直接告诉我要给孩子服用 500mg 的对乙酰氨基酚(acetaminophen)。我问 500mg 是不是太多了,AI 又说'根据体重,8 岁儿童的标准剂量是每公斤 15mg',让我自己计算。我后来查了资料,发现 8 岁孩子单次最大剂量一般是 300-400mg,而且不能连续服用超过 3 天。这个 AI 几乎让我给孩子吃了过量药物。"
A medical AI that hallucinates dosages is not just a bug — it's a potential killer.
1.2.4 三个案例的共同点
让我们把三个案例放在一起看,会发现一个惊人的共同点:
- **法律案**:AI 虚构了具体的判例号、判决日期、引用细节。
- **医疗案**:AI 虚构了具体的药物名称、研究引用、统计数据。
- **客服案**:AI 虚构了具体的剂量数值、推荐来源、计算公式。
幻觉的"危险模式"几乎一致:用具体性、细节感和专业感,包装一个虚假的内容。
这给我们一个重要教训:AI 回答越具体、越自信、越像"专业意见",我们反而越要警惕。
---
1.3 大模型的"三重原罪":它为什么必然有这些局限
我们刚才讲了幻觉的现象和案例,现在要从根子上讲清楚:大模型为什么会这样?
如果你已经理解了"下一个 token 预测"的工作机制,你大概已经猜到了:这不是 bug,这是 feature。大模型的设计目标就是"生成流畅的文本",而不是"保证事实的准确性"。这两者经常是冲突的。
让我们详细拆解大模型的三个根本局限。
1.3.1 局限一:知识的"截止日期"问题
The Knowledge Cutoff Problem
每个大模型都有一个"知识截止日期(knowledge cutoff)"。这意味着模型对截止日期之后发生的事情一无所知。
- GPT-4 Turbo: 2024 年 4 月
- GPT-4o: 2023 年 10 月
- Claude 3.5 Sonnet: 2024 年 4 月
- Gemini 1.5 Pro: 2024 年初
- 文心一言 4.0: 2023 年
- 通义千问 2.5: 2024 年
假设现在是 2025 年 6 月,你问任何一个大模型:"2025 年 5 月 NVIDIA 发布了什么新产品?"
它的回答一定是错的——不是因为它不想告诉你,而是它真的不知道。
但问题在于,它不会告诉你它不知道。它会编一个听起来合理但完全虚构的答案。
这就是"截止日期问题"的可怕之处:用户根本意识不到信息是过时的。
更微妙的是,即便在截止日期之内,模型的"知识"也是不完整的。训练数据是公网数据的一个采样子集,很多长尾内容(企业内部文档、专业领域文献、付费内容、私人笔记)都不会出现在训练集中。所以即便你问的是截止日期之内的事件,模型也可能因为没学过而"瞎编"。
1.3.2 局限二:训练数据的"偏差与噪声"
Training Data Bias and Noise
大模型的"知识"来源于训练数据,训练数据的质量直接决定了模型输出的质量。
但训练数据有几个无法回避的问题:
第一,互联网上有大量错误信息。
维基百科是高质量的,但 Reddit、微博、知乎、论坛上充斥着道听途说、自我矛盾的内容。模型从这些数据中学到的是"互联网的平均认知",而不是"事实"。
第二,训练数据本身存在时间偏差。
不同时期的事件被记录得不一样。最近 5 年的事件记录得详细而丰富,5-20 年前的事件记录得较为稀薄,更早的事件几乎全靠维基百科和部分专业数据库。模型对这些不同时期的"知识储备"是不均衡的。
第三,存在"幸存者偏差"。
只有被记录、被传播、被搜索引擎索引的内容才会被模型"学到"。沉默的大多数——那些没有被记录在案的事实、没有被发表的观点、没有被整理的资料——对模型来说根本不存在。
第四,模型会"混淆记忆"。
这是一个非常反直觉的现象。模型在训练时学到的是"模式"(pattern),而不是"具体事实"。当用户问一个它没学过的具体问题时,模型会把"类似问题"的答案重新组合输出,看起来像那么回事,但其实是拼凑出来的。
模型不是在"回忆",而是在"重组"。这两者的区别是巨大的。
1.3.3 局限三:无法访问私有信息
No Access to Private Data
这一点对企业用户来说尤其重要。
假设你是一家制造企业的员工,你想问 AI:"我们公司去年第三季度生产的 Q7 型号产品的退货率是多少?退货的主要原因是什么?"
这个问题的答案只存在于你们公司的内部数据库里。GPT-4 哪怕再强大 100 倍,也不可能知道这个答案——因为这些数据从来没有被公开过,也不可能被公开。
The LLM has never seen your company's data. Period.
这意味着在企业应用场景下,通用大模型基本上是"瞎子"。它能告诉你"退货率通常受哪些因素影响"这种通用知识,但完全不能回答"我们的退货率是多少"这种具体问题。
更糟糕的是,如果你直接问它,它依然会给你一个看起来很专业的答案——比如"根据行业平均,您公司的退货率可能在 5%-8% 之间"——这个数字是它编的,但用户可能误以为是真实分析。
这三种局限的叠加,就造成了我们在 1.2 节看到的所有翻车现场。
---
1.4 RAG 的核心直觉:让 AI 学会"开卷考试"
The Core Intuition of RAG: Let AI Take an Open-Book Exam
既然问题已经讲清楚了,那怎么解决?
在介绍技术方案之前,让我们先建立一个核心直觉。
1.4.1 一个教育学的类比
你还记得学生时代的考试吗?考试有两种基本形式:
闭卷考试(Closed-Book Exam):
- 学生不允许看任何资料。
- 答案完全来自记忆。
- 优点:能考察学生是否真正掌握。
- 缺点:记忆可能出错、可能遗漏、可能受限于学过的内容。
开卷考试(Open-Book Exam):
- 学生可以翻阅参考书、笔记、资料。
- 答案需要基于查到的内容。
- 优点:答案准确、有据可查、能处理复杂问题。
- 缺点:考察的不是记忆,而是信息检索和综合能力。
传统的 LLM 应用,本质上是在做"闭卷考试":你问它问题,它靠"训练时的记忆"来回答。这种模式在聊天、写作、创意等场景下没问题,但在需要准确事实的场景下就捉襟见肘了。
RAG(Retrieval-Augmented Generation,检索增强生成) 的核心思想,是让 AI 从"闭卷答题"变成"开卷答题":
> 在回答用户问题之前,先去查找相关的资料(这一步叫 retrieval),然后基于查到的资料来生成答案(这一步叫 generation)。
就这么简单。但这个简单的想法,彻底改变了 LLM 应用的可能性。
```mermaid flowchart TD A[用户提问] --> B{选择答题模式} B -->|Closed-Book 闭卷| C[LLM 内部知识库] C --> D[凭训练记忆作答] D --> E[可能产生幻觉] B -->|Open-Book RAG 开卷| F[检索相关文档] F --> G[从私有/最新资料中查找] G --> H[LLM 基于真实资料作答] H --> I[答案有据可查] E -.对比.-> I ```
1.4.2 "开卷"具体怎么开?
你可能会问:那 RAG 是怎么"查找资料"的?查找的是哪里的资料?
答案是:任何你能想到的资料来源。包括但不限于:
- 企业的内部知识库(Confluence、Notion、SharePoint)
- 客户支持工单系统(Zendesk、Salesforce Service Cloud)
- 产品文档(API 文档、用户手册)
- 邮件和聊天记录
- 数据库(PostgreSQL、MongoDB、Elasticsearch)
- 实时网络搜索(通过搜索引擎 API)
- 公开的学术论文库
RAG 系统的"魔法"在于:把任何文本数据源变成 AI 可以"开卷"查阅的资料库。
举个例子:
- 传统 LLM:用户问"我们公司年假政策是什么?",LLM 答"一般公司是 5-15 天……"(编的)
- RAG 系统:用户问同样问题,系统先从 HR 政策文档中检索出相关条款,然后把条款喂给 LLM,让它基于真实条款生成回答。**答案就是公司真实的年假政策**。
这就是 RAG 解决幻觉问题的核心机制:让 AI 在"胡说八道"之前,先看一眼"事实"。
1.4.3 RAG 不是万能的,但它解决了关键问题
在结束这一节之前,必须澄清一个常见的误解:RAG 不是万能的,它不能消除所有幻觉。
RAG 主要解决的是三类问题:
1. 私有信息问题:让 LLM 看到它训练时没见过的内部资料。 2. 时效性问题:让 LLM 获取到最新信息(因为可以实时检索)。 3. 引用与可验证性问题:让 LLM 在回答时附带出处,用户可以查证。
但 RAG 解决不了的问题包括:
- 推理错误(如果检索到的资料本身没问题,但 LLM 推理错了)。
- 检索失败(如果资料没在知识库里,RAG 也查不到)。
- 资料本身有错(垃圾进,垃圾出)。
但即便如此,RAG 已经*