AttributeError: ‘Qwen3MoeForEmbedding’ object has no attribute ‘logits_processor’

用户在 NVIDIA GB10(ARM 架构)上运行 vLLM,使用 --convert embed 启动 Qwen3MoE 模型进行嵌入(embedding)推理时触发此错误。用户环境为 nvcr.io/nvidia/vllm:26.01 容器。

AttributeError: 'Qwen3MoeForEmbedding' object has no attribute 'logits_processor'

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_processorlm_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

解决步骤

  1. 可优先尝试:从 vLLM 上游主分支(main)直接安装,而不是使用 NGC 容器。上游代码在 58b2012aa 提交中已验证 --convert embed 可正常工作。
  2. 使用最新版本的 NGC vLLM 容器(如果有更新的版本可用)。如果问题仍存在,建议向上游(NGC 支持方)提交错误报告。
  3. 如果无法立即升级,可尝试强制启用 V1 引擎:设置环境变量 VLLM_USE_V1=1。但请注意:在用户测试中,这绕过了 AttributeError,却触发了新的 AssertionError: pooler_config is not None(上游主分支不存在此问题,仅出现在 NGC 容器中)。

验证方法

在更新到上游主分支或新容器后,重新使用 --convert embed 参数启动 Qwen3MoE 模型。若嵌入推理能够正常执行并返回嵌入向量,且不再抛出 logits_processor 相关错误,则问题已解决。

参考来源

vllm-project/vllm #49657

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 15091

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注