如何对 AI 应用进行 A/B 测试?和传统软件的 A/B 测试有什么不同?
- 标签:
🏛 业务架构师
AI 应用的 A/B 测试与传统软件的差异,我先讲方法论再讲差异:
基本流程(与传统一致的骨架):明确假设(新提示词提升答案采纳率)→ 确定核心指标与最小可检测效应 → 分流实验(随机、同期、足够样本量)→ 统计显著性检验 → 决策上线。
与传统 A/B 的四个关键差异:
- 输出非确定性:同一输入每次输出不同(temperature、模型版本)——方差更大,需要更大样本量;建议固定模型版本跑完实验,否则混杂因素(厂商周四悄悄升级)污染结论;
- 指标是"质量"而非"行为":传统看点击转化,AI 还要看答案质量(采纳率、重写率、点赞/点踩、人工接管率)——质量指标往往要 LLM-as-Judge 或人工抽样补齐,评估成本更高;
- 长尾分布:流量集中在少数 query 类型,头部优化掩盖长尾恶化——分层分析(按意图/难度分组看指标)是必须动作;
- 体验维度多:延迟(流式首字)、成本(token 消耗)、安全(拦截率)都要纳入实验监控——一个答案质量涨但延迟翻倍的版本可能净负收益。
AI 特有的实操要点:A/B 的对象常是"提示词/检索策略/模型路由"而非 UI——这些是配置不是代码,实验平台要支持配置分流;用户同一会话内体验要一致(别每轮换版本);离线评测先行(先过评测集再上流量,省流量成本)。
我的纪律:一次只测一个变量;实验周期覆盖一周(含工作日/周末流量差异);成本指标与质量指标同权重看——AI 产品的 A/B 是"质量-成本-延迟"的三维优化,只看一维必翻车。
🏗 系统架构师
AI 应用的 A/B 测试框架与传统一致(分流、指标、显著性),但对象和噪声完全不同,差异和对策:
关键差异:
- 实验对象是"非确定性系统":同一输入不同输出——必须按"用户/会话"分流而不是按"请求"分流(同一用户看到两个版本的交替行为,体验崩坏且数据污染);分流要 sticky(用户固定版本);
- 样本方差大:LLM 输出质量方差远超传统 UI 实验——需要更大样本量与更长时间达到显著性;用方差缩减技巧(CUPED、按用户聚合);
- 指标多层:业务指标(解决率、采纳率)+ 过程指标(延迟、token 成本)+ 质量指标(LLM Judge 评分、格式合规率)——成本是 AI 特有的一级指标,效果好但成本翻倍的版本未必赢;
- 交互效应:Prompt/模型/检索参数是多因子——用多变量实验(同时测 prompt 版本 × 检索 top-k)而不是串行单因子,AI 迭代节奏等不起;
- 语义漂移:效果随时间/用户分布变化——加时间片分析,防 Simpson 悖论。
流程:假设 → 分流(5~10% 起步)→ 运行至显著性(预计算样本量)→ 决策(效果/成本/安全三维)→ 全量 + 回归集固化。
工程底座:请求级 trace(版本标签贯穿)+ 指标管道 + Prompt/模型配置的版本管理(实验配置可回滚)。
我的纪律:AI 的"感觉变好了"是最危险的上线理由——没有 A/B 数据的效果优化一律视为假设。
💻 全栈开发专家
AI 应用的 A/B 测试骨架与传统相同(分流、指标、显著性),但有五个本质差异,每条对应一套工程动作:
1. 非确定性:同一输入两次输出不同。 动作:每个变体内部重复采样(n≥3~5)取均值/多数;指标用期望值比较,方差进显著性计算。
2. 变体不是代码是「配置组合」:prompt 版本、模型、温度、RAG 参数的组合。 动作:实验平台要管理多层配置的笛卡尔组合,实验单元是「配置包 ID」;配置变更要有版本号和 diff 审查——prompt 一行改动的影响不亚于代码,必须同等审计。
3. 指标是「质量型」而非「行为型」:点击率明确,回答质量模糊。 动作:北极星用代理行为指标(任务完成率、转人工率、追问率、用户点踩率),辅助用 LLM-as-Judge 离线评估质量;必须设护栏指标(成本/条、P95 延迟、幻觉拦截率)——新 prompt 质量涨 2% 成本涨 50% 也是失败实验。
4. 样本量与周期:质量差异通常小于行为差异,需要更大样本和更长周期。 动作:功效分析预估样本;按用户分流(不是按请求——同一用户跨变体会污染体验);冷启动期新变体先影子流量跑质量回归再放真人。
5. 评测闭环自动化:线上实验的结果(含 badcase)回流离线评测集,形成「离线筛选→线上小流量→全量」漏斗。
我的流程:离线评测集初筛(淘汰明显差的)→ 5% 流量 AB 两周 → 显著性+护栏双达标 → 全量+回归监控。别跳过离线筛选直接线上试,流量是宝贵资产。