只给"正面材料",模型就容易把特例当通则
检索系统常有个隐蔽问题 ✗:它倾向于召回**支持性的**片段 ✔,
而**否定句、例外条款、限制条件**往往被漏掉 ✗ —— 于是模型给出过度概括的答案 ✔。
例如资料里写"**除 A 场景外**均适用" ✔,只召回后半句 → 答案就变成了"均适用" ✔。
一、哪些内容容易被漏
**共性**:它们通常**短、位置偏、词频低** ✔ —— 恰好是向量相似度最容易忽略的类型 ✔。
二、三种做法
1. **切分时不要切断条件从句** ✔("除…外"与主句必须在同一块 ✔ —— 属于切分规则问题 ✔);
2. **检索时加"条件词"扩展** ✔(把"例外/除外/不适用/仅限"作为查询扩展项或过滤信号 ✔);
3. **给召回结果做"完整性检查"** ✔:同一文档里若存在"例外"段落,且问题与该段相关 → **一并带上** ✔。
第 3 种最实用 ✔:实现上可以按**文档 + 段落类型**做"邻居召回" ✔(把例外段与主段一起给 ✔)。
三、提示词里也要防守
**这三条要写进输出格式** ✔(例如答案必须含"适用条件"一栏 ✔),否则模型会忽略 ✗。
四、怎么测这件事
构造 20 组"带例外"的样本 ✔:
```
资料:规则 R 适用,但场景 S 除外
问题:场景 S 该怎么办?
期望:明确指出 S 例外(而不是套用 R ✔)
```
分别测"只召回主段"和"主段 + 例外段" ✔ —— 后者应显著更好 ✔。
**把这一组样本固定下来** ✔(它就是"例外召回"的回归集 ✔)。
五、一个常见反模式
**用摘要替代原文** ✗:摘要过程最容易**丢掉例外与限制** ✔(因为它按"重要性"压缩 ✔,而例外往往读起来"不重要" ✔)。
若必须摘要,要求摘要**保留所有条件句** ✔,并在摘要上标注"原文可能含更多条件" ✔。
一条判据
> 抽 10 条回答,其中有多少条**明确写出了适用条件或例外** ✔?
> 如果一条都没有,说明系统在系统性地"只讲一半" ✗。