用十个问题给检索做体检
检索出问题时,大家常直接跳到"换模型" ✗。其实先用十个问题自查 ✔,
八成能找到更便宜、更根本的原因 ✔。
十问(按顺序问,前面的没过就别查后面 ✗)
1. 应该命中的片段,进候选集了吗?(召回 ✔)
→ 没进:查解析与切分(表格丢没丢?标题层级还在吗?✔)
2. 进了候选集,排在第几?(排序 ✔)
→ 排在 20 名开外:查排序信号(时效、权威、去重 ✔)
3. 片段里有答案,但被截断了吗?(上下文 ✔)
→ 查切分长度与"喂给模型前的压缩"(见片段预处理那篇 ✔)
4. 同一内容重复了多少遍?(去重 ✔)
→ 重复会把无关内容挤进上下文 ✔
5. 元数据齐吗?(时间/来源/权限 ✔)
→ 缺时间就无法判断时效 ✔;缺权限过滤就是安全隐患 ✔(见可筛选检索 ✔)
6. 索引多久没更新了?(新鲜度 ✔)
→ 查索引滞后时间(见新鲜度那篇 ✔)
7. 新旧版本混着吗?(版本 ✔)
→ 同一文档多个 current 是数据错误 ✔(见版本那篇 ✔)
8. 否定与例外被漏了吗?(完整性 ✔)
→ 见"检索里的否定与例外"那篇 ✔
9. 问题问法超出资料范围了吗?(该拒答 ✔)
→ 资料真没有 → 该拒答,而不是硬答 ✔
10. 是排序问题还是生成问题?(归因 ✔)
→ 用分段指标定位(见三段评测与分工契约两篇 ✔)
怎么用这十问
- 按顺序(前一步没过,后面的结论都不可靠 ✔);
- 每问要证据(不是"我觉得"✔,而是抽样 20 条看 ✔);
- 记录结论(哪一问没过、改了什么、指标变化 ✔);
- 定期做(每月一次体检 ✔ —— 见检索回归那篇 ✔)。
一条判据
有人报"检索不准" ✔,你能否在半小时内用这十问定位到具体哪一层 ✔?
不能,说明体检还没变成习惯 ✗。