1996 字
约 6 分钟
5
如何用 A/B 测试评估 RAG:别只看“回答像不像”,要看“是否真的更好用”

如何用 A/B 测试评估 RAG:别只看“回答像不像”,要看“是否真的更好用”

RAG 系统上线后,常见情况是:你换了一个 Embedding 模型、加入重排模型,或者调整了分块策略,主观感觉答案似乎更好了。

但“感觉更好”不等于真的更好。要判断某个 RAG 方案是否值得上线,A/B 测试是最可靠的方法之一。

简单说,A/B 测试就是让一部分用户使用旧方案 A,另一部分用户使用新方案 B,在相同条件下比较结果,最后用数据决定是否切换。

一、先明确:A/B 测试到底测什么?

RAG 的回答质量由多个环节共同决定:

用户问题
→ 检索召回
→ 重排筛选
→ 拼接上下文
→ 大模型生成答案
→ 用户反馈

因此,A/B 测试不只是比较“两个模型谁回答得更流畅”,而是比较某个改动是否让整个链路更有效。

例如:

  • A:仅用向量检索;
  • B:向量检索 + 关键词检索 + 重排模型。

或者:

  • A:每段文档按 500 字切分;
  • B:按标题和语义段落切分。

又或者:

  • A:直接让模型回答;
  • B:要求模型必须引用检索来源,资料不足时明确拒答。

一次测试最好只改一个核心变量。否则 B 比 A 好,你也很难判断到底是分块、Embedding、重排,还是提示词起了作用。

二、RAG 的 A/B 测试,应同时看四类指标

1. 检索指标:找没找对资料?

这是 RAG 的基础。如果检索错了,模型写得再漂亮也可能是“有依据地胡说”。

常用指标包括:

  • Recall@K:正确资料是否出现在前 K 条检索结果中;
  • MRR:正确资料排得是否足够靠前;
  • 命中率:用户问题对应的标准资料是否被召回;
  • 无关文档比例:检索结果中有多少是噪声。

例如,某个问题的正确答案在第 1 篇制度文件中,但系统只检索到了第 20 篇不相关文档。即使最终模型答对了,也不代表系统稳定可靠。

2. 回答指标:答得对不对、全不全?

回答层面可以人工标注,也可以让专家或评审模型辅助打分。常见维度是:

指标 要解决的问题
正确性 回答是否符合事实
相关性 是否真正回答了用户的问题
完整性 是否遗漏关键条件或步骤
忠实性 是否严格基于检索资料,而非编造
可读性 用户是否容易理解和执行
引用准确性 引用的资料是否真的支持结论

其中最重要的是忠实性。RAG 不是普通聊天机器人,它的价值在于“有据可查”。如果系统引用了资料,却得出了资料中没有的结论,就存在幻觉风险。

3. 用户指标:用户觉得有没有用?

离线数据看起来更优,不代表真实用户更满意。上线后可以观察:

  • 点赞率、采纳率;
  • 用户是否继续追问;
  • 同一问题是否反复重问;
  • 人工客服或人工检索的转接率;
  • 用户完成任务的时间;
  • 用户对“答案是否解决问题”的评分。

例如,B 方案回答更长、更全面,但用户获取关键信息的时间更久,满意度反而下降。此时 B 未必真的更好。

4. 安全指标:有没有答出不该答的内容?

对于企业 RAG,这一项必须单独测试。

重点关注:

  • 是否检索到无权限文档;
  • 是否泄露个人信息、合同金额、薪资等敏感字段;
  • 是否能被提示词注入诱导;
  • 是否在资料不足时硬编答案;
  • 是否错误引用过期制度、已废弃流程。

一个回答“更详细”,不一定更好;如果它把不该出现的信息说出来,整体就是失败。

三、一个最实用的 A/B 测试设计

假设你准备验证:加入重排模型后,RAG 是否更好。

可以这样设计:

A 组:向量检索 → 前 5 条文档 → 大模型回答
B 组:向量检索 → 取前 20 条 → 重排 → 前 5 条文档 → 大模型回答

然后把真实用户随机分成两组:

  • 50% 用户进入 A;
  • 50% 用户进入 B;
  • 用户身份、权限范围、问题类型尽量保持可比;
  • 同一用户在同一轮会话中固定使用同一方案,避免体验混乱。

测试时,至少记录:

问题文本
用户权限
实验分组
检索文档及排序
最终答案
用户是否点赞/追问/转人工
响应耗时
安全拦截结果

经过一段时间后,再比较 A、B 两组的整体表现。

四、不要只做在线测试,最好先做离线评测

直接把不成熟的 B 方案推给真实用户,风险较高。更稳妥的流程是:

历史问题集
→ 离线评测
→ 小流量灰度 A/B 测试
→ 扩大流量
→ 正式上线

离线评测时,可以整理一批有标准答案的问题,例如:

  • 常见制度问答;
  • 多文档综合问题;
  • 需要精确引用的问题;
  • 故意设计的模糊问题;
  • 无答案问题;
  • 越权和敏感信息问题。

这批数据不能只包含简单问题,否则系统会出现“考试成绩很高、真实使用很差”的情况。

五、RAG 测试里最容易犯的五个错误

第一,只看模型回答,不看检索结果。 模型偶然答对,不代表知识库检索正确。必须把“召回质量”和“生成质量”分开看。

第二,一次修改太多东西。 分块、Embedding、重排、提示词一起改,最后无法判断改进来自哪里。

第三,只看平均分。 平均分提高,可能是简单问题变好了,但复杂问题、敏感问题反而变差。应按问题类型分组分析。

第四,忽略响应时间和成本。 B 的准确率高 1%,但响应时间从 2 秒变成 10 秒,调用成本翻三倍,未必值得上线。

第五,没有安全对照集。 RAG 不仅要回答“知道的问题”,还要正确拒答“无权限、无资料或不该回答的问题”。

六、最后怎么判断 B 是否胜出?

B 方案不是只要某一个分数高就上线,而是要同时满足:

回答正确率提高
检索命中率不下降
幻觉和错误引用不增加
敏感信息泄露风险不增加
响应时间和成本在可接受范围内
用户满意度或任务完成率提升

如果 B 只是“语言更漂亮”,但检索更慢、幻觉更多、用户更容易追问,它就不是真正的优化。

一句话总结:

RAG 的 A/B 测试,不是在比较哪套系统更会“说话”,而是在比较哪套系统能更安全、更准确、更高效地帮助用户完成任务。

如何用 A/B 测试评估 RAG:别只看“回答像不像”,要看“是否真的更好用”
http://clxhxhhr.top/posts/583/
作者
clxstart
发布于
2026-09-12
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。