← 返回题目列表

Prompt 如何做 A/B 测试?

中等 第 15 / 25 题 更新于 2026/09/18
提示工程A/B测试在线实验Prompt评测

简化版

Prompt A/B 测试要把版本随机分配到可比流量,只改一个主要变量,并预先定义质量、安全、延迟和成本指标。随机化单位应避免同一用户跨版本污染,实验期间固定模型与检索链路;达到样本量后看置信区间和分层结果,而不是边看数据边提前宣布胜出。

详细版

上线前先用冻结评测集淘汰明显差版本,再在线灰度。建立稳定用户或会话哈希分桶,记录 prompt_id、模型、参数、输入切片和输出;主指标可为任务成功率,护栏包括投诉、拒答、格式失败、P95 延迟与 Token 成本。对生成结果可用业务行为、人工盲评或经过校准的 Judge,但不能只看点击率。

样本量由基线、最小可检测提升、显著性和检验功效决定。假设基线成功率 60%,只有提升至少 3 个百分点才值得上线,就围绕该 MDE 估算流量。实验完成后做总体与语言、难度、风险切片;只有主指标改善且护栏不过线才发布,并保留快速回滚。

离线门禁 -> 随机分桶 A/B -> 指标与护栏监控 -> 固定窗口统计 -> 分层复核 -> 发布/回滚

完整版教学

一、A/B 要回答因果问题

线下看到新 Prompt 分数更高,不代表线上用户会更满意;直接先后切换又会混入流量、节假日和模型状态变化。随机实验让两个版本同时面对统计上可比的请求,结果差异才更可能由 Prompt 引起。

前提是除 Prompt 外其他条件尽量固定。若 B 同时换了模型、检索参数和输出解析器,即使胜出也无法知道原因,后续维护困难。必要的多组件升级应采用因子实验或明确把整套方案作为 treatment。

二、随机化单位如何选

按请求随机最省样本,但同一用户可能在一次多轮会话中看到不同风格,造成体验和上下文污染。对话产品通常按 conversation_id 分桶,需要长期一致体验时按 user_id 分桶。企业租户还可能要求 tenant 级隔离。

bucket = hash(experiment_id + stable_unit) mod 10000
A: 0..4999, B: 5000..9999

哈希应稳定且与用户属性无关。机器人流量、内部员工和重复重试要提前定义是否排除,不能在看到结果后选择性清洗。

记忆钩子:随机的是“能互相影响的最小单位”;多轮会话有记忆,就不要把每条消息当独立硬币。

三、指标体系不能只有一个分数

主指标应最接近任务价值,例如问题解决率、结构化抽取准确率或人工偏好。辅助指标解释机制,护栏防止新版本用更长答案换来表面满意度,却让成本和延迟失控。安全违规通常是硬门槛,不能被其他收益抵消。

类型示例决策作用
主指标任务成功率判断是否有业务提升
质量辅助事实性、格式通过率定位提升来源
体验护栏P95 延迟、投诉率防止副作用
成本护栏输入/输出 Token控制单位经济性
安全门槛越权、有害输出超线直接停止

指标定义、统计口径和 MDE 必须在实验前冻结。

四、生成任务怎样获得标签

业务行为信号便宜但有偏,例如用户复制答案不一定代表正确。人工盲评质量高,但要随机隐藏版本、给明确 rubric 并测标注一致性。LLM-as-a-Judge 可扩大规模,但必须先与人工校准,并交换答案顺序检查位置偏置。

可组合漏斗:全量统计格式、延迟和用户行为;随机 5% 用 Judge;其中一小部分人工复核。若 A/B 输出长度不同,Judge 可能偏好长答案,应在 rubric 中强调正确性和相关性,并做长度切片。

五、样本量与提前停止

二项成功率实验的样本量取决于基线 p、想检测的差值 δ、显著性 α 和功效。数量级近似随 p(1-p)/δ² 增长,想检测一半的差值,样本通常约需四倍。低频安全事故则需要更长观察或专门压力测试。

每天盯着 p 值,一旦小于 0.05 就停止,会膨胀假阳性。应预设固定样本/时间窗口,或使用正规的 sequential testing。报告效应量和置信区间,不要只说“显著”。统计显著但仅提升 0.1%,可能不值得额外成本。

六、有哪些常见实验污染

缓存若未把 prompt_version 纳入 key,会让 B 用户拿到 A 的响应;共享会话历史会把早期版本输出带入后续版本;运营活动造成分桶流量组成变化。部署日志必须记录实际渲染后的 Prompt 哈希,防止配置名是 B、内容却仍是 A。

还要处理网络重试和重复请求,否则同一输出被计数多次。模型供应商版本变化会同时影响两组,随机实验仍可抵消大部分影响,但若 rollout 不均匀或 Prompt 与新模型有交互,应分层记录模型版本。

七、结果如何分析与发布

先检查 SRM(样本比例不匹配)、曝光完整性和指标数据质量,再看主指标。随后按预注册切片分析语言、设备、任务和风险,不要在几十个切片里事后挑显著项。异质效果明显时,可只对受益人群发布,但需要新的验证实验。

假设 A 成功率 60.0%,B 为 63.5%,95% 区间差值 [1.2,5.8] 个百分点;B 的 P95 多 80ms、单次成本高 2%,都在护栏内,则可逐步放量。发布仍需 canary 和回滚开关,因为实验流量未覆盖所有长尾。

八、常见误区与追问

  • 误区:离线分数高就不需要在线实验。 真实流量分布和用户行为可能不同,二者解决不同阶段问题。
  • 误区:请求级随机永远最科学。 多轮上下文和用户学习效应会造成版本串扰。
  • 误区:p<0.05 就代表值得上线。 还要看效应量、区间、成本和护栏。
  • 追问:如何测低频安全风险? 结合定向红队集、长期监控和零容忍门槛,不能只靠普通流量 A/B。
  • 追问:能同时测三个 Prompt 吗? 可以做多臂实验,但需调整多重比较并准备更多样本。
  • 追问:如何避免缓存污染? cache key 包含完整 Prompt/版本、模型和关键参数,并隔离实验命名空间。

九、加强记忆

Prompt A/B 可记成“先离线、稳分桶、定指标、够样本、查污染、看护栏”。用冻结集先筛选,按会话或用户稳定随机;预注册主指标、MDE 和安全成本门槛;到固定窗口再分析效应量与切片;确认缓存和版本真实隔离后逐步发布。这样得到的是因果证据,不是一段偶然更好看的线上曲线。