跳转到内容

A postmortem of three recent issues

这是一篇 Anthropic 于 2025-09-17 发布的技术复盘文章,讨论 2025 年 8 月到 9 月初期间三个相互叠加的基础设施问题如何间歇性降低 Claude 的响应质量。文章最重要的结论不是某个单点 bug,而是:模型质量并不只取决于权重和训练,也会被路由、编译器、采样实现和部署配置这些推理基础设施细节显著影响。

  • Anthropic 明确否认了“因需求、时段或负载而主动降低模型质量”的猜测,指出这次质量下降完全来自基础设施 bug。
  • 三个问题相互重叠,导致症状看起来随机且互相矛盾,这也是排查时间较长的核心原因之一。
  • 第一个问题是 context window routing error。从 2025-08-05 开始,部分 Sonnet 4 短上下文请求被错误路由到为即将上线的 1M token context server 配置的服务器上;到 2025-08-31 最严重时,约 16% 的 Sonnet 4 请求受影响。
  • 这个路由问题对 Claude Code 用户影响尤其明显,因为路由具有“sticky”特性;文中提到在该时段内发起请求的 Claude Code 用户中,约 30% 至少有一条消息被错误服务器处理。
  • 第二个问题是 output corruption。2025-08-25 部署到 TPU 服务器的一项错误配置,导致少量请求在生成阶段为明显不合理的 token 分配高概率,例如在英文回答中插入泰文或中文字符,或在代码里产生明显语法错误。
  • 第三个问题是 approximate top-k XLA:TPU miscompilation。用于提升采样效率的 top-k 实现意外触发了 XLA:TPU 编译器中的潜在 bug,导致近似 top-k 在某些配置下返回完全错误的结果,进而影响生成质量。
  • 文章对这个 XLA bug 的解释很细:Anthropic 在 2024 年 12 月曾为 temperature=0 情况下“最高概率 token 被丢掉”的问题加过 workaround;2025-08-26 的采样代码重写移除了旧 workaround,却暴露出更深层的 approximate top-k 编译问题。
  • 由于 exact top-k 的性能代价已经没有过去那么高,Anthropic 最终决定切换到 exact top-k,并在更多操作上统一用 fp32 精度,接受少量效率损失来换模型质量稳定性。
  • 复盘指出检测困难的几个原因:现有 eval 对这种退化不敏感、用户反馈最初像正常噪声、多个 bug 在不同平台和时间点以不同频率出现,以及隐私保护限制了工程师直接查看用户交互的能力。
  • Anthropic 最终提出的改进方向也非常明确:更敏感的 eval、在真实生产系统上连续运行质量评估,以及不牺牲隐私前提下更快调试社区反馈的工具链。

ℹ️ Conflict:

  • 这篇文章提醒我们,“模型质量下降”并不必然意味着模型权重被改差;同一模型也可能因 serving path、硬件平台或编译器实现差异而表现退化。
  • 文中涉及的影响范围、时间点和平台差异都具有强时点性,不能简单外推到 Anthropic 其他时期或其他模型的总体稳定性。