AB测试LLM特性


文档摘要

AB测试LLM特性 本节摘要:传统 A/B 测试不是为非确定性的 LLM 设计的。关键区分:评测(evals)回答「模型能不能完成任务」,A/B 测试回答「用户在不在乎」——两者缺一不可,靠「感觉」上线已经行不通。2026 年可测的三条轴:提示工程(措辞)、模型选择(GPT-5 vs GPT-4o-mini vs 开源;准确率 vs 成本 vs 延迟)、生成参数(温度、top-p)。真实案例:某聊天机器人奖励模型变体带来 +70% 对话长度和 +30% 留存;Nextdoor 邮件主题行实验在奖励函数打磨后带来 +1% 点击率;Khan Academy Khanmigo 在延迟 vs 数学准确率轴上反复迭代。

AB测试LLM特性

本节摘要:传统 A/B 测试不是为非确定性的 LLM 设计的。关键区分:评测(evals)回答「模型能不能完成任务」,A/B 测试回答「用户在不在乎」——两者缺一不可,靠「感觉」上线已经行不通。2026 年可测的三条轴:提示工程(措辞)、模型选择(GPT-5 vs GPT-4o-mini vs 开源;准确率 vs 成本 vs 延迟)、生成参数(温度、top-p)。真实案例:某聊天机器人奖励模型变体带来 +70% 对话长度和 +30% 留存;Nextdoor 邮件主题行实验在奖励函数打磨后带来 +1% 点击率;Khan Academy Khanmigo 在延迟 vs 数学准确率轴上反复迭代。平台分野:Statsig(2025 年 9 月被 OpenAI 以 11 亿美元收购)——序贯检验、CUPED、全家桶;GrowthBook——开源、仓库原生、贝叶斯+频率派+序贯三引擎、CUPED、SRM 检查、Benjamini-Hochberg 与 Bonferroni 多重比较校正。选哪个,看你是否偏好仓库 SQL 取数姿势,以及「被 OpenAI 收购」对你的组织是否构成考量。

对应原课程:Phase 17 · Lesson 21 · 21-ab-testing-llm-features(原英文 phases/17-infrastructure-and-production/21-ab-testing-llm-features/docs/en.md)。

学习目标

阅读完本节,你应当能够:

  1. 区分评测(「模型能不能完成任务」)与 A/B 测试(「用户在不在乎」),并说明为何两者都必需。
  2. 列举三条可测轴(提示、模型、参数),并为每条选定对应指标。
  3. 解释 CUPED、序贯检验、Benjamini-Hochberg 多重比较校正的原理与作用。
  4. 基于仓库 SQL 取数姿势与组织对供应商归属的考量,在 Statsig 与 GrowthBook 之间做出选择。

一、问题与直觉

你手工调了一个系统提示。感觉更好。你上线了。转化率随噪声波动。你怪指标。或者你换了个新模型,转化率纹丝不动——是模型变差了,还是改动小到测不出来?你不知道,因为你没有做 A/B 就上线了。

评测回答的是:模型在固定分布上输出是否正确/有用/安全。A/B 测试回答的是:新变体是否真的撬动了那个「重要」的用户级指标。评测在暴露前抓回归,A/B 在上线后确认产品影响——少了任何一道,你都在靠「感觉」上线。

「靠感觉」是最普遍的反模式。每个资深工程师都能举出一个「因为感觉更好」就上线、却悄悄拖累产品指标数月没人察觉的特性。A/B 是把纪律焊进流程的强制函数。

二、核心概念

评测 vs A/B 测试

维度 评测 Eval A/B 测试
环境 离线 在线
数据 标注集 真实用户、随机分桶
裁判 评分细则/LLM-as-judge/人工 用户级行为指标
回答 这个固定分布上输出好不好 新变体是否撬动了关键指标

两者缺一不可。评测在暴露前抓回归,A/B 在上线后确认产品价值。

三条可测轴

  1. 提示工程 —— 措辞、系统提示结构、示例。指标:任务成功率、用户留存、每请求成本。
  2. 模型选择 —— GPT-5 vs GPT-4o-mini vs 开源 Llama。指标:准确率(任务)+ 每请求成本 + 延迟 P99,多目标权衡。
  3. 生成参数 —— temperature、top-p、max_tokens。指标:任务特定(输出多样性 vs 确定性)。

CUPED——方差削减

CUPED(Controlled-experiments Using Pre-Experiment Data)用实验前数据回归掉预期间方差,再比较实验后指标。典型方差削减 30~70%,等效样本量「免费」变大。Statsig 与 GrowthBook 都内建实现。

序贯检验

经典 A/B 假设固定样本量。序贯检验(「边看边判」)在反复查看的情况下仍能控制假阳性率。always-valid 序贯过程(mSPRT、Howard 置信序列)让你在出现明显赢家时提前停止,不必死等预设样本量。

多重比较校正

同时跑 20 个 95% 置信的 A/B,光靠运气也会出一个假阳性。Bonferroni 把 α 除以检验次数(最严);Benjamini-Hochberg 控制错误发现率(False Discovery Rate, FDR,较宽松)。GrowthBook 两者都实现。

SRM——样本比失衡

分桶哈希把用户随机分到变体。若 50/50 设定跑出 47/53,说明分桶坏了——SRM 检查会标记它。两个平台都实现。

非确定性让功效计算更复杂

同一提示产生不同输出。经典功效计算假设 IID 观察;LLM 非确定性下,有效样本量低于名义值。把所需样本量乘 1.3~1.5 作为安全裕度。

Statsig vs GrowthBook

Statsig:

  • 2025 年 9 月被 OpenAI 以 11 亿美元收购。托管 SaaS。
  • 序贯检验、CUPED、留出人群。
  • 全家桶:特性 flag + 实验 + 可观测。
  • 适合:想要打包产品、不在意 OpenAI 归属的团队。

GrowthBook:

  • 开源(MIT);仓库原生(直接读 Snowflake/BigQuery/Redshift)。
  • 多引擎:贝叶斯、频率派、序贯。
  • CUPED、SRM、Bonferroni、BH 校正。
  • 自托管或托管云。
  • 适合:仓库 SQL 派、数据团队掌管指标层、想要开源。

你该记住的数字

  • Statsig 被 OpenAI 收购:11 亿美元,2025 年 9 月。
  • GrowthBook:开源 MIT;贝叶斯 + 频率派 + 序贯。
  • CUPED 方差削减:30~70%。
  • LLM 非确定性 → 样本量 +30~50% 裕度。

三、从零实现:序贯 A/B 模拟

原课程 code/main.py 模拟一个带固定边界与序贯边界的 A/B 测试,展示序贯如何让你提前停止。下面给最小可读的序贯判定骨架。

def sequential_ab_test(conversions_a, conversions_b, n, alpha=0.05): """简化版序贯判定:比较两变体转化率,序贯边界用正态近似。 conversions_a/b: 两变体累计成功数 n: 每变体当前样本量(假设等量) alpha: 单次检验显著性水平 返回: (判决, Z 统计量, 序贯边界) """ p_a = conversions_a / n p_b = conversions_b / n p_pool = (conversions_a + conversions_b) / (2 * n) se = (p_pool * (1 - p_pool) * (2 / n)) ** 0.5 z = (p_b - p_a) / se # Z 统计量 # always-valid 序贯边界比固定 α/2 更严,这里用收紧的近似 seq_boundary = 2.24 # mSPRT 近似,对应 ~alpha 收紧 if z > seq_boundary: verdict = "B 显著优于 A,可提前停止" elif z < -seq_boundary: verdict = "A 显著优于 B,可提前停止" else: verdict = "继续收集样本" return verdict, round(z, 3), seq_boundary # 案例:基线转化 3%,A=90/3000,B=135/3000(实测 +1.5pp) v, z, b = sequential_ab_test(90, 135, 3000) print(f"判决={v}, Z={z}, 序贯边界={b}")

💡 序贯检验的真正价值不是「更快出结论」,而是「在明显赢家出现时合法地提前停」。没有序贯校正的「边看边判」会膨胀假阳性率——你以为赢了,其实是多重偷看的运气。

四、框架对比:Statsig 与 GrowthBook 横向对照

维度 Statsig GrowthBook
许可/归属 闭源 SaaS,2025 年 9 月被 OpenAI 收购 开源 MIT,可自托管
数据姿势 自带事件管道 仓库原生,直读 Snowflake/BigQuery/Redshift
统计引擎 序贯 + CUPED + 频率派 贝叶斯 + 频率派 + 序贯(三引擎可选)
多重比较 支持 Bonferroni + Benjamini-Hochberg
SRM 检查 内建 内建
全家桶 特性 flag + 实验 + 可观测 实验为主,与外部 flag 配合
适合谁 想要打包产品、不在意 OpenAI 归属 仓库 SQL 派、数据团队掌管指标、想要 OSS

心法:你的取数姿势(是否仓库 SQL 原生)和你的供应商归属考量(被 OpenAI 收购是否构成合规/采购阻力),往往比功能清单更能决定选型。

五、可复用产物

本节产出 outputs/skill-ab-plan.md(原课程目录)。给定特性改动、工作负载、基线,它产出:

  1. 平台选择:依取数姿势与合规姿态在 Statsig / GrowthBook 间取舍。
  2. 三条轴定位:这次改动属于提示/模型/参数哪条轴,对应主指标。
  3. 样本量:考虑 CUPED 削减后,叠加 LLM 非确定性 +30~50% 裕度算出所需样本。
  4. 门与护栏:主指标、护栏指标(防回归)、次要指标,并设序贯停止规则与多重比较校正。

六、练习

  1. 样本量计算:基线转化 3%,预期提升 5%(相对),要 80% 功效需要多少样本?叠加 LLM 非确定性裕度后呢?

  2. 平台选型:一个受医疗监管、必须本地部署的客户,选 Statsig 还是 GrowthBook?给出理由。

  3. 三指标设计:设计一个对比 GPT-5 与 GPT-4o-mini、以「每解决工单成本」为终点的 A/B。主指标、护栏指标、次要指标分别是什么?

  4. 金丝雀过了但 A/B 没过:金丝雀五门全过,但 A/B 显示 -1.2% 转化。上不上?写出升级判定标准。

  5. CUPED 收益:预期间方差占实验后方差 60%。算出 CUPED 带来的有效样本量提升。

本节要点回顾

  1. 评测 vs A/B:评测回答「模型能不能」,A/B 回答「用户在不在乎」,两者都必需。
  2. 三条可测轴:提示(措辞)、模型(选型)、参数(温度/top-p),每条对应不同主指标。
  3. CUPED 削减方差:用实验前数据回归,典型削减 30~70%,等效样本量免费变大。
  4. 序贯检验:always-valid 过程让你在明显赢家出现时合法提前停,不膨胀假阳性。
  5. 多重比较校正:同时多检验会膨胀假阳性,Bonferroni 最严、BH 控制 FDR 较宽松。
  6. SRM 检查:50/50 设定跑出 47/53 即分桶坏了,两个平台都内建检查。
  7. 非确定性膨胀样本:LLM 同提示输出方差大,所需样本量乘 1.3~1.5 裕度。
  8. Statsig vs GrowthBook:Statsig 全家桶且 2025 年被 OpenAI 收购;GrowthBook 开源仓库原生,三引擎 + 双重校正。
  9. 靠感觉上线是反模式:A/B 是把纪律焊进流程的强制函数,「感觉更好」的特性常悄悄拖累指标。
  10. 真实收益区间:聊天机器人 +70% 对话长度/+30% 留存;邮件主题行 +1% 点击率——LLM A/B 的增益可以很大,也可以很小,只有实验知道。

下一节,我们转向负载测试——看 k6、Locust 为何在 LLM 上「撒谎」,以及 LLMPerf、GenAI-Perf 如何用流式感知与真实提示分布还原真相。


发布者: 作者: Rohit Gupta 转发
评论区 (0)
U