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