Skip to content

什么是 AI 幻觉(Hallucination)?大模型为什么会产生幻觉?有哪些缓解方法? ​

  • 标签:

🏛 业务架构师 ​

AI 幻觉指大模型生成看似合理但事实错误的内容——编造不存在的法条、论文、产品参数,且说得自信满满。

产生原因三层:

  1. 技术本质:模型是概率生成器,目标是"下一个 token 的合理性"而非"事实的正确性"——它按语言规律补全,没有事实校验机制;
  2. 训练数据:语料本身的错误、过时、冲突会内化为模型的"错误知识";低频知识训练不足,模型倾向"脑补"填空;
  3. 对齐副作用:RLHF 让模型学会"尽量给答案"( helpful 优先),宁可编一个也不说不知道——不诚实是训练出来的倾向。

缓解方法按防线组织:

  • 架构层(最有效):RAG——让模型基于检索到的真实资料回答,"仅依据资料作答+无资料则拒答";强引用标注可核验;
  • 提示层:明确允许说"不知道"、要求逐条对应来源、降低 temperature、先查证再回答的指令设计;
  • 训练层:拒答数据微调(教会诚实)、偏好对齐(对"编造"惩罚);
  • 工程层:输出过事实校验器(规则/知识库比对)、关键数字走确定性计算而非生成、低置信内容降级转人工。

业务定式:幻觉无法归零,只能按业务分级管控——低风险场景(创意、草稿)宽容;高风险场景(医疗、法律、财务)必须"RAG+校验+人审"三重防线,且向用户明示 AI 局限。把"幻觉率"作为产品指标持续监控,是 AI 业务成熟度的标志。

🏗 系统架构师 ​

幻觉 = 模型生成看似合理但与事实不符或无依据的内容。我从机理讲到缓解:

为什么产生(四个根源):

  • 训练目标错位:下一词预测只奖励"像",不奖励"真"——模型是概率语言模拟器不是知识库;
  • 知识边界不可知:模型不知道自己不知道什么,知识缺口处用最 plausible 的续写填补(编造平滑);
  • 解码随机性:采样策略(temperature/top-p)天然鼓励"合理但未验证"的表达;
  • 上下文压力:被要求回答无依据问题时,拒答训练不足就硬编;RAG 场景检索到不相关内容也强行使用。

缓解方法(按层次):

  • ** grounding(最有效)**:RAG 提供事实依据 + Prompt 强约束"仅依据上下文回答,无依据回答'未找到相关信息'"——把"闭卷考试"改"开卷";
  • 检索质量:Rerank 提相关性、低相关阈值过滤(宁可少答不乱答)、引用溯源(答案句级标注来源,可人工核验);
  • 解码控制:关键任务低 temperature;结构化输出限定实体枚举(型号、代码只能来自检索集合);
  • 后验校验:事实一致性检查(NLI/LLM Judge 判断答案是否被来源支撑)、关键数字与实体交叉验证、置信度低转人工;
  • 训练层:拒答数据微调(教模型说"不知道")、DPO 偏好对齐惩罚编造。

架构师提醒:幻觉不可根除,只能工程化管理——系统设计要假设幻觉必然发生(关键决策留人工闸门、高风险领域强制引用),而不是追求零幻觉的银弹。

💻 全栈开发专家 ​

定义:幻觉 = 模型生成看似合理但与事实不符的内容,还往往伴随高置信语气。

成因四类:

  1. 知识边界:训练数据截止、覆盖不到的私有/长尾事实,模型只能「编」;
  2. 训练目标错位:预训练目标是「续写合理文本」不是「说真话」——采样出一个流畅但错误的续写,对模型来说是完全正常的行为;对齐训练还会引入「谄媚幻觉」(顺着用户说);
  3. 采样随机性:温度越高越容易偏离事实;
  4. 上下文压力:被要求回答不知道的事(用户追问、prompt 强制「必须给出答案」)、上下文超长中段信息丢失。

缓解方法按层给(工程版):

  1. 注入知识:RAG 提供依据,检索不到就允许拒答——「不知道」是功能不是缺陷;
  2. 约束生成:prompt 限定「仅依据给定资料回答并引用」、低温度、结构化输出;
  3. 后验校验:NLI 忠实度校验(答案是否被检索内容支撑)、关键事实规则校验(金额/日期/单号)、自动引用核对;
  4. 模型侧:SFT 数据里配拒答样本、DPO 惩罚编造;
  5. 产品侧:标注「AI 生成」、关键决策提供人工复核入口、展示引用来源让用户可验证。

实测数据参考:我们客服系统靠「RAG+引用+忠实度拦截+拒答兜底」四件套,幻觉率从 12% 压到 2% 以内。核心认知:幻觉无法根除(概率模型的本质),工程目标是「可控 + 可发现 + 可兜底」。