发布顺序问题:为什么同时部署模型与基础设施变更会破坏可观测性
· 阅读需 10 分钟
季度开始三周后,生产告警触发了。核心任务的准确率下降了八个百分点。你打开仪表盘,立即注意到同一个发布窗口内落地了三件事:上下文长度从 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 变更、嵌入模型更新、索引重建
每一层都会影响其他层。改变上下文窗口影响内存成本和检索质量。改变模型版本影响模型如何权衡系统指令与用户消息。改变提示词影响模型如何处理检索到的上下文。这些不是独立的旋钮——它们是一个耦合系统。
当你同时调动多个旋钮时,你就失去了读取系统的能力。
