为什么 AI 功能不能直接全量上
传统功能上线,逻辑是确定的,测试覆盖到位基本就稳了。模型不一样:离线评测集 90 分,线上可能只值 70 分,因为真实用户的问法分布和评测集差很远;而且模型的坏不是崩溃,是「回答质量悄悄变差」,没有异常日志会替你报警。所以 AI 功能发布的铁律是:离线评估通过只是拿到灰度资格,线上小规模真实流量验证过了才敢全量。
上线前的两道闸:离线评估和红队
第一道闸是离线评测集回归:新版本在固定评测集上对比老版本,核心指标(正确率、采纳率、安全率)不能掉,提升要显著。第二道闸是红队测试,专门构造刁钻、诱导、越界的输入去过一遍,这块不能省——模型全量上线后被用户截图传播一次 jailbreak 成功,比十次回答平庸的伤害都大。两道闸都是自动化跑不了的,要留人力预算。
灰度的三种姿势
按成本从低到高:一是内部灰度,先放给全公司员工,要求每人每天用几次并给反馈入口,能挡掉最蠢的问题;二是按用户分桶,用用户 ID hash 分成稳定的桶,先放 1% 再到 5%、20%、全量,注意桶要稳定,同一个用户不能今天新模型明天老模型,体验割裂而且数据没法分析;三是影子模式,新模型和老模型同时跑但只给用户看老模型的结果,新模型的输出只记录用于对比——零风险,适合大版本切换前的最后验证,代价是算力翻倍。OpenAI 和 Anthropic 这类公司换模型时常用的就是「小比例真实流量 + 快速观察窗口」,通常几天内点踩率、重试率没有显著恶化就扩量。
效果回收:指标看板和反馈入口要提前埋
灰度不是放出去就完了,回收机制要在发布前建好。定量侧:按桶对比采纳率、重试率、点踩率、会话完成率、留存,样本量要够(按指标基数算,对话类产品通常单桶几万会话才看得出 2-3 个点的差异),观察期至少一个完整自然周,周末和工作日的使用模式差异很大。定性侧:灰度用户要有顺手的反馈入口,点踩必带分类标签;同时每天抽几十条新模型的会话人工过一遍,数字看不出来的「味道不对」人一眼能看出来。
回滚机制比上线机制更重要
模型回滚必须是一键式的,开关要放在配置层而不是发版层——线上点踩率飙到阈值,值班同学五分钟能切回旧版,而不是走一遍发布流程。PM 要事先和工程约定好三件事:回滚的触发指标和阈值(比如点踩率相对基线上涨 50%)、谁有权拍板回滚(别等到开会)、回滚后的复盘模板(badcase 清单、影响面、是否回归评测集)。没写进文档的回滚预案等于没有预案。
一个容易踩的坑:A/B 被样本污染
对话产品的 A/B 有个特有陷阱:用户会在多轮对话里感知到模型风格变化,A 桶和 B 桶的行为差异不一定来自质量,可能来自风格新鲜感。另外跨会话的学习效应也存在——用户在 A 桶体验变差,可能直接流失,后续数据就看不到了。所以实验分析不只看桶内均值,还要看桶间的留存差异和会话深度分布,必要时拉长观察期到两三周。