快速结论:该报错发生在 vLLM 通过 load_weights() 多次增量加载 GLM-5.x FP8 检查点时,稀疏索引器 wk_weights_proj 参数的 FP8 权重对(wk.weight 和 wk.weight_scale_inv)因跨调用丢失而无法正确配对,导致参数未初始化(含 NaN/0 值),进而使稀疏 MLA 生成结果损坏。优先检查是否使用了增量加载逻辑(如 S3/RunAI streaming),并应用 PR #46168 中的修复。
问题场景
用户在使用 vLLM 加载 GLM-5.x FP8 检查点(例如 GLM-5.2-FP8)时,通过流式加载器(如 S3/RunAI streaming)或任何会多次调用 DeepseekV2Model.load_weights() 的加载路径(包括 FastTensor 路径,如 B200/B300 设备)触发问题。具体表现为:模型推理时生成结果异常,部分层(如 layers 0,1)的索引器 KV 权重出现 NaN 或全零值,而密集 MLA 路径表现正常。
报错原文
# 非直接报错,而是运行时现象:稀疏 MLA 生成结果损坏
# 权重值异常:NaN 或 0(而非期望的 FP8 去量化值)
# 可通过检查 model.layers.X.self_attn.indexer.wk_weights_proj.weight 确认非有限值
原因分析
vLLM 在加载 GLM-5.x FP8 检查点时,常需要将 indexer.wk.weight(FP8 权重)和 indexer.wk.weight_scale_inv(缩放因子)在 _try_load_fp8_indexer_wk() 函数中配对后,再反量化写入 wk_weights_proj.weight。然而,当 load_weights() 被多次调用(例如权重和缩放因子在不同批次中到达),原先的配对信息只保存在每次调用的局部字典 _pending_wk_fp8 中,该字典在函数返回时被丢弃。因此第二个调用无法看到第一个调用缓存的权重,导致配对永远无法完成,相关参数保持未初始化状态(含 NaN 或零)。
环境排查
- vLLM 版本:0.23.0(已验证),其他版本可能也有此问题。
- 检查点格式:GLM-5.x FP8,特别是 GLM-5.2-FP8。
- 加载方式:确认是否使用了增量/流式加载,如 S3 或 RunAI streaming。
- 硬件:已在 B200/B300(FastTensor 路径)上复现。
- 依赖:无需特定 Python/CUDA 版本,但建议使用最新 vLLM。
解决步骤
- 定位 vLLM 源码中
DeepseekV2Model.load_weights()函数(通常位于vllm/model_executor/models/deepseek_v2.py或类似路径)。 - 找到
_pending_wk_fp8局部变量的声明位置(可能在_try_load_fp8_indexer_wk()调用前)。 - 将局部字典改为模型实例的持久化属性:替换
_pending_wk_fp8 = {}为:_pending_wk_fp8 = getattr(self, "_pending_indexer_wk_fp8", None) if _pending_wk_fp8 is None: _pending_wk_fp8 = {} self._pending_indexer_wk_fp8 = _pending_wk_fp8 - 确保
_try_load_fp8_indexer_wk()在处理完配对后正确从该持久化字典中移除条目(原有逻辑已包含删除操作,无需修改)。 - 重新编译或重启 vLLM 实例,加载检查点。
替代方案:直接合并官方已提交的修复 PR #46168,该 PR 包含了上述更改。可优先尝试此方案。
验证方法
加载检查点后,通过以下方式确认问题已解决:(1)检查任意层的 model.layers.X.self_attn.indexer.wk_weights_proj.weight 是否为有限浮点值(无 NaN 或非法值);(2)在增量加载完成后检查持久化字典 model._pending_indexer_wk_fp8 是否为空字典;(3)运行一个需要稀疏 MLA 的推理任务,确认生成结果符合预期(例如 GLM-5.2-FP8 的测试样本)。
参考来源
vllm-project/vllm #46078: Preserve FP8 indexer WK pairs across incremental load_weights calls
vllm-project/vllm PR #46168: Proposed fix
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


