大模型应用的灰度发布和 AB 测试怎么做?
面试怎么回答
发布前先在回归集上和线上版本对比,完成率、准确率、工具调用成功率不能下降,同时看成本和延迟。然后做影子测试,复制真实流量给新版本,只记录不返回,对比新旧回答、检查报错和格式问题。再按用户维度灰度,从 1% 逐步放量,每档覆盖不同时段,设置错误率、超时率、负反馈率的自动回滚条件。A/B 指标看点赞点踩、追问率、重新生成率、任务完成,加上抽样质量评估、延迟和每次成功任务的成本;反馈数据稀疏,要保证样本量。每个请求记录模型、提示词和检索配置版本,切换和回滚都通过配置完成。
先把这段讲顺;面试官追问时,再展开下面的原理和细节。
详细讲解
换了一个更便宜的模型,离线评测分数差不多,直接全量上线,结果用户投诉增加了。大模型应用的发布和普通功能不一样:效果有随机性、离线评测覆盖不全、问题往往在长尾。面试官问这题,想看你有没有一套稳妥的上线方法。
发布前:离线评测是门槛
- 新版本(模型、提示词、检索策略)先在回归集上和线上版本对比;
- 核心指标不能下降:任务完成率、准确率、工具调用成功率、拒答率;
- 同时看成本和延迟的变化。
影子测试
把线上真实流量复制一份给新版本,新版本的结果不返回给用户,只记录下来:
- 用自动评判对比新旧版本的回答;
- 检查新版本在真实问题上有没有报错、超时、格式错误;
- 优点是零用户风险,缺点是看不到用户真实反馈,有副作用的工具调用不能在影子里执行。
灰度发布
- 按用户或租户分流,比如 1% → 5% → 20% → 50% → 100%;
- 按用户而不是按请求分流,同一个用户的体验保持一致,也方便分析;
- 每一档观察足够长时间,覆盖不同时段和问题类型;
- 设置自动回滚条件:错误率、超时率、负反馈率超过阈值就回滚。
A/B 测试看什么指标
- 用户行为:点赞点踩、追问率(追问多可能说明没答好)、重新生成率、会话放弃率、任务完成(比如报表是否被导出、建议是否被采纳);
- 质量:抽样自动评判和人工评估;
- 系统:延迟、错误率;
- 成本:每次成功任务的成本。
注意:大模型应用的用户反馈数据稀疏,点赞点踩的比例很低,需要足够的样本量和时间,不要看了一天的数据就下结论。
版本管理
- 每个请求记录使用的模型版本、提示词版本、检索配置版本,方便事后分析;
- 配置化切换,回滚只需改配置,不需要重新发布代码。