Ch47: 挑战深读⑨——RAGAS 盲区与 L6 通关清单
Part 10 终章 · challenges #14 · 串讲 Ch33–47 · Ch08 评估 · Ch20 Benchmark · Ch32 L4 大师
结论先行:RAGAS 四维(忠实度、答案相关、上下文精确/召回)不覆盖 时效、多跳中间步、排序位置、拒答鲁棒、成本效率——优化 RAGAS ≠ 优化生产。L6 通关 = 能在 源码走读(Ch33–37)+ 挑战深读(Ch38–47) 任选一挑战交付 带 smoke-10 消融指标的合入 PR。本章给 RAGAS-blind 补全方案与 32 项抽样中的 L6 扩展清单。
一、日常类比:四科考试漏测体育
RAGAS 像只考语数外科的期末卷——重要但不全面。#14 的盲区是 卷面没设计的维度:资料是否最新(时效)、中间推理步骤是否检索到(多跳)、答案在第几页(排序)、无题是否乱编(鲁棒)、做同分卷子谁更贵(成本)。竞赛 PR 应附 RAGAS + blind 分区 并列报告,而非单一 faithfulness 截图。
二、RAGAS 盲区五例(#14)
| 盲区 | 失败形态 | 补测手段 | 对应挑战章 |
|---|---|---|---|
| 时效性 | 旧 doc 与 GT 同分 | 版本冲突 5 条 | Ch38 · Ch42 |
| 多跳 | 中间步不可见 | 分步 recall 标注 | Ch45 |
| 排序 | 相关但在 top-4、5 | MRR@k / nDCG | Ch43 |
| 鲁棒性 | 无答案仍编造 | adversarial 5 条 | Ch38 |
| 成本 | 100 chunk vs 10 同分 | latency/token 并列 | Ch45 |
三、补全评估包
RAGAS 基线(smoke-10 全量 10 条)
├── RAGAS-blind 分区(建议 ≥15 条,可渐进)
│ ├── 时效冲突 5(zh-003 类)
│ ├── 多跳 5
│ ├── 无答案 adversarial 5
│ └── 跨语言 3(含 zh-008 [Ch44](/rhino-bird-2026/research/rag-knowledge/guide/ch44-challenge-chinese-crosslang/))
└── 工程指标:P95 延迟、context_tokens、agentic_rounds、分路耗时
CI 目标:python scripts/eval_ragas.py --benchmark benchmark/smoke-10.jsonl + Markdown 报告模板 Ch20。详见 rag-evaluation-methodology。
四、实验:RAGAS vs RAGAS-blind
固定 20 条(smoke-10 + blind 扩展),对比:
| 报告版本 | 包含指标 | 能否发现「高分仍被骂」 |
|---|---|---|
| 仅 RAGAS 四维 | F/A/CP/CR | 常不能 |
| + 时效标签 | 新旧 doc 命中率 | 能(#14) |
| + 拒答率 | 无答案题编造比例 | 能 |
| + cost 列 | token、P95 | 能(#16) |
高分仍骂 例:faithfulness 高但引用了过时「8 库」——RAGAS 未独立评时效。
五、Ch33–47 知识地图(L6 串讲)
| 章 | 主题 | 挑战 | PR 形态 |
|---|---|---|---|
| Ch37 | 五平台 lab | 全栈 | corpus 共建 |
| Ch38–40 | 最后一公里/解析/分块 | #1–#3+#12 | 见各章 |
| Ch41 | 贡献地图 | 索引 | issue 选题 |
| Ch42 | 图谱增量 | #4+#13 | EventManager 插件 |
| Ch43 | 检索栈 | #5+#6+#9 | 消融 + metrics |
| Ch44 | 中文/跨语言 | #7+#15 | zh-008 |
| Ch45 | Agent/Token | #8+#16 | max_rounds |
| Ch46 | Memory/互操作 | #10+#11 | chunk export |
| Ch47 | 评估/通关 | #14 | eval CI + L6 |
源码走读(Ch21–31)与上表 正交:改 internal/retrieval/ 必链 Ch43 消融;改 eventmanager/ 必链 Ch42 smoke。
六、L6 通关清单(在 Ch32 基础上扩展)
评估与证据(8)
- 复述 RAGAS 四维各测什么、各 不 测什么
- 跑通 smoke-10 并保存 baseline JSON
- PR 附 before/after 四指标 + P95
- 设计 1 条 adversarial 无答案题 + 拒答策略
- 解释 MRR@k 与 Context Precision 的差异
- 举一例「RAGAS 高但用户仍骂」并对应 blind 指标
- 列出一次请求的 token 五源占比(估即可)Ch45
- 用 zh-008 验证跨语言召回 Ch44
挑战深读闭环(8)
- 从 Ch41 选 1 挑战并定位源码目录
- Ch42:说清 DocumentUpdated 级联
- Ch43:完成 ≥2 个 smoke-10 消融变体
- Ch44:zh-008 context_recall 可解释
- Ch45:半 Agentic τ + max_rounds 默认值
- Ch46:Memory/doc 矛盾 UX 一句文案
- Ch47:RAGAS-blind 分区 ≥5 条入库
- 1 合入 PR 或 maintainer 认可的 draft + issue 讨论 case-1633 破冰
平台视野(4,L6 加分)
- 说清 WeKnora vs Dify chunk 一字段差异 Ch46
- 五平台实验 corpus 路径 Ch37
- 读 case-1774 三层 API 与 MCP 边界
- Part 10 全章 nav 能口述「哪章解决哪条挑战」
七、贡献方向(#14 向)
- smoke-10 扩展 RAGAS-blind JSONL + README 分区说明
- CI:
eval_ragas.py输出 Markdown + MRR@5 - PR 模板强制 消融表 + blind 子集
- 与 Ch31 闭环:低分 query 聚类 → 补 doc → re-eval
章末自检
- 复述 RAGAS 四维并各举一条 盲区
- 设计 RAGAS-blind 最小集(≥5 条)覆盖时效+无答案
- 从 Ch33–47 中指认与你 PR 最相关的 3 章并说明因果
- 对照 L6 清单勾选仍缺的 ≥3 项并排期