首页/AI/RAG 与向量库速查/检索评估流水线搭建

检索评估流水线搭建

检索评估的最小闭环:收集真实问题 → 标注相关片段(人工或程序辅助)→ 脚本化计算 recall@k / mrr / ndcg → 与当前线上配置对照出报告;数据与脚本入库,版本化可复跑。

RAG 与向量库速查AI更新于 2026-10-13

检索评估流水线是什么

评估流水线的最小闭环是四步:收集真实问题、标注相关片段、脚本化计算指标、与当前线上配置输出对比报告。它的价值不在于单次跑分,而在于可复跑——数据与脚本一起入库并版本化,任何配置改动都能在几分钟内得到与历史可比的结果。标注不必一开始就做全:五十到一百条覆盖主要问法的问答已经能暴露多数问题,之后随线上问题持续增补,评测集本身就是资产。

基本信息

数据形态问题 + 标准相关片段 id 的 jsonl 文件
核心指标Recall@k、MRR、NDCG
起步规模50~100 条真实问答即可发现主要问题
标注方式强模型产出候选,人工只做增删改
版本化数据集、脚本、指标报告一并入库

典型使用场景

  • 配置改动验收:切分、模型、索引参数变更后跑同一套用例对比
  • 上线门禁:把 Recall@k 等指标接入 CI,超阈即阻断
  • 问题定位:指标下滑时按业务线分组,快速锁定受影响的语料范围
  • 标注提效:用强模型先给出候选相关片段,人工只做修正
  • 长期趋势:定期重跑,捕捉语料漂移带来的缓慢劣化

目录与命令

目录与命令
eval/
  dataset/questions.jsonl     # 问题 + 标准相关片段 id
  run.py                      # 计算指标并与基线对比

python eval/run.py --index kb_v3 --topk 10
# 输出:recall@10=0.86  mrr@10=0.72  ndcg@10=0.79

标注辅助

标注辅助
# 用强模型先给候选,人工只做增删改,降低标注成本
candidates = retriever.search(q, top_k=20)
label = human_review(strong_model_label(candidates, q))
save_label(q, label, reason='条款第 3 条直接回答')   # 记录判定理由

指标与用途

指标回答的问题短板
Recall@k答案有没有被捞进候选不反映排序质量
MRR第一个相关片段排多前只看首个命中
NDCG整体排序质量需要分级相关性标注
人工通过率答案能不能直接用成本高、样本量小
标注时记录判定理由:出现分歧时能复盘是标注口径问题还是检索问题,否则同一批数据反复讨论也得不出一致结论。

易错点

  • 问题集只覆盖高频问法,长尾与口语化问法未被评测
  • 标注不记录判定理由,分歧无法复盘
  • 数据集与脚本不版本化,指标变化无法与历史对齐
  • 切分参数变更后沿用旧标注,标注与当前切片不再对应
  • 只跑一次就当作验收通过,后续改动缺乏可比的回归基线

数据来源与参考

  • Manning et al., Introduction to Information Retrieval(评测方法)
  • RAGAS 官方文档(评测集构建建议)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌