Qwen3-Next¶
1 引言¶
Qwen3-Next 模型是一种高稀疏度的稀疏 MoE(混合专家)模型。与 Qwen3 的 MoE 架构相比,它在混合注意力机制和多 token 预测机制等方面引入了关键改进,提升了模型在长上下文和大总参数量下的训练与推理效率。
本文档将介绍该模型的核心验证步骤,包括支持特性、环境准备,以及精度与性能评估。Qwen3 Next 当前使用 Triton Ascend,该组件处于实验阶段。在后续版本中,其与稳定性和精度相关的性能可能会发生变化,并且性能将持续优化。
Qwen3-Next 模型首次在 vllm-ascend:v0.10.2rc1 中得到支持,并可在 v0.16.0 及更高版本中稳定运行。
2 支持特性¶
请参考支持特性列表获取该模型的支持特性矩阵。
请参考特性指南获取特性的配置方法。
3 前提条件¶
3.1 模型权重¶
Qwen3-Next-80B-A3B-Instruct:需要 1 个 Atlas 800 A3 (64G × 16) 节点中的 8 张卡 或 1 个 Atlas 800 A2 (64G × 8) 节点中的 8 张卡。模型权重
4 安装¶
4.1 Docker 镜像安装¶
根据您的机器类型选择镜像,并在节点上启动 Docker 镜像,请参考使用 Docker。
A3 系列:
在每个节点上启动 Docker 镜像。
#!/bin/sh
# Update the vllm-ascend image
# For Atlas A2 machines:
# export IMAGE=quay.io/ascend/vllm-ascend:v0.22.1rc1
# For Atlas A3 machines:
export IMAGE=quay.io/ascend/vllm-ascend:v0.22.1rc1-a3
docker run --rm \
--shm-size=1g \
--name vllm-ascend-qwen3 \
--device /dev/davinci0 \
--device /dev/davinci1 \
--device /dev/davinci2 \
--device /dev/davinci3 \
--device /dev/davinci4 \
--device /dev/davinci5 \
--device /dev/davinci6 \
--device /dev/davinci7 \
--device /dev/davinci8 \
--device /dev/davinci9 \
--device /dev/davinci10 \
--device /dev/davinci11 \
--device /dev/davinci12 \
--device /dev/davinci13 \
--device /dev/davinci14 \
--device /dev/davinci15 \
--device /dev/davinci_manager \
--device /dev/devmm_svm \
--device /dev/hisi_hdc \
-v /usr/local/dcmi:/usr/local/dcmi \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
-v /etc/ascend_install.info:/etc/ascend_install.info \
-v /root/.cache:/root/.cache \
-p 8000:8000 \
-it $IMAGE bash
Qwen3 Next 使用 Triton Ascend,该组件目前处于实验阶段。在未来的版本中,可能会有与稳定性、精度和性能提升相关的行为变化。
安装验证:
预期结果:显示两个包的版本信息,确认安装成功。
Note
如果部署多节点环境,请在每个节点上配置环境。
更多详情,请参考安装指南。
4.2 源码安装¶
如果您不想使用 Docker 镜像,可以从源码构建。首先从源码安装 vLLM:
- 克隆并安装 vLLM:
- 克隆并安装 vLLM-Ascend 仓库:
安装验证:
预期结果:显示两个包的版本信息,确认安装成功。
Note
如果部署多节点环境,请在每个节点上配置环境。
更多详情,请参考安装指南。
5 在线服务部署¶
5.1 单节点在线部署¶
单节点部署在同一节点内完成 Prefill 和 Decode。模型 Qwen3-Next-80B-A3B-Instruct 可部署在 1 个 Atlas 800 A3 (64G × 16) 上。
虽然单节点设置支持所有输入/输出场景,但为了获得最佳性能,请考虑部署多节点。
启动命令:
vllm serve Qwen/Qwen3-Next-80B-A3B-Instruct --served-model-name qwen3_next --tensor-parallel-size 4 --max-model-len 32768 --gpu-memory-utilization 0.8 --max-num-batched-tokens 4096 --compilation-config '{"cudagraph_mode":"FULL_DECODE_ONLY"}'
如果您的服务启动成功,您将看到如下信息:
INFO: Started server process [2736]
INFO: Waiting for application startup.
INFO: Application startup complete.
6 功能验证¶
服务器启动后,您可以使用输入提示查询模型:
curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{
"model": "qwen3_next",
"messages": [
{"role": "user", "content": "Who are you?"}
],
"temperature": 0.6,
"top_p": 0.95,
"top_k": 20,
"max_completion_tokens": 32
}'
预期结果:
服务返回 HTTP 200 OK,并返回包含 choices 字段的 JSON 响应。示例输出(内容已截断以保持简洁):
{
"id": "chatcmpl-9df13fd5e539af93",
"object": "chat.completion",
"created": 1780971952,
"model": "qwen3_next",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "What do you know about me?\n\nHello! I am Qwen, a large-scale language model independently developed by the Tongyi Lab under Alibaba Group. I am...",
"reasoning": "The user is asking for my thoughts on \"Who are you?\"...",
"refusal": null,
"annotations": null,
"audio": null,
"function_call": null
},
"logprobs": null,
"finish_reason": "length",
"stop_reason": null,
"token_ids": null
}
]
}
7 精度评估¶
使用 AISBench¶
-
详情请参考使用 AISBench。
-
执行后,您可以获得结果,以下是
Qwen3-Next-80B-A3B-Instruct在vllm-ascend:0.13.0rc1中的结果,仅供参考。
| 数据集 | 版本 | 指标 | 模式 | vllm-api-general-chat |
|---|---|---|---|---|
| gsm8k | - | accuracy | gen | 95.53 |
8 性能评估¶
使用 AISBench¶
详情请参考使用 AISBench 进行性能评估。
使用 vLLM Benchmark¶
以 Qwen3-Next 为例运行性能评估。
更多详情请参考 vLLM Benchmark。
vllm bench 有三个子命令:
latency:对单批请求的延迟进行基准测试。serve:对在线服务吞吐量进行基准测试。throughput:对离线推理吞吐量进行基准测试。
以 serve 为例。运行如下代码。
export VLLM_USE_MODELSCOPE=True
vllm bench serve --model Qwen/Qwen3-Next-80B-A3B-Instruct --dataset-name random --random-input 200 --num-prompts 200 --request-rate 1 --save-result --result-dir ./
大约几分钟后,您可以获得性能评估结果。
性能结果为:
Hardware: A3-752T, 2 node
Deployment: TP4 + Full Decode Only
Input/Output: 2k/2k
Concurrency: 32
Performance: 580tps, TPOT 54ms
9 性能调优¶
9.1 推荐配置¶
注意:
以下配置在特定测试环境中验证通过,仅供参考。最佳配置取决于最大输入/输出长度、前缀缓存命中率、精度要求以及部署机器配比等因素。建议根据实际情况参考第9.2节进行调优。
Qwen3-Next 当前不支持 TP>=16。由于该模型有16个查询头,但仅有2个键值头,当 TP >= 16 时,GQA 退化为 MHA。然而,FIA 算子目前无法在头维度为256(该模型的情况)的 MHA 场景下正常工作。
表1:场景概览¶
| 场景 | 部署模式 | *NPU总数 | 权重版本 | 关键考量 |
|---|---|---|---|---|
| 高吞吐量 (16K上下文) |
单节点混合 | 2 (A3) | Qwen3-Next | 对高分辨率文本输入使用tp2 |
| 长上下文 (128K,无前缀缓存) |
单节点混合 | 2 (A3) | Qwen3-Next | 对高分辨率文本输入使用tp2 |
| 长上下文 (128K,有前缀缓存) |
单节点混合 | 2 (A3) | Qwen3-Next | 对高分辨率文本输入使用tp2 |
| 多模态 (1080P) |
单节点混合 | 2 (A3) | Qwen3-Next | 对高分辨率视觉输入使用tp2 |
*Total NPUs表示所有节点使用的NPU总数。1个节点 = 1台 Atlas 800 A3 服务器(64G × 16 NPU)。
表2:详细节点配置¶
| 场景 | 配置 | NPU数量 | TP | DP | 最大模型长度 | MTP推测数量 |
|---|---|---|---|---|---|---|
| High Throughput / Low Latency (16K) | Server / Single Machine | 2 | 1 | 1 | ~16K | 3 |
| Long Context (128K, no cache) | Server / Single Machine | 2 | 1 | 1 | 128K | 3 |
| Long Context (128K, with cache) | Server / Single Machine | 2 | 1 | 1 | 128K | 3 |
| Multimodal (1080P) | Server / Single Machine | 2 | 1 | 1 | ~16K | 3 |
完整的启动命令和参数说明请参考第5章中的部署示例。
9.2 调优指南¶
9.2.1 通用调优参考¶
调优方法请参考公共性能调优文档。
详细特性描述请参考特性指南。
10 常见问题¶
常见的环境、安装和通用参数问题,请参考公共FAQ。