跳到主要内容

为什么 AI 功能开关不同于普通功能开关

· 阅读需 12 分钟
Tian Pan
Software Engineer

金丝雀部署完美收工:错误率纹丝不动,延迟没有飙升,监控大盘一片绿色。你将新模型全量推送给所有流量——三周后,客服队列里挤满了用户投诉,说 AI "感觉不对劲"、"不再有用了"。

这正是将传统功能开关机制套用到 AI 系统上的核心问题。一个模型可以在"没有崩溃"的情况下悄悄退化:它照常返回 200 状态码,以正常速度生成 token,输出的文本也能通过表面校验——但与此同时,它的幻觉频率在悄悄上升,回答越来越简短或回避,或者在你的用户真正依赖的细微推理模式上悄然退步。你多年来一直监控的遥测指标,从来就不是为了捕捉这类故障而设计的。

传统金丝雀分析建立在一个简单前提之上:功能要么正常,要么不正常。错误就是 5xx 状态码,失败就是超时或崩溃。你把 5% 的流量路由到候选版本,观察错误率和延迟百分位数,如果经过足够多的请求后什么都没炸,就发布上线。这套方法对确定性软件非常奏效,却在概率性系统上严重失灵——在这类系统中,"正确"是一个分布,而不是一个布尔值。

确定性假设的崩塌

传统功能开关假设:给定相同输入,功能行为是固定的。你改变按钮颜色,按钮要么渲染要么不渲染;你上线新的结账流程,要么完成要么报错。如果有随机性,那来自用户行为,而不是功能本身。

LLM 的输出在设计上就是随机的。温度大于零意味着同一个 prompt 每次调用都会产生不同的输出。但即使在温度为零——理论上应该是确定性的——的情况下,研究也表明,由于注意力机制的随机性、硬件层面的浮点数非确定性,以及跨服务副本的基础设施差异,生产环境中的模型输出仍然存在方差。你在预发布环境测试的模型,并不完全等同于你的用户在生产环境中实际体验到的模型,即便你的代码什么都没改。

这立刻带来了一个测量难题。金丝雀分析中的统计显著性,依赖于将方差压缩到足以检测信号的程度。对于二元指标(报错/不报错),这是可行的。但对于连续的、多维的、主观的质量指标,要可靠地检测出有意义的回归,所需的样本量会急剧增大——往往在你已经造成相当损害之后,才能达到统计显著性。

"退化但未崩溃"究竟是什么样子

那些在生产环境中扼杀 AI 产品的故障,看起来不像停机事故。它们更像是摩擦感慢慢积累,直到用户停止使用。

一次模型更新改变了响应长度的分布。偏好简洁回答的用户开始收到长篇大论;需要详细解释的用户开始收到一句话回复。没有人触发错误。点击率略有波动,但在正常的周度方差范围内。问题是不可见的,直到你审视三周后流失的那批用户,才发现他们的会话时长在上线后变短了。

又或者:一次模型更新悄悄改变了系统处理模糊查询的方式。新模型不再追问澄清,而是自行选择一种解读然后径直执行。对无歧义查询的准确率保持不变甚至有所提升。对真实世界中模糊查询长尾的准确率下降了 15%。你的聚合准确率指标持平。那些提问复杂的用户,则在悄悄学会不再信任这个产品。

行业数据为这种模式提供了佐证:超过 91% 的 ML 模型在生产中会随时间退化;2024 年的一项调查显示,75% 的企业观察到了 AI 性能下降,其中超过一半报告了收入影响;MIT 和 RAND 对生成式 AI 试点项目失败率的估计在 80% 到 95% 之间。这些不是部署失败——大多数模型在技术上运行正常。它们是质量失败,而标准监控没能捕捉到。

值得埋点的领先指标

如果错误率和延迟告诉不了你质量退化的信息,你就需要能代理质量的信号。这些信号分为四类。

语义漂移信号追踪模型输出是否在独立于明显错误的情况下发生了性质变化。基于嵌入的漂移检测,通过计算最近输出的嵌入与基线分布之间的余弦相似度来实现。当曾经紧密的语义簇开始扩散,说明某些东西已经改变——即便你暂时说不清楚是什么。种群稳定性指数(PSI)将同样的量化方法应用于特征分布,让你能够用一个数字衡量输入模式偏离训练分布的程度。

幻觉与事实性信号需要更精密的检测方式。2024 年《自然》论文中的语义熵方法,通过测量同一 prompt 多次生成之间的不确定性来检测捏造——高熵意味着模型更不确定,而这与幻觉相关。HaluGate 等 token 级实时监测器,甚至可以在输出到达用户之前就在生成过程中检测到幻觉。对于 RAG 系统,检索验证则核查输出是否有所提供的上下文作为依据。

用户满意度代理是对质量最直接的衡量,但采集最慢。附加在 AI 响应上的 CSAT 调查、点赞/踩信号、编辑率(用户修改 AI 生成内容的频率),以及会话级参与度信号(用户是否继续追问,还是就此停下?),都能告诉你输出是否满足了预期。在专业场景下,AI 生成内容的行业平均采纳率为 44%——这应该是底线,而不是目标。

行为漂移指标衡量模型的性格和风格随时间如何变化。响应长度方差、指令遵从率,以及格式一致性(当被要求时,模型是否还在使用项目符号,还是已经默认改成散文?),都是无需人工评估即可测量的维度。生产环境中的模型已被观察到响应长度有 23% 的方差,指令遵从一致性有 31% 的波动——这些变化,任何延迟监控都不会发现。

为概率性功能定义回滚触发器

AI 功能开关最难的部分,是回滚决策函数。对于传统软件,这是一个阈值:错误率超过 1%,回滚。对于 AI,没有任何单一指标能干净地映射到"这个版本更差"。

最简单的做法是选一个质量代理指标然后设阈值:"如果 CSAT 低于 4.2 分就回滚。"这在两个方向上都会失败:阈值太敏感,就会出现回滚抖动——系统在正常方差下不断在两个版本之间来回切换;阈值太宽松,真正的退化就会在造成足够损害之前一直被忽视。

加载中…
References:Let's stay in touch and Follow me for more thoughts and updates