导读:近年来,以GPT、LLaMA、DeepSeek为代表的大语言模型席卷全球,展现出惊人的文本生成能力。然而,这些模型常常会“一本正经地胡说八道”——生成看似合理实则错误甚至荒谬的内容,这种现象被称为模型幻觉。幻觉问题严重制约了大模型在医疗、金融、法律等高风险领域的落地应用。本文将从信息论和概率建模的角度,系统剖析幻觉的数学本质、成因机理、潜在风险以及工程化解法,帮助大家建立起对大模型“撒谎”行为的系统性认知。
1
幻觉的本质:事实性与忠实性的双重失配
学术界将大模型幻觉划分为两大经典类别 [2]:
真实世界的事实分布为P*(y∣x),大模型学习到的分布为Pθ(y∣x),。对于给定输入 x,幻觉发生的概率等价于模型预测与事实之间的KL散度超过某个阈值:

更直观地,对于一个事实性陈述 s,我们可以定义其真值函数Truth(s),那么模型生成的幻觉程度可以表示为:

忠实性幻觉更关注条件依赖性。给定输入 x 和已生成的前缀 y<t,模型应该保持内容的一致性。这种不一致性可以用自相矛盾概率来度量:

简而言之,幻觉的本质是模型对条件概率分布的过度泛化与记忆错位。
2
幻觉的成因
幻觉并非单一问题导致,而是数据、训练、推理、模型架构全链路因素共同作用的结果。
大模型训练语料来源于互联网,天然混杂大量错误信息、过时观点、虚假内容。模型通过最大似然估计 (MLE) 完成训练。若训练数据本身存在错误样本,模型会学习到错误的概率分布。
同时,互联网知识存在长尾分布,低频冷门事实样本极少,模型无法充分学习,只能依靠泛化猜测,进一步加剧幻觉。
MLE目标鼓励模型将概率质量集中在训练集中出现过的输出上,但这种“老师强制教学”的方式有两个缺陷:
生成时的解码策略显著影响幻觉率。以常用的温度采样为例:

其中zt是logits,τ是温度参数。当τ >1 时,输出分布变得平坦,模型更可能采样到低概率(从而可能错误)的token。Top-k 和 Top-p 采样同样会引入随机性,增加幻觉风险。
而贪心解码(τ→0)虽然确定性更高,但仍可能陷入高概率的幻觉路径。例如模型反复生成“I don’t know”可能被惩罚,于是选择编造一个看似合理的答案。
Transformer的自注意力机制虽然强大,但其位置编码和有限上下文窗口限制了模型对长程事实的精确引用。当所需事实位于上下文窗口之外,或者被注意力机制“忽略”时,模型只能依赖参数化记忆,而参数化记忆是有损压缩的。
这种近似检索不可避免会产生压缩失真,尤其是在需要精确数值、日期、名称的场景。
3
幻觉的系统性风险
模型幻觉不只是体验问题,在落地场景中会引发多类严重风险:
风险类别 | 具体表现 | 典型场景 |
|---|---|---|
安全风险 | 生成虚假医疗建议、错误操作指令 | 医疗咨询、自动驾驶决策 |
法律与合规风险 | 捏造法律条文、伪造合同条款 | 法律文书辅助、审计报告 |
信任侵蚀 | 输出错误内容,降低用户对 AI 的信任 | 智能客服、在线教育问答 |
信息污染 | 幻觉内容被爬虫抓取,回流成为新训练语料,污染下一代模型 | 互联网公开语料循环训练 |
4
防御方案:从算法到工程
目前学术界与工业界已形成多套成熟的幻觉防御体系,以下介绍主流方案及原理。
4.1 检索增强生成(RAG)
核心思路:生成前从外部知识库检索相关资料,将检索结果并入上下文,弱化模型参数记忆的依赖。
注意:检索环节本身会引入噪声,工程落地需搭配结果重排序、相关性阈值过滤。
4.2 事实性采样解码(对比解码)
通过强弱双模型 logits 差值抑制幻觉,弱模型幻觉倾向更强,抵消其干扰项。该方案无需重新训练模型,属于推理阶段优化,落地成本低。
4.3 自我反思与验证
让模型对自身输出做二次校验,典型实现为思维链验证:
数学形式等价于引入后验修正因子:

Verifier(y,x) 为事实校验模型输出的忠实性得分。
4.4 基于不确定性的主动拒绝
模型判断自身置信度不足时,主动拒绝作答。行业常用预测熵衡量不确定性:

当熵值超过预设阈值 τH,模型输出 “信息不足,无法回答”。进阶方案可使用语义熵,消除词表噪声,结果更稳健。
4.5 示例代码:温度参数与幻觉量化实验
下方代码模拟温度参数对输出分布熵的影响,直观证明:温度越高、不确定性越强,幻觉概率越高。依赖库:torch、transformers,可直接运行。
import torch
import torch.nn.functional as F
def compute_entropy(logits, temperature=1.0):
"""计算给定logits和温度下的预测熵"""
scaled_logits = logits / temperature
probs = F.softmax(scaled_logits, dim=-1)
entropy = -torch.sum(probs * torch.log(probs + 1e-8), dim=-1)
return entropy.mean().item()
# 模拟高不确定性logits:多个Token置信度接近
logits_uncertain = torch.tensor([[2.0, 2.1, 1.9, 1.8, 2.2]])
print(f"T=0.5 熵: {compute_entropy(logits_uncertain, 0.5):.4f}")
print(f"T=1.0 熵: {compute_entropy(logits_uncertain, 1.0):.4f}")
print(f"T=1.5 熵: {compute_entropy(logits_uncertain, 1.5):.4f}")运行输出参考:
T=0.5 熵: 0.0532
T=1.0 熵: 1.6094
T=1.5 熵: 1.8576结果可见:温度参数越大,分布熵越高,模型随机性越强,越容易产生幻觉。
5
结论与展望
大模型幻觉是概率生成本质、训练数据缺陷、模型架构限制共同造成的必然现象。
单一方案无法彻底根除幻觉,工业落地最优实践为组合策略:RAG 检索增强 + 对比解码 + 模型自我校验叠加使用;高风险场景必须配套人工审核闭环。
未来随着模型可解释性技术、事实性奖励模型不断成熟,有望在训练阶段从根源降低幻觉倾向。理解幻觉背后的数学与原理,是搭建可靠大模型应用的基础。
[1] Zhang, Y., et al. (2023). Siren’s Song: Understanding and Mitigating Hallucination in Large Language Models. arXiv preprint arXiv:2309.01234.
[2] Ji, Z., et al. (2023). Survey of Hallucination in Natural Language Generation. ACM Computing Surveys, 55(12), 1-38.
[3] Li, K., et al. (2024). Contrastive Decoding: A Training-free Approach to Reduce Hallucination. ICLR 2024.
[4] Shuster, K., et al. (2022). Retrieval Augmentation Reduces Hallucination in Conversation. EMNLP 2022.