排障与归因:badcase 驱动迭代

RAG 工程化深水20讲解 3

用户说「答非所问」,先把评测切成两段:看检索结果里有没有正确证据 —— 有就是生成问题,没有就是检索问题,再往上游一层层归因到切分、解析或 query。badcase 驱动迭代是面试最想听的工作方法:每个 badcase 进评测集,修完回归,不凭感觉调参。

也叫:排障 · 归因 · badcase · 答非所问 · 检索 vs 生成

核心概念:把评测切成两段出自 T2-8

RAG 评测必须分离检索质量和生成质量,分别打分。因为这两段的失败模式完全不同,修复手段也完全不同。

这也直接回答了面试最爱问的归因题(Q2-17):

原文示意
用户投诉「答非所问」
   ↓
把正确文档手工塞进 prompt,再问一次
   ├── 这次答对了  → 检索的锅:查分块、embedding、混合检索、rerank
   └── 还是答错    → 生成的锅:查 prompt、上下文顺序、模型选型、材料太长

这一刀是排障的第一动作,成本极低、信息量极大。面试时能立刻说出这个动作,基本就赢了这题。

只测生成,测不出检索的病
分开打分不是为了指标好看,是因为这两段坏了以后要动的地方完全不同

第一段 · 材料找对了吗

没进候选,后面全白搭

漏召回不可逆;排序错了还有 rerank 能救

对应
检索侧评测

有标注时最可靠

先保 Recall 别漏,再优化 NDCG/MRR 别排错

Recall@kPrecision@kMRRNDCG@k
第二段 · 材料用好了吗

材料齐了照样能答歪

有材料还胡编、答非所问、噪音太多

对应
生成侧评测 · RAGAS

核心用 LLM-as-Judge 打分

四个指标各盯一种失败模式

FaithfulnessAnswer RelevancyContext PrecisionContext Recall
两段的修复手段也不同:检索的锅去查分块、embedding、混合检索、rerank,生成的锅去查 prompt、上下文顺序、模型选型和材料长度。指标放错位置,等于修错地方。

以上节选自T2-8 RAG 评测:召回率、RAGAS 与 badcase 驱动迭代,读全文能看到前后语境。

badcase 驱动迭代(面试最想听的工作方法)出自 T2-8

原文示意
线上 badcase 收集(点踩、客服反馈、抽样人工审)
   ↓ 归因(先做上面那一刀:检索 or 生成?)
   ↓ 打标签分类:分块问题 / 召回问题 / 排序问题 / 生成问题 / 知识库缺失
   ↓ 按类型量级排优先级 → 针对性改一个变量
   ↓ 加进回归集 → 每次改动跑全量回归,防止修 A 打坏 B

核心纪律:一次只改一个变量。 同时换了 embedding 又改了 chunk 大小,效果变了你也不知道是谁的功劳。

以上节选自T2-8 RAG 评测:召回率、RAGAS 与 badcase 驱动迭代,读全文能看到前后语境。

延伸阅读

考这个知识点的题2

会连带问到18