A/B 测试 LLM 特性 —— GrowthBook、Statsig 与"凭感觉"问题
传统 A/B 测试不是为非确定性的 LLM 造的。关键区别:eval 回答"模型能不能干这活?"A/B 测试回答"用户在不在乎?"两者都需要;凭感觉上线的时代结束了。2026 年测什么:prompt 工程(措辞)、模型选择(GPT-4 vs GPT-3.5 vs OSS;准确率 vs 成本 vs 延迟)、生成参数(temperature、top-p)。真实案例:一个聊天机器人的奖励模型变体带来 +70% 对话长度和 +30% 留存;Nextdoor 的 AI 主题行实验在奖励函数精调后带来 +1% CTR;Khan Academy 的 Khanmigo 在延迟 vs 数学准确率这个轴上迭代。平台划分:Statsig(2025 年 9 月被 OpenAI 以 11 亿美元收购)—— 序贯测试、CUPED、一体化。GrowthBook —— 开源、仓库原生、贝叶斯 + 频率派 + 序贯引擎、CUPED、SRM 检查、Benjamini-Hochberg + Bonferroni 校正。你基于对仓库-SQL 的偏好,以及"被 OpenAI 收购"对你的组织重不重要来挑。
类型: Learn 语言: Python(标准库,一个玩具级序贯测试模拟器) 前置要求: 阶段 17 · 13(可观测性)、阶段 17 · 20(渐进式部署) 预计时间: ~60 分钟
学习目标
- 区分 eval("模型能不能干这活")和 A/B 测试("用户在不在乎")。
- 列举三个可测的轴(prompt、模型、参数),并为每个挑指标。
- 解释 CUPED、序贯测试和 Benjamini-Hochberg 多重比较校正。
- 基于仓库-SQL 态度和企业收购立场,挑选 Statsig 还是 GrowthBook。
问题背景
你手调了一个系统 prompt。感觉更好。你上线了。转化率在噪声范围内变动。你怪指标。或者你上了一个新模型,转化率没动 —— 是模型退化了,还是改动太小检测不到?你不知道,因为你没做 A/B 就上了。
eval 回答的是模型在一个带标注集上能不能完成任务。它们不回答用户是否更喜欢这个输出。只有受控的在线实验才回答那个,而且只在实验有足够功效、控制了非确定性、对多重比较做了校正的前提下。
核心概念
Eval vs A/B 测试
Eval —— 离线、带标注集、评判(rubric 或 LLM 当评判或人评)。回答:"输出在这个固定分布上正确 / 有帮助 / 安全吗?"
A/B 测试 —— 在线、实时用户、随机化。回答:"新变体有没有撬动那个重要的用户级指标?"
两者都需要。eval 在暴露前抓回退;A/B 在之后确认产品影响。
测什么
- prompt 工程 —— 措辞、系统 prompt 结构、示例。指标:任务成功率、用户留存、单请求成本。
- 模型选择 —— GPT-4 vs GPT-3.5-Turbo vs Llama-OSS。指标:准确率(任务)+ 单请求成本 + 延迟 P99。多目标。
- 生成参数 —— temperature、top-p、max_tokens。指标:任务特定(输出多样性 vs 确定性)。
CUPED —— 方差削减
Controlled-experiments Using Pre-Experiment Data(用实验前数据的受控实验)。在比较实验后数据前,把实验前的方差回归掉。典型方差削减:30-70%。有效样本量白白上升。
实现:Statsig 和 GrowthBook 都实现了。
序贯测试
经典 A/B 假设固定样本量。序贯测试("偷看再决定")在反复查看下控制假阳率。始终有效的序贯流程(mSPRT、Howard 的置信序列)让你在明显胜出时提早停止。
多重比较校正
在 95% 置信度下跑 20 个 A/B 测试,靠运气就会产生一个假阳。Bonferroni 校正收紧每个测试的 α;Benjamini-Hochberg 控制假发现率。GrowthBook 两者都实现了。
SRM —— 样本比例失配
分配哈希把用户随机化到各变体。如果 50/50 切分给出 47/53,说明有东西坏了 —— SRM 检查会标记它。两个平台都实现了。
Statsig vs GrowthBook
Statsig:
- 被 OpenAI 以 11 亿美元收购(2025 年 9 月)。托管、SaaS。
- 序贯测试、CUPED、留出人群。
- 一体化:feature flag + 实验 + 可观测性。
- 最佳适用:团队已经想要一个捆绑产品,不在乎 OpenAI 所有权。
GrowthBook:
- 开源(MIT);仓库原生(直接从 Snowflake/BigQuery/Redshift 读)。
- 多引擎:贝叶斯、频率派、序贯。
- CUPED、SRM、Bonferroni、BH 校正。
- 自托管或托管云。
- 最佳适用:仓库-SQL 团队,数据团队掌控指标层,想要 OSS。
非确定性让功效计算变复杂
同一 prompt 产生不同输出。传统功效计算假设 IID 观测。有了 LLM 非确定性,有效样本量低于名义值。把所需样本量乘以约 1.3-1.5x 作为安全余量。
真实案例结果
- 聊天机器人奖励模型变体:+70% 对话长度,+30% 留存。
- Nextdoor 主题行:奖励函数精调后 +1% CTR。
- Khan Academy Khanmigo:延迟 vs 数学准确率的迭代权衡。
反模式:凭感觉上线
每个资深工程师都能说出一个因为"感觉更好"就上线、没做 A/B 的特性。它们中大多数让团队几个月都没注意到的产品指标退化了。A/B 就是那个逼你做决定的因素。
你该记住的数字
- Statsig 被 OpenAI 收购:11 亿美元,2025 年 9 月。
- GrowthBook:开源 MIT;贝叶斯 + 频率派 + 序贯。
- CUPED 方差削减:30-70%。
- LLM 非确定性 → +30-50% 样本量缓冲。
mx-sequential-test实际使用
code/main.py 用固定边界和序贯边界模拟一个序贯 A/B 测试。展示序贯如何让你提早停止。
拿去用
这一课产出 outputs/skill-ab-plan.md。给定特性改动、工作负载、基线,挑平台、闸门、样本量。
练习
- 跑
code/main.py。对一个基线 3% 转化率、预期 5% 提升的情况,到 80% 功效需要多少样本量? - 为一个受医疗监管的本地部署客户挑 Statsig 还是 GrowthBook。
- 设计一个在"每解决工单成本"上测 GPT-4 vs GPT-3.5 的 A/B。主指标、护栏指标、次要指标各是什么?
- 你的 canary 通过了,但 A/B 显示 -1.2% 转化。你上吗?写出升级准则。
- 把 CUPED 应用到一个方差为实验后 60% 的实验前期。算有效样本量的提升。
关键术语
| 术语 | 大家嘴上怎么说 | 它实际是什么 |
|---|---|---|
| Eval | "离线测试" | 对模型能力的带标注集评估 |
| A/B 测试 | "实验" | 对用户的实时随机化对比 |
| CUPED | "方差削减" | 用实验前期回归来削减方差 |
| 序贯测试 | "可偷看的测试" | 允许提早停止的始终有效流程 |
| 多重比较 | "族系误差" | 跑很多测试会膨胀假阳 |
| Bonferroni | "收紧校正" | 把 α 除以测试数 |
| Benjamini-Hochberg | "BH FDR" | 假发现率控制,没那么保守 |
| SRM | "坏切分" | 样本比例失配;分配 bug |
| Statsig | "OpenAI 拥有的" | 商用一体化,2025 年被收购 |
| GrowthBook | "那个 OSS 的" | MIT 仓库原生平台 |
| mSPRT | "序贯概率比检验" | 经典序贯流程 |