智谱发文复盘 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%,上下文越长收益越大。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.