A/B 测试实施
---
章节:专家篇第15章第2节
难度:⭐⭐⭐⭐ 专家级
阅读时间:25-30 分钟
核心收获:掌握 A/B 测试方法,用数据驱动 Prompt 优化
18.6 理论要点:A/B测试的本质
18.6.1 为什么需要 A/B 测试
问题:改了 Prompt,怎么知道新版本更好?
A/B测试的价值: - 数据驱动决策,避免主观判断 - 量化改进效果 - 降低上线风险
18.6.2 A/B测试流程
1. 提出假设
└── "调整工具类权重后,采纳率会提升"
2. 设计实验
├── 确定测试指标
├── 确定样本量
└── 确定测试周期
3. 分组执行
├── A组:旧版本
└── B组:新版本
4. 数据收集
└── 记录两组的表现数据
5. 统计分析
├── 计算均值、标准差
├── T检验
└── 确定显著性
6. 决策
├── 显著提升 → 全量上线
├── 显著下降 → 回滚
└── 无显著差异 → 保持或重新设计
18.6.3 样本量计算
import scipy.stats as stats
def calculate_sample_size(baseline_rate, mde, alpha=0.05, power=0.8):
"""
计算所需样本量
baseline_rate: 基线转化率
mde: 最小可检测效应(如0.05表示提升5%)
alpha: 显著性水平
power: 统计功效
"""
effect_size = stats.norm.ppf(1 - alpha/2) + stats.norm.ppf(power)
p = (baseline_rate + baseline_rate + mde) / 2
sample_size = (2 * p * (1-p) * effect_size**2) / mde**2
return int(np.ceil(sample_size))
# 示例:基线采纳率40%,期望提升到50%
sample_size = calculate_sample_size(0.4, 0.1)
print(f"需要样本量:{sample_size}")
18.7 实战案例:Prompt A/B测试
18.7.1 场景:测试新的过滤规则
假设:增加"排除7天前旧话题"规则后,采纳率提升。
实验设计:
A组(对照组):v1.0 Prompt(不过滤旧话题)
B组(实验组):v1.1 Prompt(过滤7天前旧话题)
测试指标:
- 主要指标:采纳率
- 次要指标:过滤准确率、用户满意度
样本量:每组100条
测试周期:7天
18.7.2 实验结果
# A组数据
a_adopted = 42 # 采纳42条
a_total = 100 # 总共100条
a_rate = a_adopted / a_total # 42%
# B组数据
b_adopted = 51 # 采纳51条
b_total = 100 # 总共100条
b_rate = b_adopted / b_total # 51%
# T检验
t_stat, p_value = stats.ttest_ind(
[1]*a_adopted + [0]*(a_total - a_adopted),
[1]*b_adopted + [0]*(b_total - b_adopted)
)
print(f"A组采纳率:{a_rate:.1%}")
print(f"B组采纳率:{b_rate:.1%}")
print(f"P值:{p_value:.4f}")
print(f"结论:{'显著' if p_value < 0.05 else '不显著'}")
18.7.3 结果解读
结果:B组采纳率51% > A组采纳率42%
P值:0.032 < 0.05
结论:差异统计显著,新版本更好
决策:全量上线 v1.1
18.8 图文说明
📌 待补充:建议绘制以下示意图 1. A/B测试流程图 2. 样本量计算图 3. 结果对比柱状图 4. 统计显著性判断图
18.9 常见错误
| 错误 | 后果 | 纠正方法 |
|---|---|---|
| 样本量不足 | 结论不可靠 | 使用样本量计算器 |
| 测试周期太短 | 数据波动大 | 至少运行一周 |
| 多变量同时测试 | 无法确定哪个变量有效 | 一次只测试一个变量 |
| 提前结束测试 | 结果偏差 | 达到样本量再结束 |
| 忽略统计显著性 | 误判结果 | 必须P值<0.05才认为显著 |
📝 版本迭代记录
| 版本 | 日期 | 更新内容摘要 | 操作人 |
|---|---|---|---|
| v1.0 | 2026-08-25 | 创建专家篇第15章第2节 | 桂皮 |
🤖 GEO 问答 · 生成式引擎优化
❓ 什么是A/B 测试实施?
❓ 如何理解理论要点:A/B测试的本质?
- 提出假设
❓ 如何理解实战案例:Prompt A/B测试?
A组(对照组):v1.0 Prompt(不过滤旧话题)