跳转到主要内容

发布顺序问题:为什么同时部署模型与基础设施变更会破坏可观测性

阅读需 1 分钟Tian PanTian Pan

季度开始三周后,生产告警触发了。核心任务的准确率下降了八个百分点。你打开仪表盘,立即注意到同一个发布窗口内落地了三件事:上下文长度从 8k 增加到 32k token、模型版本从 gpt-4-turbo-preview 升级到 gpt-4o,以及基础设施团队为提升吞吐量推送的批处理大小变更。三项变更中没有一项单独被认为是高风险的。合在一起,它们制造了一个无法干净解决的调试难题。

欢迎来到发布顺序问题。

确定哪项变更导致了回归本应是直接的——你只需逐一回滚,然后测量。但这些变更并不独立。模型版本影响系统处理更大上下文窗口的方式。批处理大小影响延迟,延迟影响哪些用户会遇到超时,超时影响你的准确率指标。你在一个只有一个数据点的实验中纠缠了三个变量。你的事后复盘将像往常一样以"多种因素共同作用"这句话收尾。

这并非边缘情况。对大规模 LLM 生产部署的分析表明,这是导致无法归因事故的最常见原因之一。而且后果会叠加:没有归因,你无法修复根本原因,只能回滚所有内容重新开始,在此过程中丢失了与问题变更捆绑在一起的合法改进。

为什么 AI 部署的活动部件比你想象的更多

在传统软件中,一次发布捆绑了应用代码。调试回归意味着阅读 diff。爆炸半径只有一层。

在重度 AI 系统中,单次"发布"往往分散在多个独立层中:

  • 基础设施配置:批处理大小、并发限制、超时阈值、缓存策略、GPU 分配
  • 模型选择:提供商、版本、量化级别(全精度 vs. INT8 vs. INT4)
  • 模型参数:temperature、top-p、最大 token 数、presence/frequency penalty
  • 上下文配置:上下文窗口长度、检索块大小、检索文档数量
  • 提示词和系统指令:措辞、结构、角色设定、few-shot 示例
  • 工具和检索定义:schema 变更、嵌入模型更新、索引重建

每一层都会影响其他层。改变上下文窗口影响内存成本和检索质量。改变模型版本影响模型如何权衡系统指令与用户消息。改变提示词影响模型如何处理检索到的上下文。这些不是独立的旋钮——它们是一个耦合系统。

当你同时调动多个旋钮时,你就失去了读取系统的能力。

归因崩溃

这种故障模式在传统部署工程中有个名字:大爆炸发布 (big bang release)。你积累变更,将它们打包发布以减少部署开销,然后在出现问题且无法判断原因时付出代价。

AI 系统遭受的是这种问题的放大版,因为信号本身就更弱。LLM 是概率性的。输出质量在不同运行中会有显著差异。你跟踪的指标(准确率分数、用户评分、错误率)有噪声下限,可能在数天内掩盖小幅回归。等到回归大到足以触发告警时,你可能已经在问题发布上叠加了两三个更多的发布窗口。

一个具体例子:调试生产事故的团队经常发现自己在问——回归是由上周的提示词调整、用户查询分布的渐进偏移、模型提供商的细微行为变化,还是多个组件之间的交互引起的?没有干净的顺序,根因分析就变成了有依据的猜测。相同的事故会反复出现。

回归归因问题不仅仅是工程上的不便。它决定了你的系统是随时间改善还是震荡。能够隔离原因的团队会持续交付改进。不能的团队则花时间不断回滚和再回滚相同的变更。

"同时"在实践中真正意味着什么

大多数团队并不是故意将变更打包在一起的。顺序问题源于三种结构性模式:

独立团队,共享发布窗口。 你的基础设施团队有自己的迭代节奏,ML 团队有自己的,应用团队有自己的。所有人都向同一个部署流水线发布,而发布节奏制造了人为的捆绑。基础设施团队的上下文窗口扩大和 ML 团队的模型版本升级落在同一个周二部署中,并非因为有人决定将它们捆绑——只是恰好发生了。

看似独立的隐式依赖。 模型版本升级通常需要基础设施变更(不同的 API 端点、不同的 token 限制、影响批处理大小决策的不同定价层)。这些会一起发布,因为它们在逻辑上是耦合的。但它们仍然应该顺序化:先基础设施,再模型,每步都进行测量。

快速发布的压力。 当更好的模型版本可用且工程团队想要获取改进时,同时也更新上下文窗口并修复一些提示词问题的动力就会产生。这种逻辑感觉很高效。实际上不是——这是在用部署速度换取调试速度,而调试速度是凌晨两点出问题时你需要的那个。

顺序化纪律

会员专享

余下内容仅对会员开放。

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

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

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

参考资料

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

阅读需 10 分钟

LLM 模型路由是伪装成成本优化的市场细分

将 60% 的 LLM 流量路由到更便宜的模型不仅改变了成本曲线,还悄然将你的 AI 功能拆分为两个产品。聚合准确率指标平均化了受损部分的表现,两种失败模式在 Bug 报告中混为一谈,而客户在没有任何发布说明的情况下体验着两个截然不同的助手。

insider
llm
阅读需 10 分钟

AI 事故复盘:当「模型导致的」成为根本原因

当故障具有随机性时,经典的五问分析法就会失效。本文介绍如何为 AI 事故撰写有价值的事后分析报告、在推理阶段应捕获哪些遥测数据,以及如何构建不止于「加强监控」的运行手册。

insider
ai-engineering
阅读需 10 分钟

多轮对话会话状态坍缩问题

为什么单轮 LLM 故障很容易被发现,而多轮会话状态在 10 轮以上后会悄悄损坏 —— 以及防止 “AI 忘了我是谁” 这种失效模式的检查点、压缩和监控模式。

insider
ai-engineering
阅读需 9 分钟

FinOps 鸿沟:为什么没有人批准你那 4 万美元的 AI 账单

模型支出通过你的变更管理流程从未审查的代码路径进入生产环境。本文将探讨为什么 Token 成本在审批中是不可见的,以及弥补这一鸿沟的归因、成本分摊(Showback)和支出闸门(Spend-gate)等原语。

insider
finops
阅读需 10 分钟

被反向代理剥离的 SSE Keep-Alive,以及你支付了两次费用的 Prompt

LLM 流式响应看起来像是从模型到用户的通畅管道 —— 直到一次 35 秒的工具调用导致反向代理断开连接,你的客户端针对无状态 API 重试整个 Prompt,最终用户的账单为同一个响应支付了两次费用。

insider
ai-engineering