Qwen3-Dense(Qwen3-0.6B/1.7B/4B/8B/14B/32B)#

1 引言#

Qwen3是Qwen系列最新一代的大语言模型,提供了一套全面的密集型和混合专家(MoE)模型。基于大规模训练,Qwen3在推理、指令遵循、智能体能力和多语言支持方面取得了突破性进展。本文档涵盖的Dense变体包括Qwen3-0.6B、1.7B、4B、8B、14B和32B,以及针对Ascend NPU部署优化的量化版本(W8A8、W4A8、W4A4和W8A8SC-310)。

本文档将演示在vLLM-Ascend环境中对Qwen3 Dense模型的主要验证步骤,包括支持的特性、环境准备、模型量化、单节点和多节点部署,以及精度和性能评估。通过定制服务级配置以适应不同的使用场景,您可以确保在各种场景下获得最佳性能。

Qwen3 Dense 模型自 v0.8.4rc2 起首次支持。W8A8 量化自 v0.8.4rc2 起首次支持,W4A8 量化自 v0.9.1rc2 起支持,W4A4 自 v0.11.0rc1 起支持。Atlas 300I DUO 使用本教程中列出的 W8A8SC-310 量化权重。本文档基于 vLLM-Ascend v0.21.0 验证和编写。所有 v0.21.0 及更高版本均可稳定运行。要使用最新功能,建议使用最新的候选版本或正式版本。

2 支持的特性#

请参考支持特性列表了解模型支持矩阵。

请参考特性指南了解特性配置信息。

3 前提条件#

3.1 模型权重#

以下模型变体可用。建议将模型权重下载到所有节点均可访问的共享目录。

BF16版本:

模型

硬件要求

下载

Qwen3-0.6B

1个Atlas A3推理产品(64GB × 16),1个Atlas A2推理产品(64GB × 8)

下载

Qwen3-1.7B

1个Atlas A3推理产品(64GB × 16),1个Atlas A2推理产品(64GB × 8)

下载

Qwen3-4B

1个Atlas A3推理产品(64GB × 16),1个Atlas A2推理产品(64GB × 8)

下载

Qwen3-8B

1个Atlas A3推理产品(64GB × 16),1个Atlas A2推理产品(64GB × 8)

下载

Qwen3-14B

1个Atlas A3推理产品(64GB × 16),1个Atlas A2推理产品(64GB × 8)

下载

Qwen3-32B

1个Atlas A3推理产品(64GB × 16),1个Atlas A2推理产品(64GB × 8)

下载

适用于Atlas A2/A3推理产品的量化版本:

模型

量化

硬件要求

下载

Qwen3-8B-W4A8

W4A8

1个Atlas A3推理产品(64GB × 16)或1个Atlas A2推理产品(64GB × 8)

下载

Qwen3-32B-W4A4

W4A4

1个Atlas A3推理产品(64GB × 16)或1个Atlas A2推理产品(64GB × 8)

下载

Qwen3-32B-W8A8

W8A8

1个Atlas A3推理产品(64GB × 16)或1个Atlas A2推理产品(64GB × 8)

下载

Atlas 300I DUO 的量化版本:

模型

量化

硬件要求

下载

Qwen3-8B-W8A8SC

W8A8SC

Atlas 300I DUO (TP1)

下载

Qwen3-14B-W8A8SC

W8A8SC

Atlas 300I DUO (TP1)

下载

Qwen3-32B-W8A8SC

W8A8SC

Atlas 300I DUO (TP4)

下载

这些是推荐的卡数,可根据实际情况进行调整。

3.2 验证多节点通信#

如果需要部署多节点环境,请按照验证多节点通信环境验证多节点通信。

4 安装#

4.1 Docker镜像安装#

您可以使用Qwen3 Dense模型的官方一体化Docker镜像。

Docker拉取:

docker pull quay.io/ascend/vllm-ascend:v0.23.0

Docker运行:

在每个节点上启动docker镜像。

export IMAGE=quay.io/ascend/vllm-ascend:v0.23.0-a3

docker run --rm \
    --name vllm-ascend-env \
    --shm-size=1g \
    --net=host \
    --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/Ascend/driver/tools/hccn_tool:/usr/local/Ascend/driver/tools/hccn_tool \
    -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 \
    -it $IMAGE bash

备注

Atlas A3推理产品具有8个NPU,采用双芯片设计(共16个芯片:/dev/davinci[0-15])。如果您在共享机器上,请仅映射您需要的芯片(例如,NPU 0-3映射/dev/davinci[0-7])。

export IMAGE=quay.io/ascend/vllm-ascend:v0.23.0

docker run --rm \
    --name vllm-ascend-env \
    --shm-size=1g \
    --net=host \
    --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/davinci_manager \
    --device /dev/devmm_svm \
    --device /dev/hisi_hdc \
    -v /usr/local/dcmi:/usr/local/dcmi \
    -v /usr/local/Ascend/driver/tools/hccn_tool:/usr/local/Ascend/driver/tools/hccn_tool \
    -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 \
    -it $IMAGE bash
# Use the vllm-ascend image
export IMAGE=quay.io/ascend/vllm-ascend:v0.23.0-310p

docker run --rm \
--name vllm-ascend \
--shm-size=10g \
--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/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 8080:8080 \
-it $IMAGE bash

默认工作目录是/workspace。vLLM和vLLM-Ascend作为Python包安装在site-packages中。

安装验证:启动容器后,运行以下命令验证安装:

docker ps | grep vllm-ascend-env

预期结果:容器列出且状态为Up。您还可以在容器内验证vllm-ascend版本:

pip show vllm-ascend

预期结果:显示版本信息,与拉取的镜像版本一致。

4.2 源码安装#

如果希望从源码构建而非使用Docker镜像,请按照安装指南安装vLLM-Ascend。

备注

对于 Atlas 300I DUO,源码安装可能会引入 tritontriton-ascend。在 Atlas 300I DUO 上运行 vLLM-Ascend 之前,请先卸载它们:

pip uninstall -y triton-ascend triton

验证源码安装:

pip show vllm-ascend

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

备注

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

5 在线服务部署#

5.1 单节点在线部署#

单节点部署在同一节点内完成Prefill和Decode,适用于开发、测试及中小规模推理场景。

启动服务:

以下命令为示例配置,请根据实际场景调整参数。

Qwen3-32B-W8A8:

export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3
export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True
export TASK_QUEUE_ENABLE=1
export HCCL_OP_EXPANSION_MODE="AIV"

vllm serve your_model_path \
    --served-model-name qwen3 \
    --trust-remote-code \
    --async-scheduling \
    --quantization ascend \
    --distributed-executor-backend mp \
    --tensor-parallel-size 4 \
    --max-model-len 5500 \
    --max-num-batched-tokens 40960 \
    --compilation-config '{"cudagraph_mode": "FULL_DECODE_ONLY"}' \
    --port <port> \
    --gpu-memory-utilization 0.9 \
    --additional-config '{"enable_flashcomm1": true}'

Qwen3-32B-W4A4:

export ASCEND_RT_VISIBLE_DEVICES=0,1
export VLLM_USE_V1=1
export TASK_QUEUE_ENABLE=1
export HCCL_BUFFSIZE=1024
vllm serve your_model_path \
    --port 8004 \
    --data-parallel-size 1 \
    --tensor-parallel-size 2 \
    --served-model-name qwen3 \
    --distributed-executor-backend "mp" \
    --max-model-len 40960 \
    --max-num-batched-tokens 16384 \
    --max-num-seqs 64 \
    --trust-remote-code \
    --gpu-memory-utilization 0.9 \
    --quantization ascend \
    --compilation-config '{"cudagraph_capture_sizes": [64]}' \
    --additional-config '{"enable_flashcomm1": true, "ascend_compilation_config": {"fuse_norm_quant": false}}'

Qwen3-8B-W4A8:

export ASCEND_RT_VISIBLE_DEVICES=0,1
export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True
vllm serve your_model_path \
    --served-model-name qwen3 \
    --max-model-len 4096 \
    --port 20001 \
    --additional-config '{"ascend_compilation_config": {"enable_npugraph_ex": false}}' \
    --quantization ascend

Atlas 300I DUO 使用来自 Eco-Tech 官方 ModelScope 仓库的 W8A8SC-310 量化权重。对于 310P 部署,请显式设置 --max-model-len,以避免因注意力掩码分配过大而导致 OOM。

Qwen3-8B-W8A8SC:

export VLLM_USE_MODELSCOPE=True
export ASCEND_RT_VISIBLE_DEVICES=0

vllm serve Eco-Tech/Qwen3-8B-w8a8sc-310-vllm/TP1/Qwen3-8B-w8a8sc-310-vllm-tp1 \
    --host 127.0.0.1 \
    --port 8080 \
    --tensor-parallel-size 1 \
    --gpu-memory-utilization 0.90 \
    --max-num-seqs 32 \
    --served-model-name qwen3 \
    --dtype float16 \
    --additional-config '{"ascend_compilation_config": {"enable_npugraph_ex":false}}' \
    --compilation-config '{"cudagraph_mode": "FULL_DECODE_ONLY", "cudagraph_capture_sizes": [1,2,4,8,16,32]}' \
    --quantization ascend \
    --max-model-len 16384 \
    --no-enable-prefix-caching \
    --load-format sharded_state

Qwen3-14B-W8A8SC:

export VLLM_USE_MODELSCOPE=True
export ASCEND_RT_VISIBLE_DEVICES=0

vllm serve Eco-Tech/Qwen3-14B-w8a8sc-310-vllm/TP1/Qwen3-14B-w8a8sc-310-vllm-tp1 \
    --host 127.0.0.1 \
    --port 8080 \
    --tensor-parallel-size 1 \
    --gpu-memory-utilization 0.90 \
    --max-num-seqs 16 \
    --served-model-name qwen3 \
    --dtype float16 \
    --additional-config '{"ascend_compilation_config": {"enable_npugraph_ex":false}}' \
    --compilation-config '{"cudagraph_mode": "FULL_DECODE_ONLY", "cudagraph_capture_sizes": [1,2,4,8,16]}' \
    --quantization ascend \
    --max-model-len 16384 \
    --no-enable-prefix-caching \
    --load-format sharded_state

Qwen3-32B-W8A8SC:

export VLLM_USE_MODELSCOPE=True
export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3

vllm serve Eco-Tech/Qwen3-32B-w8a8sc-310-vllm/TP4/Qwen3-32B-w8a8sc-310-vllm-tp4 \
    --host 127.0.0.1 \
    --port 8080 \
    --tensor-parallel-size 4 \
    --gpu-memory-utilization 0.90 \
    --max-num-seqs 32 \
    --served-model-name qwen3 \
    --dtype float16 \
    --additional-config '{"ascend_compilation_config": {"enable_npugraph_ex":false}}' \
    --compilation-config '{"cudagraph_mode": "FULL_DECODE_ONLY", "cudagraph_capture_sizes": [16,32]}' \
    --quantization ascend \
    --max-model-len 20480 \
    --no-enable-prefix-caching \
    --load-format sharded_state

备注

服务验证:

如果服务启动成功,将显示以下启动日志:

(APIServer pid=<pid>) INFO:     Started server process [<pid>]
(APIServer pid=<pid>) INFO:     Waiting for application startup.
(APIServer pid=<pid>) INFO:     Application startup complete.

6 功能验证#

服务启动后,可通过发送提示词调用模型。

聊天补全API:

curl http://localhost:<port>/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "qwen3",
        "messages": [
            {"role": "user", "content": "Give me a short introduction to large language models."}
        ],
        "temperature": 0.6,
        "top_p": 0.95,
        "top_k": 20,
        "max_completion_tokens": 4096
    }'

预期结果:HTTP 200,JSON响应中包含choices字段及生成的文本。

7 精度评估#

使用AISBench#

有关安装、数据集下载和配置等设置详情,请参考使用AISBench

以下是精度评估配置文件的示例配置:

精度评估配置文件:

# Example configuration: benchmarks/ais_bench/benchmark/configs/models/vllm_api/vllm_api_general_chat.py
from ais_bench.benchmark.models import VLLMCustomAPIChat
from ais_bench.benchmark.utils.model_postprocessors import extract_non_reasoning_content

models = [
    dict(
        attr="service",
        type=VLLMCustomAPIChat,
        abbr='vllm-api-general-chat',
        path="your_model_path",
        model="qwen3",
        request_rate=0,
        retry=2,
        host_ip="127.0.0.1",
        host_port=2001,
        max_out_len=32768,
        batch_size=32,
        trust_remote_code=False,
        generation_kwargs=dict(
            temperature=0.6,
            top_k=20,
            top_p=0.95,
        ),
        pred_postprocessor=dict(type=extract_non_reasoning_content)
    )
]

以aime2025数据集为例运行精度评估:

ais_bench --models vllm_api_general_chat --datasets aime2025_gen_0_shot_chat_prompt --debug

--models参数值对应上述配置文件中的abbr字段。请根据场景调整max_out_len、batch_size和数据集任务。

8 性能评估#

使用AISBench#

有关安装、数据集下载和配置等设置详情,请参考使用AISBench

以下是精度评估配置文件的示例配置:

# Example configuration: benchmarks/ais_bench/benchmark/configs/models/vllm_api/vllm_api_stream_chat.py
from ais_bench.benchmark.models import VLLMCustomAPIChat
from ais_bench.benchmark.utils.postprocess.model_postprocessors import extract_non_reasoning_content

models = [
    dict(
        attr="service",
        type=VLLMCustomAPIChat,
        abbr="vllm-api-stream-chat",
        path="your_model_path",
        model="qwen3",
        stream=True,
        request_rate=0,
        use_timestamp=False,
        retry=2,
        host_ip="127.0.0.1",
        host_port=8004,
        max_out_len=1500,
        batch_size=90,
        trust_remote_code=False,
        generation_kwargs=dict(
            temperature=0,
            ignore_eos=True
        ),
    )
]

以GSM8K数据集为例运行性能评估:

ais_bench --models vllm_api_stream_chat --datasets gsm8k_gen_0_shot_cot_str_perf --debug --summarizer default_perf --mode perf --num-prompts 360

使用vLLM基准测试#

更多详情请参考vLLM基准测试

vllm bench有三个子命令:

  • latency:对单批请求的延迟进行基准测试。

  • serve:对在线服务吞吐量进行基准测试。

  • throughput:对离线推理吞吐量进行基准测试。

serve为例:

vllm bench serve \
    --model your_model_path \
    --served-model-name qwen3 \
    --port <port> \
    --dataset-name random \
    --random-input 200 \
    --num-prompts 200 \
    --request-rate 1 \
    --save-result \
    --result-dir ./

几分钟后,您将获得性能评估结果。

9 性能调优#

9.2 调优指南#

9.2.1 通用调优参考#

调优方法请参考公开性能调优文档。详细功能描述请参考功能矩阵

10 常见问题#

常见环境、安装及通用参数问题请参考vLLM-Ascend 常见问题。本节仅涵盖Qwen3 Dense模型的特定问题。