千分之一概率乱码:vLLM 两个 Mamba 缓存 bug 的排查实录
AI Engineer · youtube · 2026-09-20
AI21 工程师 Asaf Gardin 与 Yuval Belfer 在 AI Engineer 演讲中复盘了两个隐藏在 vLLM 中的 bug,根源都在 Mamba 状态缓存。
案例一:千分之一概率的乱码输出
- 仅在 vLLM、仅在高负载、仅在使用 Jamba(attention 与 Mamba 混合层)时出现:无崩溃、无警告、置信度高。
- 无法用提示词复现,于是「饿死」它:把 GPU 显存利用率从 90% 降到 20%、temperature 设 0,第 8854 个请求必现乱码。
- 用 logprob 对比纯参考实现排查,先误判为 prefill kernel 问题(排除)。
- 真正原因:forward pass 内部没有请求身份,他们把 request ID 穿透传入 forward context 并断点定位,发现调度器在 prefill 之前先跑了 decode。attention 无碍因为它先写 KV 再读,而 Mamba 先读状态,导致新请求在上一个请求的状态上计算。
案例二:看似 RL 训练不稳定的 logprob 尖峰
- 每 12 步出现一次 logprob 尖峰,且发生在权重更新之前。
- 把每提示 rollout 从 8 提到 128 后尖峰移到第 1 步、降显存则消失——拉错了杠杆。
- 真因:一个 32 位索引在超过 40 亿后回绕,修复只需把类型改成 sizet。
结论:两个 bug 同根——Mamba 状态缓存、均被内存压力触发、均靠 logprob 取证发现。有状态推理不会大声失败,而是自信地撒谎。
「编程与Agent」频道最新
- 从装 brew 到裸机自配:AI Agent 环境搭建已彻底变化 — vivekhaldar · 2026-09-20
- DiffusionGemma 被改造成本地 System One 快速决策模型,接入 vLLM — solyarisoftware · 2026-09-20
- Devin 新模型 SWE 2 免费无限用,自称基于 Kimi K3 后训练 — silasalberti · 2026-09-20
- 开发者用 Claude 审查 200 个图像聚类,揪出 3 个坏簇 — jamievurnilla · 2026-09-20
- 用语义替代正则:开发者开源「按含义搜索」的 semgrep,跨语言毫秒级匹配 — udmrzn · 2026-09-20
- 开发者用 Claude Agent 盯盘,一次任务成本仅 0.003 美元 — draginol · 2026-09-20