什么是模型幻觉?AI Hallucination 通俗解读
模型幻觉是大模型「一本正经地胡说八道」——输出看似合理但实际错误或虚构的内容。
通俗理解
想象一个学生在考试时遇到不会的题——他不会空着,而是凭感觉写了一段听起来合理的答案,字迹工整、逻辑通顺,但内容是编出来的。
模型幻觉就是 AI 用同样的方式"蒙"你:输出听起来正确、但实际上是捏造的内容。
最典型的例子:你让 LLM 引用一篇学术论文,它会给你一个格式完美的引用——作者、期刊、年份全都有——但这篇论文根本不存在。
有幻觉的 AI
一本正经地编造不存在的论文、虚构的 API、错误的数据,而且听起来很有道理。
虚构事实自信满满
有 Grounding 的 AI
每个结论都基于真实数据源,不确定时主动说明,附上来源引用。
有据可查来源标注坦诚不确定
为什么会产生幻觉
LLM 不是知识数据库,而是统计模式预测器:
- 统计模式,而非事实存储:训练目标是"预测下一个词",而不是"记住真实世界"。模型学到的是"什么样的回答听起来合理",不是"什么回答是对的"
- 必须给出答案的压力:LLM 被训练成"有问必答",不知道时它不会说"我不知道",而是生成一个语义相关但可能错误的答案
- 知识截止日期:训练数据有截止时间,之后发生的事情它一无所知,但可能仍然"推测"出一个听起来合理的答案
- 问题本身模糊:提问越模糊,LLM 需要"发挥"的空间越大,幻觉风险就越高
检测与缓解策略
| 策略 | 原理 | 效果 | 成本 |
|---|---|---|---|
| RAG(检索增强) | 先检索真实文档,再让模型基于文档回答 | ★★★★★ | 中等 |
| 要求引用来源 | 提示词要求模型给出每句话的来源,无来源不得作答 | ★★★★☆ | 低 |
| Self-Consistency | 同一问题问多次,对比答案一致性,发现分歧 | ★★★☆☆ | 高(多次调用) |
| 置信度评分 | 让模型对自己的答案打分,低置信度触发人工核查 | ★★★☆☆ | 低 |
| 人工核查 | 对高风险输出(法律、医疗)强制人工验证 | ★★★★★ | 最高 |
| 较低温度参数 | temperature=0 降低随机性,但不能消除幻觉 | ★★☆☆☆ | 极低 |
工程实践
构建抗幻觉系统的核心思路:不信任模型的记忆,只信任它的推理。
强制引用的 Prompt 模式:
code
SYSTEM:
你是一个严谨的信息分析助手。规则:
1. 每一个事实性声明后面,必须用 [来源: <原文片段>] 标注
2. 如果提供的文档中没有相关信息,必须回答"根据提供的资料,无法得出该结论"
3. 禁止使用训练知识补全文档中没有的内容
USER:
[文档内容]
{retrieved_context}
问题:{user_question}
结构化输出 + 引用约束的 Python 示例:
python
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-4-20250514",
system="Answer only based on provided context. Cite sources for every claim.",
messages=[{
"role": "user",
"content": f"Context: {retrieved_docs}\n\nQuestion: {query}"
}]
)
评估框架:可以用 RAGAS 评估 RAG 系统的幻觉率,指标包括 faithfulness(忠实度)和 answer relevancy(答案相关性)。
常见误区
- "模型越大,幻觉越少"——错。即使是最大的模型也会幻觉,规模只是降低了频率,并没有消除问题
- "temperature=0 可以防止幻觉"——不完全对。低温度减少随机性,但如果模型"记忆"的本身就是错的,它会以 100% 的置信度输出错误答案
- "幻觉只是小问题"——在医疗、法律、金融场景中,一次幻觉可能造成严重后果,必须工程化地防御