大模型应用的 A/B 测试:更换模型和提示词时如何科学验证效果
更换模型、修改提示词、调整检索策略之后,离线评测分数提升了,是否就可以放心上线?不一定。离线评测集再完善,也只是真实用户行为的近似;只有在真实流量上进行对照实验,才能确认修改是否真正改善了用户体验和业务结果。 A/B 测试是互联网产品成熟的方法论,应用到大模型产品时,需要考虑一些特殊之处。
为什么需要线上实验
- 评测集覆盖有限:真实用户的问题比评测集更多样,会出现评测集中没有的情况;
- 评测标准与用户感受存在差距:评测认为更“准确”的回答,用户可能觉得太长、太生硬;
- 业务指标难以离线衡量:转化率、留存、问题解决率等需要在真实场景中观察;
- 系统性影响:新方案可能影响延迟和成本,进而影响用户行为。
离线评测与线上实验的配合
两者不是替代关系,而是先后衔接的两道关卡:
- 离线评测作为准入门槛:新方案必须在评测集上不低于现有方案,特别是不能在关键类别上明显退化,参见如何构建评测集;
- 小流量灰度验证:先对很小比例的流量开放,确认没有严重问题,例如报错、明显的质量下降或安全问题;
- 正式 A/B 测试:在足够的流量上运行实验,比较核心指标;
- 全量发布与持续监控:实验结论正向后全量上线,并持续监控指标变化,参见大模型应用上线后的监控。
选择合适的指标
核心指标
与产品目标直接相关的指标,在实验开始前确定,不要事后挑选对自己有利的指标:
- 客服场景:问题解决率、转人工率;
- 写作助手:生成内容的采纳率、编辑幅度;
- 搜索问答:用户满意度、后续点击行为;
- 电商导购:转化率、加购率。
护栏指标
确保新方案没有在其他方面造成损害:
- 响应延迟;
- 单次请求成本;
- 安全事件和投诉数量;
- 错误率。
诊断指标
帮助理解结果的原因,例如回答平均长度、引用数量、重新生成率。
大模型实验的特殊考虑
输出随机性
大模型的输出本身具有随机性,这增加了指标的波动。需要更大的样本量才能得到可靠的结论。
按用户分组而非按请求分组
如果同一用户在不同请求中随机看到不同版本,体验会不一致,也可能相互干扰。通常应该按用户进行分组,同一用户在实验期间始终使用同一版本。
新奇效应
用户可能因为新版本的回答风格新鲜而短期内更加活跃,但这种效果可能随时间消退。实验需要持续足够长的时间。
长期影响
一些影响需要较长时间才能显现,例如回答准确性对用户信任和留存的影响。可以在实验结束后继续追踪关键用户群体。
成本差异
新方案可能效果更好但成本更高,需要综合评估收益是否值得额外的成本,参见大模型 API 成本优化。
样本量与实验时长
- 在实验开始前,根据核心指标的基线水平和希望检测到的最小提升幅度,估算所需的样本量;
- 实验至少覆盖一个完整的业务周期,例如一周,以消除工作日和周末的差异;
- 不要在实验过程中频繁查看结果并在看到显著差异时立即停止,这会大大增加误判的概率。
常见陷阱
- 同时修改多个变量:同时更换模型和提示词,无法判断是哪个变化带来的效果;
- 事后挑选指标:实验结束后从众多指标中挑选显著的报告,结论不可靠;
- 忽视分组的差异:总体指标提升,但某个重要用户群体的指标下降;
- 样本量不足就下结论:小样本下的差异很可能是随机波动;
- 忽视护栏指标:核心指标提升,但延迟和成本大幅增加。
无法进行 A/B 测试时
对于流量较小的产品或企业内部工具,可能难以进行统计意义上的 A/B 测试。可以采用:
- 交替测试:同一用户的不同请求交替使用两个版本,收集偏好反馈;
- 并排比较:同时展示两个版本的回答,让用户选择更好的一个;
- 专家评审:邀请业务专家对两个版本的真实输出进行盲评;
- 前后对比:在条件允许时,比较上线前后相同时段的指标,但需注意其他因素的干扰。
小结
大模型应用的 A/B 测试是离线评测之后的关键验证环节。先用离线评测把关,再通过小流量灰度和正式实验验证核心指标和护栏指标。针对输出随机性、用户一致性、新奇效应和成本差异等特殊问题做好实验设计,避免同时修改多个变量和事后挑选指标等常见陷阱,才能得出可靠的结论。实验过程中的提示词管理可参考提示词工程化。