跳转至

Qwen3-Next

1 简介

Qwen3-Next 模型是一种具有高稀疏度的稀疏 MoE(Mixture of Experts)模型。与 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(64GB × 16)节点中的 8 张卡 或 1 个 Atlas 800 A2(64GB × 8)节点中的 8 张卡 ModelScope

路径说明:将模型权重下载到任意目录并记录该目录。确保后续部署命令中的模型路径与该目录一致。

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.23.0
# For Atlas A3 machines:
export IMAGE=quay.io/ascend/vllm-ascend:v0.23.0-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,目前处于实验阶段。在后续版本中,稳定性、准确性和性能改进方面可能会出现行为变化。

安装验证:

pip show vllm vllm-ascend

预期结果:显示两个包的版本信息,确认安装成功。

Note

如果部署多节点环境,请在每个节点上配置环境。

更多详细信息,请参阅安装指南。

4.2 源码安装

如果不想使用 Docker 镜像,可以从源码构建。首先从源码安装 vLLM:

  1. 克隆并安装 vLLM:
git clone https://github.com/vllm-project/vllm.git
cd vllm
pip install -e .
  1. 克隆并安装 vLLM-Ascend 仓库:
git clone https://github.com/vllm-project/vllm-ascend.git
cd vllm-ascend
pip install -e .

安装验证:

pip show vllm vllm-ascend

预期结果:显示两个包的版本信息,确认安装成功。

Note

如果部署多节点环境,请在每个节点上配置环境。

更多详细信息,请参阅安装指南。

在线服务部署

5.1 单节点在线部署

单节点部署在同一节点内完成 Prefill 和 Decode。模型 Qwen3-Next-80B-A3B-Instruct 可部署在 1 个 Atlas 800 A3(64GB × 16)上。

虽然单节点部署支持所有输入/输出场景,但为了获得最佳性能,建议部署多节点集群。

启动命令:

# Ensure the model path matches the directory recorded during download
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 准确性评估

7.1 使用 AISBench

  1. 有关详细信息,请参阅使用 AISBench。

  2. 执行后,您可以获取结果。以下是 Qwen3-Next-80B-A3B-Instruct 在 vllm-ascend:0.13.0rc1 中的结果,仅供参考。

数据集 版本 指标 模式 vllm-api-general-chat
gsm8k - 准确率 生成 95.53

8 性能评估

8.1 使用 AISBench

有关详细信息,请参阅使用 AISBench 进行性能评估。

8.2 使用 vLLM 基准测试

以运行 Qwen3-Next 的性能评估为例。

有关更多详细信息,请参阅vLLM 基准测试。

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.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 服务器(64GB × 16 个 NPU)。

表 2:详细节点配置

场景 配置 NPU 数 TP DP 最大模型长度 MTP 推测数
高吞吐 / 低延迟(16k) 服务器 / 单机 2 1 1 ~16k 3
长上下文(128k,无缓存) 服务器 / 单机 2 1 1 128k 3
长上下文(128k,有缓存) 服务器 / 单机 2 1 1 128k 3
多模态(1080p) 服务器 / 单机 2 1 1 ~16k 3

有关完整的启动命令和参数说明,请参阅第 5 章中的部署示例。

9.2 调优指南

9.2.1 通用调优参考

有关调优方法,请参阅公共性能调优文档。

有关详细功能说明,请参阅功能矩阵。

10 常见问题

有关常见环境、安装和通用参数问题,请参阅公共常见问题。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 vl/vllm-ascend