跳转到主要内容

Staging 环境的谎言:为什么预生产阶段对 AI 系统失效了

阅读需 2 分钟Tian PanTian Pan

你的测试环境通过了所有检查。LLM 对每个测试提示词都做出了正确响应。延迟表现良好。质量评分看起来也不错。你发布了。然后,两天后,生产环境开始在你的评估集从未涵盖的一类查询中出现幻觉,你的成本飙升了 3 倍,因为缓存是冷的,而且你的供应商推送的模型更新静默地改变了行为,而你的旧测试套件无法检测到。测试环境显示一切正常,生产环境却给出了截然不同的结果。

这并不是一个可以通过编写更多测试用例来弥补的测试差距。预发布环境对 AI 系统具有结构性的误导,而对传统软件则不然。失败模式是系统性的,解决办法不是更好的测试环境,而是一种不同的架构。

为什么传统测试环境有效(以及为什么 AI 不同)

对于典型的 Web 服务,测试环境的一致性是可以实现的。你运行相同的代码、相同的数据库 Schema、相同的依赖项。如果测试环境通过,生产环境通常也能保持稳定。在输入相同的情况下,系统的行为是确定性的。测试环境可以合理地近似生产环境。

由 LLM 驱动的系统同时在多个层面打破了这一假设。模型的行为取决于供应商的基础设施、缓存状态、流量模式、输入分布和模型版本 —— 而测试环境都无法准确模拟这些因素。你测试的不是一个确定性的函数;你是在从一个分布中采样,而测试环境系统性地偏向于让这个分布看起来比实际情况更好。

测试环境关于 AI 系统的五个结构性谎言

谎言 1:你的延迟和成本在控制范围内。

在生产环境中,提示词缓存(Prompt Caching)可以将输入 Token 成本降低多达 90%,并将延迟降低 80% —— 但前提是缓存是热的。测试环境的流量低且不规律,运行几乎完全依赖冷缓存。一个在测试环境中每次请求花费 0.10 美元的系统,在生产环境中可能只需 0.01 美元,因为用户成千上万次地命中同一个缓存前缀。但如果你的缓存预热策略失效,这种关系就会反转:生产环境的冷启动事件(新部署、缓存剔除、提示词编辑后的缓存键更改)可能会使你的成本飙升 10 倍,延迟增加 5 倍。测试环境永远不会向你展示这两种极端情况。你得到的是一个中间数值,它不对应任何真实的生产状态。

谎言 2:你的评估集涵盖了用户的实际提问。

测试环境运行的是一组精心挑选的测试用例 —— 通常是你团队中某人编写的 50 到 200 个提示词。真实用户表达请求的方式是没人能预料到的。他们使用领域俚语、混合语言、询问复合问题、犯下改变原意的拼写错误,并探究那些事后看来显而易见但在评估列表中并未出现的边缘情况。对生产环境部署的研究发现,传统的发布前测试仅能捕获最终从真实流量中出现的漂移案例的约 25%。你的测试套件并不是在测试长尾场景,它只是在测试你已经知道要测试的内容。

这种分布不匹配会随时间推移而加剧。随着产品的演进,新功能改变了用户的提问方式。具有不同词汇和目标的新用户群体不断涌入。第一季度还算有代表性的评估集,到第三季度就会产生系统性的误导,你的测试通过率依然很高,而生产环境的质量却在悄然下降。

谎言 3:温度为 0 意味着行为可重现。

许多团队为了可重复性在测试环境中将温度(Temperature)设置为 0,或者假设即使在生产环境中,确定性采样也能消除变异性。这两者都不成立。在温度为 0 时,LLM 的输出仍然是非确定性的。GPU 浮点运算并不是严格结合的 —— 批次大小的变化、请求路由的差异以及并行序列处理都会引入不同的舍入误差。研究表明,在温度设置为 0 的情况下,完全相同的提示词也可能出现高达 15% 的准确率波动。测试环境更干净、流量更低,会产生比生产环境更一致的结果,使系统看起来比实际更可靠。

谎言 4:你测试的模型就是你部署的模型。

LLM 供应商会在不发出警告的情况下更新模型。2025 年 2 月,OpenAI 对 GPT-4o 的行为进行了实质性的更改,以至于那些锁定模型 ID 的团队发现他们的输出发生了偏移。2025 年 4 月,OpenAI 回滚了另一个 GPT-4o 更新,该更新曾使模型变得病态地顺从。这些并不是你选择加入的版本升级 —— 它们是供应商应用于共享资源的基础设施级更改。测试环境通常运行在旧快照或单独锁定的版本上,无法捕获这些变化。当更新到达你的测试环境时(如果真的会到达的话),你可能已经将受影响的版本发布给了生产用户。

微调模型加剧了这个问题。即使你的微调权重没有变化,你所针对的微调基座模型也可能在基础设施层面发生漂移。测试环境验证过的模型已不再是生产环境运行的模型。

谎言 5:你的系统能优雅地处理负载。

测试环境无法模拟生产环境的速率限制、重试行为或并发负载下的延迟。LLM API 供应商将容量出售给多个租户 —— 在共享的高峰需求期间,即使你的代码没有任何更改,你的单 Token 延迟也可能飙升。测试环境使用的是专用或低竞争的基础设施;在真实负载下激活的重试逻辑、后备路径(Fallback paths)和队列延迟从未得到锻炼。你只有在某个周二凌晨 2 点主模型被限流时,才会发现你的后备模型生成的输出系统性地更差。

仅在生产规模下出现的故障案例

会员专享

余下内容仅对会员开放。

会员可读完整内容 —— 每一个公开发布的观点背后,那些框架、决策与推理的全貌。

  • 完整文章,包含未公开存档的部分
  • 可落地的工作框架,附带权衡与决策依据
  • 新文章抢先看,先于公开发布

随时取消 · 一次订阅,畅读全部

参考资料

保持联系,关注我获取更多内容

阅读需 10 分钟

生产分布差距:为什么内部测试人员找不到用户遇到的Bug

为什么 AI 系统通过了内部测试却在生产中崩溃——开发/预发布环境工作负载与真实用户流量之间的系统性错配,以及能够弥合这一差距的监控模式。

insider
ai-engineering
阅读需 8 分钟

模型弃用就绪:在 90 天倒计时之前审计你的行为依赖

当一个模型被弃用时,最难的部分不是更新 API 调用,而是发现系统所假设的所有隐形行为契约。以下是在时间耗尽前审计这些契约的方法。

insider
llm
阅读需 9 分钟

你的评测套件是一座博物馆:生产故障应当成为明天的测试用例

静态评测框架会随着产品的增长而过时——它们只能测试作者预设的场景。以生产为驱动的反馈闭环能够自动将真实故障转化为永久性回归测试,使评测套件始终与实际用户行为保持一致。

insider
llm
阅读需 9 分钟

提示词即配置:像对待生产基础架构一样管理 AI 设置

大多数团队会在生产环境中追踪每一个环境变量,但却听任提示词、采样参数和工具模式(tool schemas)在没有版本控制的情况下发生偏移。本文将探讨为什么 AI 配置比环境变量更脆弱,以及如何以同样的严谨性来管理它们。

insider
llm
阅读需 9 分钟

评估与生产环境的差距:检测生产级 LLM 中的行为模式切换

生产环境中的 LLM 在评估上下文中的表现通常与实际流量中的表现不同 —— 而大多数团队从未察觉到这一点。本文将介绍如何在差异侵蚀系统信任之前将其识别出来。

insider
llm