跳到正文

LLM 幻觉治理方法对比

训练、RAG、解码和事实校验等 LLM 幻觉治理全景

原题:请列举并分析当前用于缓解大语言模型幻觉现象的主要方法,如改进训练数据、引入检索增强(RAG)、优化解码策略、后处理校验等,并比较其有效性。

评估与监控 · 美团真题

回答与解析

幻觉分类

  • 事实性幻觉:模型生成与客观事实不符的内容(如错误日期、虚构人物)
  • 忠实性幻觉:生成与输入上下文或检索内容不一致的回答

主要缓解方法及有效性分析

1. 训练数据优化(源头治理)

  • 做法:去重、过滤低质量/冲突数据、知识边界标注、课程学习
  • 效果:基础但长尾,无法解决训练截止后新知识问题
  • 局限:成本高,且模型仍可能"过度泛化"

2. RAG(检索增强生成)

  • 做法:外挂知识库,将检索到的相关文档拼入Prompt
  • 效果:对事实性幻觉效果显著,可追溯来源
  • 关键:检索质量决定上限,需解决检索失败内容冲突
  • 美团实践:结合实时业务数据(如商户信息)做领域RAG

3. 解码策略优化

方法 核心思想 适用场景
Contrastive Decoding 对比大/小模型输出,惩罚低置信token 开放生成
CAD(Context-Aware Decoding) 降低无上下文时的先验概率影响 忠实性幻觉
事实核采样 对实体类token提高采样阈值 事实密集型任务

4. 后处理校验

  • 自我一致性(Self-Consistency):多采样投票
  • 工具验证:调用计算器、搜索引擎、代码执行器验证
  • 事实核查模型:专用判别器过滤

方法对比与组合策略

效果强度:RAG ≈ 后处理校验 > 解码策略 > 数据优化
成本效率:解码策略 > RAG > 后处理 > 数据优化

工业界最佳实践:RAG + 解码策略(CAD)+ 轻量后处理(如API验证关键实体),而非单一依赖。

学习建议

建议系统学习该知识点

口语版讲法(约4分钟)

  • 一句话定位:本质是模型能力边界与可靠性之间的平衡
  • RAG的适用边界与落地风险
  • 解码策略与后处理作为互补手段
  • 组合策略与工程师取舍

这个问题问的是怎么缓解幻觉,我觉得它本质上是问:你怎么在模型的能力和可靠性之间做取舍。因为幻觉不可能完全消除,你只能根据场景去控制它。

我一般会从几个角度去处理。先说目前最主流、工业界用得最多的方法,就是 RAG,检索增强生成。它的核心思路是让模型在生成时参考外部知识,不依赖自己的记忆。但这里有个边界要划清楚:RAG 特别适合事实性幻觉,比如客服场景里用户问“退款政策是什么”,你从知识库拉回最新文档,模型照着说就行。但它不太适合那些需要模型深度推理的任务,比如合同条款分析,因为检索回来的片段可能互相矛盾,模型自己又没能力做逻辑仲裁。

那落地的时候,RAG 最大的风险其实不在生成,而在检索。检索质量决定了 RAG 的上限。如果你用简单的向量检索,召回率可能很高但精度差,混进一堆噪声,模型反而更容易被带偏。所以我会在检索阶段做 Hybrid Search,把关键词和向量结合起来,再加上 Rerank 把最相关的文档排到前面。而且上线后我会特别关注一个失败场景:当检索结果为空时,模型会退化成纯生成,那幻觉率会飙升。我的做法是加一个拒答逻辑,如果最高分文档的相关度低于某个阈值,直接回复“没有找到相关信息”,而不是让模型硬猜。

再说解码策略,这是成本最低、见效最快的手段,但效果有限。比如 Contrastive Decoding,它对比大模型和小模型的输出,惩罚那些小模型也敢大胆输出的 token,本质上是在打压模型过度自信的倾向。还有 CAD,Context-Aware Decoding,它降低模型在无上下文时的先验概率,对忠实性幻觉效果不错。但这类方法有个局限:它只能缓解,不能纠正。如果模型记忆里的事实本身就是错的,解码策略也无能为力。所以我把解码策略看作一个“安全网”,而不是主力。

后处理校验我把它当作最后一道防线。最简单的是 Self-Consistency,多采样几次,选最一致的答案。更重一点的做法是调用外部工具验证,比如对数字用计算器,对日期查日历,对实体做 NER 后去知识库核对。但后处理的成本很高,尤其是调用搜索引擎或者 API,延迟会明显增加。所以我会根据场景做取舍:在客服退款这类高准确率要求的场景,我会对关键实体做工具验证;在闲聊场景,我可能只做一次 Self-Consistency 就够了。

说到这,其实还有一个方向我最近在关注,就是让模型自己反思,比如 Self-RAG 或者 Chain-of-Verification。它让模型先输出,然后自己检查,再修正。这个思路很有意思,但落地时有个坑:模型可能越改越错,因为它在错误的基础上反复确认。所以我觉得它更适合那些模型本身有一定判断力的场景,而不是完全无知的情况。

所以综合来看,我更倾向于把 RAG 作为主力,解码策略作为标配,后处理作为按需补充。没有银弹,只有组合拳。面试官如果感兴趣,我可以再展开讲讲 RAG 里检索质量怎么保证,比如 Chunk 策略怎么设计、Embedding 模型怎么选。

关键一句:Self-RAG 或 Chain-of-Verification 这类自我反思方法,模型可能越改越错,更适合模型有一定判断力的场景。

面试官还可能这样问

  1. 问法 1 · 场景切入

    假设你做一个电商客服机器人,用户问‘这个手机价格多少’,模型回答‘3999元’,但实际最近降价了。这种事实错误你们怎么防?

  2. 问法 2 · 层层追问

    大模型生成结果不靠谱,你们一般怎么处理?……那如果只改进训练数据呢,你觉得够用吗?……还有没有其他更立竿见影的手段,比如结合检索?

  3. 问法 3 · 直球架构

    请列举并分析当前缓解大模型幻觉的主要方法,包括数据、RAG、解码策略、后处理,并比较它们的有效性和适用场景。

同模块相关题目