RAG-06模块评估-AB-Experiment-RAG

本文属于 RAG 工程框架中的「6 模块化架构与评估闭环」环节,聚焦「AB Experiment(A/B 实验)」方法。可先阅读 RAG-00.方法概述 再进入本篇。

原理

将新旧链路分流到不同流量桶,比较质量、时延、成本与用户反馈,达标后再放量。

关键技术/实现路径

  • 流量分桶与随机化。
  • 指标显著性检验。
  • 自动放量与自动回滚。

优缺点

  • 优点:上线决策更客观。
  • 缺点:实验周期与流量成本增加。

性能与资源

  • 在线资源短期上升,但可降低错误发布风险。

应用场景

  • 新检索器、新重排器、新提示策略上线前验证。

统一合成数据示例

输入数据片段

1
{"exp_id":"ab-0326","control":"rerank_v1","treatment":"rerank_v2","traffic":"20%"}

中间结果(实验指标)

1
{"control":{"citation_precision":0.86},"treatment":{"citation_precision":0.90},"p_value":0.01}

最终生成示例(含引用)

1
{"decision":"treatment 放量至50%","guardrail":"p95_ms < 900"}

原始发表与工程实现

  • 代表性原始发表:Trustworthy Online Experiments (2020)。
  • 核心解决问题:解决线上真实收益验证。
  • 成熟实现工具:Statsig, LaunchDarkly, GrowthBook。

详细原理拆解

  • 随机分桶比较 uplift 与显著性,按门禁逐步放量。
  • 典型实现可拆为:输入预处理 -> 方法核心计算 -> 候选/证据构建 -> 生成与引用。
  • 工程调优重点:质量(准确率/引用率)与成本(时延/token)的联合优化。
1
2
3
4
5
flowchart LR
In[输入 Query 与知识] --> Core[方法核心计算]
Core --> Rank[匹配/路由/排序]
Rank --> Build[证据组装]
Build --> Out[答案与引用]

工程落地扩展示例

伪代码

1
2
3
def online_ab_assign(user_id, control, treatment, ratio: float):
bucket = hash(user_id) % 100
return treatment if bucket < ratio * 100 else control

参数示例

1
2
3
4
traffic_treatment: 0.2
primary_metric: citation_precision
guardrail_metrics: [p95_ms, error_rate]
stop_rule: sequential_testing

常见失败案例

  • 失败模式 1:分桶与 用户粘性 混淆(老用户总在 control),结论偏。
  • 失败模式 2:同时改检索与生成,归因不清
  • 失败模式 3:样本不足提前 peek 多次,显著性虚高。

Demo 数据带入计算示例

1
2
Control 满意度 62.0%,Treatment 65.1%,uplift=+3.1%,p=0.013<0.05。
与离线 Benchmark 不同:A/B 验证的是 **真实流量下的因果 uplift**,需配合护栏(p95、错误率)防回归。
-------------本文结束感谢您的阅读-------------