模型边界01:幻觉来源

从训练数据、上下文缺失、采样随机性到错误归纳,理解大模型为什么会产生幻觉,以及如何减少幻觉。

字数 1893 阅读时长 ≈ 6 分钟 2026-7-21 2026-7-27
模型边界01:幻觉来源

幻觉是大模型最常见的问题之一,它会编造看似合理但实际上不存在的事实。理解幻觉的来源,才能有效减少和识别幻觉。

什么是幻觉

幻觉是模型生成的内容与事实不符,但看起来很有说服力的现象。

幻觉的类型

类型描述示例
事实幻觉编造不存在的事实”中国首都是上海”
引用幻觉编造不存在的引用或来源”根据《人民日报》2023年报道…”
逻辑幻觉产生逻辑错误”2+2=5”
代码幻觉生成无法运行的代码缺少括号、语法错误
名称幻觉编造人名、地名”张三说…”(实际不存在张三这个人)

幻觉的特点

  1. 看似合理:幻觉内容通常符合上下文,让人难以察觉
  2. 自信满满:模型对幻觉内容表现出很高的自信
  3. 难以预测:同一输入可能产生不同的幻觉
  4. 依赖上下文:上下文的微小变化可能导致不同的幻觉

幻觉的来源

幻觉的产生不是单一原因,而是多种因素共同作用的结果。

训练数据问题

训练数据是幻觉的主要来源之一:

问题描述影响
数据噪声训练数据中包含错误或不准确的信息模型学习到错误知识
数据偏见训练数据中存在偏见或刻板印象模型产生偏见性内容
数据缺失某些领域的数据不足模型在这些领域更容易产生幻觉
数据过时训练数据截止到某个时间点模型不知道最新信息
数据矛盾训练数据中存在相互矛盾的信息模型可能选择错误的信息

上下文缺失

模型在生成内容时,如果上下文不足或不相关,就容易产生幻觉:

场景描述示例
上下文不足用户提供的信息不够”介绍一下 AI” → 模型可能编造细节
上下文无关上下文与问题不匹配提供无关文档作为上下文
上下文过长上下文超出模型记忆范围模型忘记前面的信息
上下文冲突上下文中存在矛盾信息模型选择错误的信息

采样随机性

采样参数决定了模型生成的随机性,是幻觉的重要来源:

参数影响说明
Temperature温度越高,随机性越大高 Temperature 更容易产生幻觉
Top-pTop-p 越大,候选范围越广大 Top-p 可能引入不相关内容
重复惩罚惩罚不够,可能重复或循环导致内容重复或矛盾

错误归纳

模型的归纳能力是有限的,可能从有限的例子中得出错误结论:

问题描述示例
过度泛化从少数例子推导出普遍规律看到几个例子就认为所有情况都这样
模式匹配匹配到相似但不正确的模式”苹果是水果” → “香蕉也是水果”(正确),但可能推导出错误结论
类比错误错误的类比推理”地球是圆的” → “所有星球都是圆的”(错误)

模型架构限制

模型本身的架构也会导致幻觉:

限制描述影响
上下文窗口窗口有限,无法记住所有信息长文本中信息丢失
注意力机制Attention 可能集中在错误的位置关注了不相关的信息
生成方式自回归生成,逐步构建答案前面的错误会被后面继承
参数规模模型太小,知识不够小模型更容易产生幻觉

减少幻觉的方法

减少幻觉需要从多个方面入手,没有单一的解决方案。

提供充足上下文

规则

  1. 提供相关信息:给模型提供与问题相关的文档、数据、代码
  2. 明确约束:告诉模型哪些信息是可靠的,哪些是不可靠的
  3. 设定边界:告诉模型不知道的问题不要编造答案

示例

你是一个技术文档助手。请根据以下文档回答问题。如果文档中没有相关信息,请回答"我不知道",不要编造答案。

文档:
...

问题:如何优化 MySQL 查询性能?

调整采样参数

规则

  1. 降低 Temperature:对于需要精确输出的任务,将 Temperature 设为 0-0.3
  2. 设置 Top-p:限制候选范围,避免引入不相关内容
  3. 设置最大长度:限制输出长度,避免模型”胡言乱语”

参数组合

场景TemperatureTop-p说明
代码生成0-0.20.95精确、可执行
事实问答0.3-0.50.9稳定、可靠
创意写作0.7-1.00.95允许一定随机性

使用 RAG(检索增强生成)

RAG 是减少幻觉的有效方法:

用户查询 → Embedding → 向量检索 → 知识库文档 → 上下文 → LLM → 回答

优势

  • 答案基于真实文档,减少幻觉
  • 可以追溯答案来源
  • 支持更新知识库,获取最新信息

实施步骤

  1. 构建知识库
  2. 将用户查询与知识库匹配
  3. 将匹配到的文档作为上下文输入模型
  4. 让模型基于上下文回答问题

要求模型自我验证

让模型对自己的答案进行验证:

请回答以下问题,并提供验证方法:

问题:地球有多大?

回答:地球的直径约为 12742 公里。
验证方法:可以通过测量地球的周长,然后用周长除以 π 得到直径。

使用多模型交叉验证

用多个模型回答同一个问题,对比结果:

方法描述适用场景
多数投票选择多个模型中出现次数最多的答案简单问题
加权投票根据模型的可信度加权复杂问题
仲裁机制让第三个模型判断哪个答案正确高风险场景

限制输出格式

通过限制输出格式,减少模型自由发挥的空间:

请按照以下格式回答:

答案:[你的答案]
来源:[答案的来源]

识别幻觉的方法

即使采取了上述措施,仍然可能产生幻觉,需要有识别幻觉的方法。

人工审核

最直接的方法是人工审核:

场景是否需要人工审核说明
低风险场景不需要如闲聊、创意写作
中风险场景抽样审核如普通问答
高风险场景必须审核如医疗、法律、金融

自动检测

使用专门的模型或工具检测幻觉:

方法描述适用场景
事实核查用搜索引擎或知识库验证事实事实性问题
一致性检测检测答案内部是否自相矛盾复杂答案
来源追踪检查答案是否有可靠来源需要引用的场景
可信度评分让模型评估自己答案的可信度通用场景

用户反馈

通过用户反馈发现和纠正幻觉:

方法描述适用场景
点赞/点踩用户可以对答案进行评价通用场景
报告错误用户可以报告错误答案需要准确性的场景
修正答案用户可以修正错误答案社区场景

项目判断清单

  • 需要高精度输出(医疗、法律、金融)→ 使用 RAG + 人工审核
  • 普通问答场景 → 使用 RAG + 低 Temperature
  • 创意写作场景 → 允许一定程度的幻觉,提高 Temperature
  • 模型经常产生幻觉 → 检查上下文是否充足、采样参数是否合理
  • 需要追溯答案来源 → 使用 RAG 并要求模型引用来源
  • 需要实时信息 → 结合搜索引擎或实时数据源
  • 幻觉导致严重后果 → 增加人工审核环节