← 返回题目列表

大模型应用如何做 A/B 测试?

中等 第 24 / 25 题 更新于 2026/09/18
LLMOpsAI技术大模型面试题

简化版

大模型 A/B 测试要比较完整版本组合,而不是只写“模型 A 对模型 B”。先定义一个主要业务指标,再设质量、安全、延迟和成本护栏;按用户或会话稳定随机分流,避免同一用户来回切版本造成污染。

实验前做功效和样本量估算,运行中保留曝光日志,结束后按 Intent-to-Treat 分析,并检查分流比例、租户/长度分层与多重检验。安全违规等红线指标不等待统计显著,一旦超过阈值立即停止。

详细版

实验单位通常选用户或会话:用户级适合长期体验,会话级避免上下文跨版本;请求级虽然样本多,但容易产生串扰。候选与控制应固定模型、Prompt、索引、策略等 Manifest。

eligible traffic -> stable hash(unit_id, experiment_id)
                 -> control / treatment
                 -> exposure log -> outcome join

主要指标可为任务成功率、转化或问题解决率;护栏包括事实错误、安全违规、P95/P99、每成功任务成本、人工转接和投诉。先跑 A/A 验证分流与指标,再小流量 A/B;未达到预设样本量前不因短期波动反复看结果。

完整版教学

1. 先写清实验假设

假设应包含变更、目标群体、预期方向和最小有意义提升。例如“新检索策略使中文知识问答解决率提升至少 2%,且 P95 与安全违规不恶化”。

没有预注册假设,团队容易在几十个指标中挑出偶然显著结果。

2. 实验版本必须不可变

控制组和实验组分别绑定完整 Manifest:模型、Prompt、索引、工具和安全策略。实验中途静默更新其中一项,会使结果无法解释。

紧急安全修复需同步应用两组并记录;若只改一组,通常应重启实验或分段分析。

3. 随机化单位如何选择

单位优点风险
请求样本增长快同一用户体验混杂
会话上下文一致跨会话影响未控制
用户长期体验稳定样本相关、周期更长
租户防组织内串扰可用单位数量少

选择最小但不会互相影响的单位。协作产品常需租户级,聊天助手多用用户或会话级。

4. 稳定分流如何实现

对 experiment_id 与稳定单位 ID 做哈希,映射到桶;服务端记录 eligibility、assignment 和实际 exposure。用户被分配但未真正看到功能时,要区分分配与曝光。

租户、区域和设备等关键维度可分层随机,减少基线不平衡。不能让客户端自行选择组别。

5. 为什么先跑 A/A

A/A 两组使用同一版本,用来验证分流比例、日志连接、指标方差和告警。若同版本也持续出现显著差异,A/B 基础设施不可信。

同时检查 Sample Ratio Mismatch:实际分组比例偏离设计,可能是路由、缓存或过滤逻辑有 Bug。

6. 指标体系如何设计

只选一个或少数主要指标决定实验成败;诊断指标解释原因;护栏保护不能牺牲的边界。

层次示例
主要指标任务解决率、转化率
诊断指标引用点击、工具成功、输出长度
护栏指标安全违规、事实错误、P99、成本

模型“点赞率”可能受表达风格影响,最好同时有任务完成等客观指标。

7. 样本量为什么要事前估算

给定基线、最小可检测效应、显著性水平和统计功效,估算需要的独立实验单位。指标方差越大、希望发现的提升越小,需要样本越多。

standard_error ∝ 1 / sqrt(independent_sample_size)

实验运行时间还应覆盖工作日/周末和业务周期,避免一天流量恰好偏向某类请求。

8. LLM 输出随机性怎么处理

线上采样随机并不会破坏随机对照,只会增加方差。可在离线配对评测中固定 Seed 或对同一输入多次采样,理解输出波动。

不要为实验强行改成生产不会使用的 temperature=0,否则外部有效性不足。记录实际解码配置以便分层分析。

9. 缓存会造成什么污染

若控制组和实验组共享不含版本的响应缓存,实验组可能返回控制组结果。缓存键必须包含实验版本,或实验期间隔离命名空间。

前缀缓存若计算语义相同可共享,但必须确认模型、Prompt 与权限完全兼容;不能为了省成本破坏实验处理差异。

10. 如何处理早停与反复查看

每天查看 P 值并在第一次显著时停止,会抬高假阳性。应使用预定样本量,或采用序贯检验等支持持续观察的方法。

安全与严重故障护栏例外:超过绝对阈值立即停止,不需要等待统计显著性。这是风险控制,不是效果结论。

11. Intent-to-Treat 为什么重要

ITT 按最初随机分配分析,即使部分请求 Fallback 或功能未触发,也保留随机化带来的可比性。只分析“成功使用新功能”的人会引入选择偏差。

可额外报告实际曝光分析解释机制,但不能用它替代主 ITT 结论。

12. 分层和异质性怎样分析

总体提升可能掩盖长上下文、中文或高风险任务退化。按预先定义的语言、任务、长度和租户等级看异质性。

切片越多,偶然显著越多,需要控制多重检验并把探索性发现标注为待复验,不能事后挑最漂亮人群。

13. 如何做决策

结果需同时满足主要指标、护栏、成本和置信区间。统计显著但提升小于业务最小价值,未必值得增加复杂度。

结论可以是上线、否决、延长或针对特定人群上线。保存实验代码、Manifest、样本定义和分析结果,便于复核。

A/B 测试的价值不是为候选版本寻找一个显著指标,而是用预先约定的证据判断它是否值得承担上线风险。

14. 常见误区与追问

  • 误区:随机分请求总是最好。 会话和用户串扰会污染体验。
  • 误区:只看平均点赞率。 风格偏好不等于任务完成或事实正确。
  • 误区:结果一显著就停止。 反复窥视会提高假阳性。
  • 误区:实验中可以继续修改 Prompt。 版本变化使处理组含义不再固定。
  • 误区:总体指标提升即可。 安全、P99 或关键切片可能已经退化。
  • 追问:为何记录曝光? 分配不等于用户真正经过候选路径。
  • 追问:缓存如何处理? 响应缓存按实验版本隔离,避免跨组污染。

15. 加强记忆

  1. 先定假设:人群、指标、最小提升和护栏。
  2. 再固版本:比较完整 Manifest。
  3. 再选单位:请求、会话、用户或租户,避免串扰。
  4. 再验系统:A/A 与分流比例检查。
  5. 再定统计:样本量、周期、早停规则。
  6. 再做分析:ITT 为主,预设切片与多重检验。
  7. 最后做决策:效果、风险、延迟和成本共同达标。