幻觉缓解:从检索到自省

大模型会自信地输出错误信息,称为幻觉(hallucination)。缓解思路主要有两类:生成前先「查资料」(检索增强),以及生成后「自我检查」(自省与校验)。二者互补,构成从「别乱说」到「说了再核对」的完整防线。

是什么

检索增强生成(RAG)在回答前先从外部知识库取相关片段,拼进上下文让模型基于证据作答。自省类方法让模型回顾自己的回答,判断是否有依据、是否自相矛盾,必要时修正或标注不确定。前者治未病,后者做兜底。

为什么有效

模型参数记忆有限且可能过时,纯靠参数容易编造。RAG 把答案锚定在可检索的证据上;自省则给模型一次「复核」机会,降低无依据断言。对于事实性、时效性强的场景,RAG 几乎是标配。

怎么做

RAG 的最小流程是先检索再生成:

# 伪代码:检索相关片段后交给模型
context = retriever.search(query, top_k=3)
prompt = f"根据资料回答:\n{context}\n\n问题:{query}"
answer = llm(prompt)

Self-RAG(Asai 等, 2023)则训练模型在生成中自主决定「是否检索」与「是否自评」,把回路内置化。Self-Consistency 通过对多组采样投票提升事实一致性。

注意点

  • 检索质量决定上限,垃圾进则垃圾出,需做好切分与召回。
  • 证据与回答要可追溯,便于用户核对来源。
  • 自省不能无限循环,应设置次数上限与早停条件。
  • 引用需真实存在,防止模型虚构来源链接。

实践建议

RAG 效果上限由检索质量决定,应先做好文档切分、召回与重排,再谈生成。证据与回答要可追溯,给出引用来源便于用户核对,并防止模型虚构链接。自省类方法需设次数上限与早停条件,避免无限循环。Self-Consistency 通过对多组采样投票降低偶发错误,但会增加成本,按任务重要性启用。对时效性强的问答,优先接实时检索而非依赖参数记忆。若回答涉及关键决策,应要求模型标注不确定性或给出置信提示,而不是给出确定断言。定期用带标准答案的探针集评估幻觉率,监控线上退化。把检索范围与权限收紧,减少无关噪声干扰证据。上线后可收集用户纠错反馈,把高频错误反向补入检索库或自省提示,形成持续改进的闭环。把人工复核结果沉淀为评测用例,能长期压低线上幻觉发生率,形成正向循环。

小结

幻觉缓解以 RAG 锚定外部证据、以自省做生成后复核为主。检索质量与证据可追溯是关键,自省需设上限,二者结合能明显降低无依据输出。

参考与延伸阅读

本文累计阅读