智谱振り返りGLM-5「文字化け問題」:1日あたり数億回のCoding Agent呼び出し、2つの競合バグがKVキャッシュに隠れている

据 动察 Beating 监测,智谱发文复盘 GLM-5 系列模型在 Coding Agent 场景下出现乱码、复读和生僻字的问题。
3 月起陆续有用户反馈,异常只在高并发、长上下文(平均超 70K token)的 Coding Agent 任务中触发,标准推理环境下无法复现。
智谱称其推理系统每天承受数亿次 Coding Agent 调用。

经数周排查,团队定位到两个相互独立的底层竞态 bug。
第一个出在 PD 分离架构(把预填充和解码拆到不同节点的部署方式):解码侧超时中止请求后回收了 KV Cache(缓存已计算的注意力状态,避免重复计算),但预填充侧的 RDMA 写入还没结束,新请求被分配到同一块显存,旧数据覆盖了新数据。
修复方法是在回收前加显式同步,确认写入完成才释放。上线后异常率从万分之十几降至万分之三以下。

第二个 bug 出在 HiCache(多级 KV Cache):从 CPU 内存异步换入缓存时,加载和计算两条流水线之间缺少同步点,计算侧可能在数据尚未加载完毕时就开始读取。
修复后该类异常完全消失,补丁已提交 SGLang 社区(PR #22811)。

排查过程中还有一个意外发现:投机采样(先用小模型猜 token 再由大模型验证的加速技术)的接受率指标可以当异常检测信号。
乱码时草稿 token 几乎全被拒绝,复读时接受率异常偏高。
团队据此做了在线监控:触发阈值就自动中止生成并重试。

在修完 bug 之后,团队还针对瓶颈做了一个优化:LayerSplit KV Cache 分层存储,每张 GPU 只存部分层的 KV Cache 而非全量,通过广播协同计算。
在 90% 缓存命中率下,请求长度从 40K 到 120K 区间,吞吐提升 10% 到 132%,上下文越长收益越大。

原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • コメント
  • リポスト
  • 共有
コメント
コメントを追加
コメントを追加
コメントなし
  • ピン