上线RAG容易,评估才分出真工程师和做demo的。
分解:检索质量(该找的文档找到没?)vs 生成质量(答案用对了吗?)vs 端到端(用户爽不爽?)。
检索指标:recall@k(top-k里有没有gold doc)、MRR(在列表第几位)、NDCG(分级相关)。需要query→gold doc标注集。
生成指标:忠实度(断言是否被检索上下文支持)、相关性(答到点子上)、groundedness(不幻觉)。LLM当裁判+rubric挺好用。
端到端:代表性query人工评估、生产thumbs-up率、升级率。
评估集:从真实用户query采样标注。合成evals错过长尾。
评估RAG要分开检索失败和生成失败——两者要不同的修法。检索我标几百条真实query的gold doc、跟recall@k和MRR;recall@5低就说明embedding或chunking烂。生成我用LLM当裁判+rubric(忠实度、相关性、完整性)——对检索上下文打分。端到端跟thumbs-up率、升级率、每次发版对冻结评估集的回归。常见坑:BLEU/ROUGE高但忠实度低——模型自信地胡说。忠实度单独做指标能抓。评估集我从生产query采样标——合成Q&A系统性错过用户实际措辞里的怪事。
LLM裁判跨模型版本会漂——对比运行结果用同一个裁判。
忠实度比流畅更重要。礼貌地错比犹豫地对更坏。
即答侠给了每个指标的rubric样例——面试官能看出你跑过evals。
少用——它们关联表面相似不关联正确性。忠实度+相关性更有信息量。
几百条标注抓回归差不多。生产加上1万+query的自动跟踪来捕漂。