用11道固定题评测RAG检索效果
AI 总结
一位智能文档问答助手开发者用11道固定题建立离线RAG评测,检查标准答案中的必要句是否进入检索结果前K条及其排名。默认的父子分块、混合检索和重排top5配置取得recall@1 0.455、recall@3 0.818、recall@5 1.000及MRR 0.652;扁平分块结果较低,重排截断为top2则令recall@3和MRR下降。关闭关键词检索一路后,汇总指标与默认配置相同。
深度见解
文章给出了分离分块、检索路径和重排影响的复现方法,但开发者明确指出11题只能支撑有限结论;生产环境使用30至100题只是经验判断,并非实测结论。
11 道题给 RAG 装了个仪表盘,读数推翻了我三个想当然
智能文档问答这个助手我改了很久,RAG 效果好坏一直靠“感觉答得还行”判断。上周加了一套离线评测,一轮跑完,三个我想当然的地方一个没剩下。这套评测只有 11 道固定题,打一次拿 recall@K 和 MRR;同一份语料、同一套题,每次只改一个配置开关。
只做一件事:每题存一句标准答案里必不可少的话,把问题丢给检索链路,看这句话在不在返回的前 K 条里、排第几。生成的答案它不碰——材料没到手,prompt 再漂亮也补不回来。
题集就是 src/main/resources/rag-golden-set.json,一条用例三个字段,判指标只看中间那个。文件开头第一条长这样,referenceAnswer 那句完整有 48 字、这里截了尾,往下还有 10 条同结构的:
{
"cases": [
{
"question": "七天无理由退货需要满足什么条件?",
"expectedContextContains": "不影响二次销售",
"referenceAnswer": "商品需保持完好、不影响二次销售,…"
}
]
}