1. RAG系统中的证据困境:不足与冲突的工程权衡
在构建基于检索增强生成(RAG)的系统时,工程师们常常陷入一个两难境地:究竟应该给模型提供尽可能多的上下文信息,还是严格控制输入质量?这个问题看似简单,实则关系到整个系统的可靠性和安全性。经过多个实际项目的验证,我发现一个反直觉的结论:当模型面对相互矛盾的证据时,其危害性远超证据不足的情况。
1.1 问题本质:幻觉与冲突的区分误区
大多数开发者第一次遇到模型"自信地给出错误答案"时,第一反应往往是"模型产生了幻觉(hallucination)"。但经过深入分析上下文后,通常会发现问题更加复杂:
- 真实幻觉:模型完全脱离上下文,凭空生成不存在的信息
- 证据冲突:上下文包含多个相互矛盾的证据,模型被迫选择其一
- 证据不足:上下文缺乏足够信息支持回答
在金融领域的知识问答系统中,我们曾遇到一个典型案例:当询问"某金融产品的赎回费率"时,模型给出了3.5%的错误答案。检查上下文发现,系统检索到了三个相关文档:
- 主规则文档(最新版):赎回费2%
- 特殊场景补充说明:特定条件下3.5%
- 历史版本文档(已废弃):赎回费1.5%
模型没有"幻觉",而是从这三个相互矛盾的证据中,选择了一个"看起来最完整"的答案。这种情况比单纯的幻觉更难检测和防范。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 证据不足的工程特性与应对策略
2.1 模型在证据不足时的行为特征
当上下文缺乏足够证据时,现代大语言模型通常会表现出以下特征:
- 回答长度显著缩短:平均token数下降30-50%
- 使用概率性词汇:"可能"、"大约"、"据我所知"等出现频率增加
- 明确拒答倾向:"信息不足"、"无法确定"等表述占比提升
在医疗咨询系统中,我们统计了不同证据充足度下的模型表现:
| 证据充足度 | 平均回答长度 | 确定性表述占比 | 拒答率 |
|---|---|---|---|
| 高(>3个相关chunk) | 215 tokens | 78% | 5% |
| 中(1-2个相关chunk) | 148 tokens | 63% | 12% |
| 低(0个相关chunk) | 89 |
