
AttributeError: ‘Qwen3MoeForEmbedding’ object has no attribute ‘logits_processor’
快速结论:该报错发生在 vLLM 中使用 --convert embed 参数启动推理,且模型为 Qwen3MoE 架构时。优先排查是否使用了旧版的 NVIDIA NGC vLLM 容器(如 nvcr.io/nvidia/vllm:26.01),建议升级到最新版本或直接从上游主分支安装。
问题场景
用户在 NVIDIA GB10(ARM 架构)上运行 vLLM,使用 --convert embed 启动 Qwen3MoE 模型进行嵌入(embedding)推理时触发此错误。用户环境为 nvcr.io/nvidia/vllm:26.01 容器。
报错原文
AttributeError: 'Qwen3MoeForEmbedding' object has no attribute 'logits_processor'
原因分析
此错误并非 vLLM 的上游代码问题。上游主分支(main)中,_create_pooling_model_cls 函数会将 logits_processor 和 lm_head 替换为 StageMissingLayer 桩代码(stub),而不是直接删除。同时,V1 引擎(VLLM_USE_V1=1)中,compute_logits 调用会检查 is_pooling_model,因此嵌入模型不应进入该逻辑。
报错特指用户使用的 nvcr.io/nvidia/vllm:26.01 NGC 容器版本。此容器可能存在与上游代码不同步的修改或组件缺失。
环境排查
- vLLM 版本(从包管理或 Git 提交哈希确认)
- 是否为 NGC 容器(如
nvcr.io/nvidia/vllm:26.01) - Python 版本(用户环境为 3.12.3)
- CUDA 版本(用户环境为 13.1)
- PyTorch 版本(用户环境为 2.10.0a0)
- 使用的引擎模式(如是否设置
VLLM_USE_V1=1)
解决步骤
- 可优先尝试:从 vLLM 上游主分支(main)直接安装,而不是使用 NGC 容器。上游代码在
58b2012aa提交中已验证--convert embed可正常工作。 - 使用最新版本的 NGC vLLM 容器(如果有更新的版本可用)。如果问题仍存在,建议向上游(NGC 支持方)提交错误报告。
- 如果无法立即升级,可尝试强制启用 V1 引擎:设置环境变量
VLLM_USE_V1=1。但请注意:在用户测试中,这绕过了AttributeError,却触发了新的AssertionError: pooler_config is not None(上游主分支不存在此问题,仅出现在 NGC 容器中)。
验证方法
在更新到上游主分支或新容器后,重新使用 --convert embed 参数启动 Qwen3MoE 模型。若嵌入推理能够正常执行并返回嵌入向量,且不再抛出 logits_processor 相关错误,则问题已解决。

![[RFC]: Opt-in Media URL Cache for `MediaConnector`](https://www.chat-gpts.plus/wp-content/uploads/2026/07/37075-315181f6-768x403.jpg)

![[RFC]: Hidden States Extraction](https://www.chat-gpts.plus/wp-content/uploads/2026/07/33118-296a083d-768x403.jpg)