这道题问的是怎么系统性降低大模型的输出错误,也就是[[幻觉]]。我理解核心不是找一个万能方案,而是区分错误类型,然后分层治理。比如知识型错误和推理型错误,处理方式完全不同,混在一起搞反而容易两头不讨好。
先说模型架构层面。像 [[MoE]] 那种稀疏激活,把知识分散到不同专家,可以减少参数干扰导致的知识混淆。还有推理时用 [[Chain-of-Thought]] 显式规划,让模型展示推导过程,这样哪里错了容易追溯。但架构层面的改动代价很大,不是所有团队都能动基座模型,所以实际落地我更倾向于在训练数据和外部增强上发力。
训练数据这块,一个关键是数据质量分层。对事实密集型数据标注置信度,高置信的加权训练。再一个是对抗性样本,刻意构造易混淆的负例,比如相似实体或过时知识,提升鲁棒性。微调阶段,[[SFT]] 时我会加入拒绝回答加解释原因的数据,让模型学会识别知识边界。[[RLHF]] 或 [[DPO]] 优化时,把事实准确性纳入奖励函数,人类标注时明确区分流畅但错误和保守但正确。这里有个边界:高频变动知识不适合内化到模型里,应该走外部检索,否则模型刚学完知识就过时了。举个例子,电商客服场景下,满减政策经常变,你不可能每次政策调整都重训模型,这时候 [[RAG]] 就比微调合适。
说到外部增强,RAG 是核心,但不是简单拼一段检索结果进去。我会让模型先判断是否需要检索,需要的话再决定检索什么,这叫检索-生成协同。然后多源交叉验证,同时检索多个信源,如果一致性高就高置信输出,如果冲突就触发澄清或保守回答。生成之后再加一层校验,用独立的事实核查模型或规则引擎,对实体、数字、时间这些硬事实做二次确认。比如客服回答退款金额,必须校验数字是否和订单一致。这里有个前提:检索质量要足够高,如果检索到的信息本身就是错的,那 RAG 反而放大错误。常见失败场景是检索召回率不够,或者[[重排]]没把最相关的排在前面。
所以落地时,我会把方案组合起来用。稳定知识内化到模型,高频变动知识走 RAG,推理过程用 CoT 显式化,最终输出加校验层。没有银弹,不同场景侧重不同。比如金融风控合同场景,对事实准确性要求极高,我会更依赖多源验证和校验机制;而创意写作场景,推理连贯性更重要,CoT 和架构优化就更关键。
其实还有一个方向值得关注,就是模型置信度与不确定性量化。比如让模型输出时带一个置信度分数,低置信度的触发人工审核或额外检索。但这里的问题是,模型自评的置信度不一定准,怎么校准这个置信度,让它真正反映正确概率,是个挺有意思的课题。
所以整体上,我更倾向把提升准确性看作一个系统工程,而不是靠某个单点方案。核心是区分场景、分层治理,每一步都做好边界划分和风险控制。