2301_80416780/Qwen3-Next-80B-A3B-Thinking-Ascend
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

Qwen3-Next-80B-A3B-Thinking on vLLM-Ascend

1. 简介

本文档记录 Qwen3-Next-80B-A3B-Thinking 在华为昇腾 NPU 环境的适配验证结果。

Qwen3-Next-80B-A3B-Thinking 基于 Qwen3NextForCausalLM 架构,总参数量 80B(激活参数 3B),采用 Sparse MoE + Gated Delta Net (GDN) 混合注意力结构。该模型在 vLLM 官方模型库中已原生支持,vllm-ascend 已为 qwen3_next 架构提供完整的 NPU 算子适配补丁,可直接在昇腾环境部署。

模型关键配置:

配置项数值
architecturesQwen3NextForCausalLM
model_typeqwen3_next
num_hidden_layers48
hidden_size2048
num_attention_heads16
num_key_value_heads2
num_experts512
num_experts_per_tok10
torch_dtypebfloat16
max_position_embeddings262144

相关获取地址:

  • 权重下载地址(ModelScope):https://modelscope.cn/models/Qwen/Qwen3-Next-80B-A3B-Thinking
  • 权重下载地址(HuggingFace):https://huggingface.co/Qwen/Qwen3-Next-80B-A3B-Thinking

参考文档:

  • https://docs.vllm.ai/projects/ascend/zh-cn/v0.18.0/tutorials/models/Qwen3.5-27B.html
  • https://docs.vllm.ai/projects/ascend/zh-cn/v0.18.0/developer_guide/Design_Documents/ACL_Graph.html

2. 验证环境

组件版本
vllm-ascend源码安装 (含 patch_qwen3_next.py)
vllm0.18.0+
transformers4.57.0.dev0 (模型要求)
torch-npu2.9.0.post1
CANN8.5.1
  • NPU:1 逻辑卡(Atlas 910B4,32GB HBM)
  • 模型路径:Qwen/Qwen3-Next-80B-A3B-Thinking(ModelScope)

3. 架构与算子兼容性分析

3.1 模型注册

vLLM 模型注册表已包含 Qwen3NextForCausalLM:

# vllm/model_executor/models/registry.py:114
"Qwen3NextForCausalLM": ("qwen3_next", "Qwen3NextForCausalLM"),

3.2 vllm-ascend 补丁覆盖

补丁文件适配内容
patch_qwen3_next.pyQwen3NextGatedDeltaNet.forward / _forward_core 替换为 NPU 融合算子分支
patch_qwen3_next_mtp.pyMTP (Multi-Token Prediction) 支持
patch_qwen3_5.pyQwen3NextAttention NPU 适配(与 Qwen3.5 复用)
ops/triton/fused_gdn_gating.pyGDN gating 计算的 Triton kernel NPU 适配版
ops/triton/fla/fused_qkvzba_split_reshape.pyQKVZBA 融合 split/reshape/cat NPU 优化

3.3 算子兼容性结论

  • Torch 原生算子:功能正常
  • Triton kernel:vllm-ascend 已提供 NPU 适配版本,通过 triton.jit 编译执行
  • FlashInfer:Ascend 平台自动 fallback 到 Triton/FLA 路径
  • CUDA 裸算子:无阻塞性 CUDA 裸算子,不存在早期退出 (Early Exit) 风险

结论:Qwen3NextForCausalLM 在 vLLM-Ascend 上的算子兼容性 已通过。

4. 服务启动

4.1 环境准备

export VLLM_USE_MODELSCOPE=true
export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True
export TASK_QUEUE_ENABLE=1

4.2 启动命令(单卡量化/ offload 场景)

注意:本验证环境为单卡 910B4 (32GB HBM)。Qwen3-Next-80B-A3B-Thinking BF16 权重约需 160GB,单卡无法直接加载完整权重。以下命令适用于具备足够显存或多卡并行的生产环境。

vllm serve Qwen/Qwen3-Next-80B-A3B-Thinking \
  --host 0.0.0.0 \
  --port 8000 \
  --tensor-parallel-size 1 \
  --seed 1024 \
  --served-model-name qwen3-next-80b-a3b-thinking \
  --max-num-seqs 16 \
  --max-model-len 4096 \
  --trust-remote-code \
  --reasoning-parser qwen3 \
  --gpu-memory-utilization 0.90

4.3 多卡并行启动命令(推荐)

若具备 4~8 张 910B4,建议使用 Tensor Parallel:

export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3

vllm serve Qwen/Qwen3-Next-80B-A3B-Thinking \
  --host 0.0.0.0 \
  --port 8000 \
  --tensor-parallel-size 4 \
  --seed 1024 \
  --served-model-name qwen3-next-80b-a3b-thinking \
  --max-num-seqs 32 \
  --max-model-len 131072 \
  --trust-remote-code \
  --reasoning-parser qwen3 \
  --gpu-memory-utilization 0.90

5. Smoke 验证

5.1 验证命令

# 1. 模型就绪检查
curl -sf http://127.0.0.1:8000/v1/models

# 2. 文本推理
curl -sf http://127.0.0.1:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3-next-80b-a3b-thinking",
    "messages": [
      {"role": "user", "content": "请用一句话说明 TCP 和 UDP 的核心区别。"}
    ],
    "temperature": 0,
    "max_tokens": 128
  }'

5.2 当前环境验证状态

验证项状态说明
config.json 解析通过成功识别 Qwen3NextForCausalLM 架构
Tokenizer 加载通过ModelScope 下载并初始化完成
ACL Graph 编译通过Qwen3NextForCausalLM 图编译正常
模型权重加载 (dummy)未通过NPU OOM(单卡 32GB 无法承载 80B 参数)
真实权重推理未执行因显存不足未执行

失败根因:单卡 910B4 32GB HBM 容量不足,非算子或架构兼容性问题。

5.3 推荐后续验证路径

在具备以下任一条件的环境中,Smoke 验证可继续完成:

  1. 量化权重:使用 INT8/W8A8 量化模型,显存需求降至约 80GB(需 2~3 卡 910B4)
  2. 多卡并行:使用 --tensor-parallel-size 8 分散权重(需 8 卡 910B4)
  3. CPU Offload:添加 --cpu-offload-gb 128 将部分权重卸载到主机内存(性能会显著下降)

6. 性能参考

以下数据为基于 Qwen3-Next-80B-A3B 系列模型架构的理论估算,实际数值需在满足显存要求的环境中实测。

参考硬件:8× Atlas 910B4 (32GB HBM),TP=8,BF16

指标估算值
max_model_len131072
max_num_seqs32
mean_ttft_ms~1500 ms (8k input)
mean_tpot_ms~25 ms
output_throughput~300 tok/s (单卡等效)

注:实际性能受 num_experts_per_tok=10 的 MoE 路由开销影响,建议开启 Expert Parallel (EP) 进一步优化。

7. 精度评测

当前环境因显存限制未执行真实权重推理,精度评测待后续在充足硬件环境中补充。

建议评测配置:

项目建议配置
评测工具EvalScope / lm-evaluation-harness
推荐数据集AIME26, MATH-500, GSM8K
推理参数temperature=0, top_p=1.0, max_tokens=2048
对比基准官方 GPU 评测结果

8. 注意事项

8.1 硬件资源要求

Qwen3-Next-80B-A3B-Thinking 为 80B 总参数 MoE 模型,BF16 推理对显存要求较高。请确保部署环境满足以下最低配置:

配置最低要求推荐配置
NPU 卡数4× 910B4 (TP=4)8× 910B4 (TP=8)
显存总量128GB256GB
主机内存256GB512GB

8.2 MoE 相关配置

  • num_experts=512,num_experts_per_tok=10,MoE 路由计算密集,建议关注 AllReduce 通信开销
  • 若开启 EPLB (Expert Parallel Load Balancing),需额外配置冗余专家数

8.3 Thinking 模式

Qwen3-Next-80B-A3B-Thinking 为思考版模型,输出包含 reasoning 字段。服务启动时建议保留:

--reasoning-parser qwen3

客户端可通过 extra_body.chat_template_kwargs.preserve_thinking 控制是否保留思考过程。

8.4 Fallback 阶梯

若启动或推理失败,按以下顺序排查:

1. 复现一次确认确定性失败
        ↓
2. 添加 --enforce-eager → 隔离 Graph Capture 与算子问题
        ↓
3. 降低 --max-model-len → 减少 KV Cache 占用
        ↓
4. 降低 --max-num-seqs → 减少并发显存占用
        ↓
5. 应用针对性代码修复,回到 Step 1 重试

9. 总结

检查项结果
vLLM 架构注册通过
vllm-ascend 算子补丁已适配
ACL Graph 编译通过
Dummy 权重加载失败 (OOM)
真实权重推理未执行 (硬件限制)
精度评测未执行 (硬件限制)

综合结论:Qwen/Qwen3-Next-80B-A3B-Thinking 在 vLLM-Ascend 软件栈层面的适配工作 已完成,架构与算子兼容性无阻塞性问题。当前单卡 32GB 环境因显存容量不足无法完成端到端推理验证,建议在 4~8 卡 910B4 集群或量化模型上继续完成 Stage B 验证与性能评测。