1007 字
约 3 分钟
10
S20-B04 · 幻觉、冲突与语义漂移

适用读者:RAG 答得"像模像样但不对"的人。
前置:S20-B03。
覆盖旧文:575(280) 1071(109) 573(283) 577(115) 586(116) 572(270) 576(262) = 1,435 点。
覆盖扩展:E-S20-006(冲突处置)、E-S20-012(语义漂移)。
上一篇:S20-B03 · 检索与重排:向量、BM25、混合、HyDE
下一篇:S20-J01 · 评估。


1. 一句话结论

RAG 的幻觉分两种:检索没给对(可修),检索给了但模型不照做(难修)。前者占多数,所以先查检索。

类型 表现 归因
检索型幻觉 片段里没有,模型却答了 召回失败/分块切断
生成型幻觉 片段里有,模型改写/编造 提示词/模型约束不足
冲突型 片段与模型知识矛盾,模型选了后者 未声明优先级
语义漂移 检索结果越来越偏 索引/向量漂移(E-S20-012)

2. 冲突处置:知识与文档矛盾时听谁的(E-S20-006)

默认策略:以检索到的文档为准(它是"最新事实"),并在提示词里明确写:

若资料与你的既有知识冲突,一律以资料为准;
若资料未覆盖,回答"资料未提及",不要推测。
策略 适用
文档优先 企业知识库(推荐)
模型优先 文档不可信/过时
显式标注冲突 高风险场景(如医疗/合规)

判据:"资料错了会怎样?" 后果严重 → 让模型显式标注"资料与常识冲突,请人工确认"。


3. 降低幻觉的六种手段

手段 说明
强制引用 要求答案附带来源片段 id
提高召回(topK/混合) 先保证"资料里有"
拒答通道 允许回答"资料未提及"
结构化输出 强制 JSON(含 evidence 字段)
事实核验(二次调用) 用另一轮检查答案是否有据
降低温度 减少发散(但会牺牲表达)

"为什么"允许拒答"最有效":模型幻觉往往是因为"被要求必须回答"——给它一条"不知道"的出口,幻觉率会明显下降(推断,需按模型实测)。


4. 语义漂移(E-S20-012)

定义:随着文档/模型更新,同样的查询检索到的片段质量逐步下降。

原因 对策
embedding 模型升级 全量重建索引(B02)
文档分布变化(新术语) 定期重跑评估集(J01)
索引过期(删了文档没删向量) 同步删除 + 定期校验

判据:"检索质量是慢慢变差还是一直差?" 慢慢变差 → 漂移;一直差 → 分块/模型选错。


5. 五个误区

误区 真相
"换个强模型能治幻觉" 检索侧问题换模型无效
"提高温度更聪明" 更发散、更容易编
"要求模型必须回答" 逼它编造
"冲突时模型会自己判断" 需显式声明优先级
"索引建一次就够了" 会漂移

6. 自检

  1. 三类幻觉的归因分别是什么?
  2. 冲突处置的三种策略?
  3. 六种降低幻觉的手段里哪个最有效?
  4. 语义漂移的三个原因?
  5. "一直差"与"慢慢变差"分别说明什么?

7. 下一篇

S20-J01 · 评估:离线指标、在线 A/B 与失败模式

幻觉讲完,下一篇讲"怎么证明改完更好了"。


本篇属于系列《S20 · AI 应用与工程》。旧文来源:A-575/1071/573/577/586/572/576;扩展点 E-S20-006/012。

S20-B04 · 幻觉、冲突与语义漂移
https://www.clxhxhhr.top/posts/5467/
作者
clxstart
发布于
2024-12-31
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。