快速结论:该报错发生在 vLLM 使用 FP8 动态量化版 Mistral-Small-3.1(Pixtral)多模态模型处理图片请求时,且仅在启用 torch.compile / CUDA Graph 的情况下出现;优先尝试添加 --enforce-eager 启动参数绕过。
适用环境:vLLM v0.24.0、1x NVIDIA H100 80GB(tensor-parallel-size 1)、模型 RedHatAI/Mistral-Small-3.1-24B-Instruct-2503-FP8-dynamic(compressed-tensors FP8-dynamic),以 PixtralForConditionalGeneration 方式服务(--config-format mistral)。
最快修复方案:在 vLLM 服务启动命令中添加 --enforce-eager,即 `vllm serve RedHatAI/Mistral-Small-3.1-24B-Instruct-2503-FP8-dynamic –tokenizer-mode mistral –config-format mistral –max-model-len 32768 –enforce-eager`。
注意事项:该方案会禁用 torch.compile 和 CUDA Graph,可能带来一定的解码吞吐性能损耗;Issue 中明确这是当前可靠的 workaround,但根本修复仍在跟踪中。
问题场景
用户使用 vLLM 服务 FP8 动态量化版本的 Mistral-Small-3.1(Pixtral)多模态模型,在发起包含图片的 Chat 请求时,API 返回 400 错误;纯文本请求正常。问题仅在启用编译(torch.compile / CUDA Graph)时出现,添加 --enforce-eager 后图片请求恢复正常。对应的 bf16 基础模型在相同参数下无此问题。
报错原文
ValueError: Out of range float values are not JSON compliant: nan
服务端实际表现为:请求在 HTTP 200 路径完成,但生成的 logits/logprobs 中包含 NaN,导致 create_chat_completion 中 json.dumps 序列化失败。
原因分析
可能原因:FP8 动态量化过的多模态路径在 torch.compile / CUDA Graph 编译缓存下存在数值稳定性问题。Issue 中明确指出:纯文本请求在编译模式下正常,只有图片 embedding 进入序列后才产生 NaN,且只有 FP8 checkpoint + 编译模式组合会触发,bf16 基础模型不会。因此推测问题出在编译后 FP8 多模态前向传播路径上,而非单纯的 FP8 量化数值不稳定(量化后的 decoder 在纯文本下是正常的)。具体哪一层(vision_tower、multi_modal_projector 或它们与量化 Linear 的组合)被编译后产生 NaN,尚需进一步定位,Issue 中未给出根因结论。
环境排查
- 确认 vLLM 版本为 v0.24.0(其他版本未验证)。
- 确认显卡为 NVIDIA H100 80GB,tensor-parallel-size 为 1。
- 确认模型为
RedHatAI/Mistral-Small-3.1-24B-Instruct-2503-FP8-dynamic,其中 vision_tower、multi_modal_projector、lm_head 在 ignore 列表中保持 bf16,仅 language-model Linear 层被 FP8 量化。 - 确认服务启动参数中未添加
--enforce-eager(即默认启用了编译模式)。 - 可尝试对比:同参数下使用 bf16 基础模型
mistralai/Mistral-Small-3.1-24B-Instruct-2503是否复现。
解决步骤
- 在 vLLM 服务启动命令中加入
--enforce-eager,完整命令为:vllm serve RedHatAI/Mistral-Small-3.1-24B-Instruct-2503-FP8-dynamic --tokenizer-mode mistral --config-format mistral --max-model-len 32768 --enforce-eager。 - 重新发起包含图片的 Chat 请求,确认不再返回
NaN相关 400 错误。 - 如仍需编译模式带来的性能收益,建议关注 vLLM 上游 issue 更新或提交 PR 修复编译模式下的 FP8 多模态路径问题。
验证方法
使用添加 --enforce-eager 后的服务,向任意包含 image_url 的 Chat 请求发起调用,确认返回 200 且响应内容可正常序列化;同时确认纯文本请求仍保持正常。对比未添加该参数时的服务,相同图片请求应稳定复现 ValueError: Out of range float values are not JSON compliant: nan。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


![[SYCL] Misc. bug: test-backend-ops -b SYCL0 assertion: ggml_sycl_op_concat dst: q4_0](https://www.chat-gpts.plus/wp-content/uploads/2026/08/26936-11981dc2-768x403.jpg)