范式团队发现并修复了 vLLM 推理框架在流水线并行模式下因内存整理机制算错 Token 数量导致高并发下模型准确率下降 4.5% 的隐藏 Bug。
📝 详细摘要
本文报道了范式团队在 vLLM 推理框架中发现并修复的一个严重 Bug。该 Bug 隐藏在 vLLM 的内存整理机制(condense)中,仅在流水线并行(PP)模式下触发。当高并发请求触发 condense 操作时,非末尾 GPU 会错误地将当前已处理的 Token 数量当作总数量,导致系统只拷贝了残缺的 Token 并丢弃了剩余部分,甚至可能混入其他请求的 Token。这使得模型读到的 Prompt 不完整,从而产生答非所问的结果。在 256 并发下,Qwen3-8B 模型的 GSM8K 准确率从 0.877 骤降至 0.832。修复方法已通过 PR #41133 合入主分支,用户需更新 gpu_model_runner.py 中的 _update_states 逻辑。文章提醒开发者在高并发场景下不仅要关注吞吐量,还应使用 lm_eval 等工具进行精度测试。
💡 主要观点
- vLLM 在流水线并行模式下存在一个导致 Token 丢失的严重 Bug。 Bug 源于内存整理机制(condense)在 PP 模式下错误计算 Token 数量,非末尾卡将当前处理数误认为总数,导致高并发时只拷贝部分 Token 并丢弃剩余内容。
💬 文章金句
- 范式团队发现,这个 Bug 藏在 vLLM 引擎的内存整理机制(condense)里。
- 在 PP 模式下,非末尾卡在记录 Token 状态时,误把当前算完的数量当成了总数量。
- 模型读到的 Prompt 是断章取义的,回答自然南辕北辙。
- 建议大家在高并发场景下多跑跑 lm_eval 测测精度,别只看吞吐量!
📊 文章信息
AI 初评:85
来源:51CTO技术栈
作者:51CTO技术栈
分类:人工智能
语言:中文
阅读时间:5 分钟
字数:1117
标签: vLLM, 大模型推理, 流水线并行, Bug 修复, 高并发