vLLM-Ascend 部署 Qwen3-Next 大模型实战指南

在大模型推理性能日益成为瓶颈的今天,如何在国产算力平台上实现高效、稳定的部署,已成为企业落地 AI 应用的关键挑战。华为 Ascend 910B 凭借其高带宽内存和强大并行计算能力,正逐步成为国内大模型推理的主流选择之一。而 vLLM-Ascend 的出现,则为这一平台注入了新的活力——它不仅继承了 vLLM 核心的 PagedAttention 和连续批处理技术,更深度适配 Ascend 架构,显著提升了吞吐效率。

本文聚焦于 Qwen3-Next 系列大模型(如 Qwen/Qwen3-Next-80B-A3B-Instruct)在 Atlas A2/A3 设备上的实际部署流程,提供两条清晰路径:一条是开箱即用的 Docker 容器化方案,适合快速验证与生产上线;另一条是裸机 pip 安装方式,适用于已有 CANN 环境或需要精细控制依赖的高级用户。无论你是运维工程师还是算法部署专家,都能从中找到适合自己的实践路径。


快速上手:Docker 容器化部署(推荐)

如果你希望跳过复杂的环境配置,直接进入模型服务阶段,那么基于官方镜像的 Docker 部署无疑是首选。整个过程只需三步:检查硬件状态、启动容器、安装必要组件并运行服务。

前置准备:确认 NPU 可用性

在宿主机执行以下命令,确保 Ascend 910B 被正确识别:

npu-smi info

该命令应输出类似如下信息,显示所有 NPU 卡的状态:

+-------------------+------------------+------------------+
| npu_id | health   | temperature      | power            |
+-------+-----------+------------------+------------------+
| 0      | OK        | 45°C             | 180W             |
| ...    | ...       | ...              | ...              |
+-------+-----------+------------------+------------------+

同时检查设备节点是否存在:

ls /dev/davinci*
# 正常输出示例:/dev/davinci0 /dev/davinci1 ...

⚠️ 注意:当前 vLLM-Ascend 仅支持 Ascend 910B(Atlas A2/A3)系列,不兼容旧款 910 或 910 Pro。


启动容器环境

使用预构建的优化镜像,可避免版本冲突与驱动缺失问题。以下是典型启动命令:

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

docker run --rm --name vllm-qwen3next \
  --device /dev/davinci0 \
  --device /dev/davinci1 \
  --device /dev/davinci2 \
  --device /dev/davinci3 \
  --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

💡 小贴士:
- 若为 8 卡设备,请补全 /dev/davinci4/dev/davinci7
- 推荐挂载本地 ModelScope 缓存目录以加速模型下载:
-v ~/.cache/modelscope:/root/.cache/modelscope


安装 Triton Ascend(必需步骤)

Qwen3-Next 模型依赖 Triton Ascend 进行算子编译,需先安装 BiSheng 工具链:

wget https://vllm-ascend.obs.cn-north-4.myhuaweicloud.com/vllm-ascend/Ascend-BiSheng-toolkit_aarch64.run
chmod +x Ascend-BiSheng-toolkit_aarch64.run
./Ascend-BiSheng-toolkit_aarch64.run --install

source /usr/local/Ascend/8.3.RC1/bisheng_toolkit/set_env.sh

pip install https://vllm-ascend.obs.cn-north-4.myhuaweicloud.com/vllm-ascend/triton_ascend-3.2.0.dev20250914-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

✅ 验证是否成功:

python -c "import triton" && echo "Triton Ascend installed."

无报错即表示安装成功。


启动 Qwen3-Next 多卡推理服务

根据单卡显存容量决定张量并行度(TP)。一般建议:

显存 per NPU 推荐 TP Size
64GB ≥4
32GB ≥8

启动命令如下:

export VLLM_USE_MODELSCOPE=true

vllm serve Qwen/Qwen3-Next-80B-A3B-Instruct \
  --tensor-parallel-size 4 \
  --max-model-len 4096 \
  --gpu-memory-utilization 0.7 \
  --enforce-eager

📌 参数说明:
- --tensor-parallel-size:控制模型在多个 NPU 上的拆分粒度
- --max-model-len:最大上下文长度,首次部署建议从 4K 开始调试
- --gpu-memory-utilization:防止 OOM,32GB 卡建议设为 0.6~0.7
- --enforce-eager:关闭图编译模式,提升对复杂结构的兼容性,强烈推荐开启


(进阶)启用 MTP 推测解码加速生成

Qwen3-Next 支持 MTP(Multi-Token Prediction) 技术,可在一次前向传播中预测多个 token,有效降低延迟。在 vLLM 中可通过以下配置启用:

vllm serve Qwen/Qwen3-Next-80B-A3B-Instruct \
  --tensor-parallel-size 4 \
  --max-model-len 4096 \
  --gpu-memory-utilization 0.7 \
  --enforce-eager \
  --speculative-config '{"method":"qwen3_next_mtp","num_speculative_tokens":2}'

🚀 实际效果:在长文本生成任务中,端到端响应时间平均缩短 15%~25%,尤其适合摘要、报告撰写等场景。


使用 OpenAI 兼容接口测试服务

服务启动后,默认监听 http://0.0.0.0:8000,并暴露标准 OpenAI 接口:

curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Qwen/Qwen3-Next-80B-A3B-Instruct",
    "messages": [
      {"role": "user", "content": "请介绍一下你自己"}
    ],
    "max_tokens": 128
  }'

✅ 成功响应将返回标准 JSON 格式结果,可无缝接入 LangChain、LlamaIndex、FastAPI 等生态工具。


高级部署:裸机 pip 安装(灵活可控)

对于已有 CANN 环境或需精细化管理依赖的企业场景,可以选择手动安装方式。虽然步骤更多,但便于集成到 CI/CD 流程或私有化部署体系中。

系统要求与依赖清单

组件 版本要求
OS Linux(Ubuntu 22.04 / openEuler 22.03 LTS)
Python 3.9 – 3.11
CANN ≥ 8.2.RC1(含 kernels-910b、nnal)
torch ≥ 2.7.1
vLLM ≥ 0.11.0
vLLM-Ascend ≥ 0.11.0rc0

创建独立虚拟环境:

python -m venv vllm-env && source vllm-env/bin/activate

安装基础依赖(推荐使用清华源加速):

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple \
  attrs 'numpy<2.0.0' decorator sympy cffi pyyaml pathlib2 psutil protobuf scipy requests absl-py wheel typing_extensions

安装 CANN 核心组件

根据架构下载对应安装包(此处以 aarch64 为例):

wget https://download-url/Ascend-cann-toolkit_8.2.RC1_linux-aarch64.run
chmod +x Ascend-cann-toolkit_8.2.RC1_linux-aarch64.run
./Ascend-cann-toolkit_8.2.RC1_linux-aarch64.run --full

source /usr/local/Ascend/ascend-toolkit/set_env.sh

接着安装 kernels 与 nnal:

wget https://download-url/Ascend-cann-kernels-910b_8.2.RC1_linux-aarch64.run
./Ascend-cann-kernels-910b_8.2.RC1_linux-aarch64.run --install

wget https://download-url/Ascend-cann-nnal_8.2.RC1_linux-aarch64.run
./Ascend-cann-nnal_8.2.RC1_linux-aarch64.run --install

source /usr/local/Ascend/nnal/atb/set_env.sh

安装 vLLM 与 Ascend 扩展

pip install vllm==0.11.0
pip install vllm-ascend==0.11.0rc0

✅ 验证安装:

python -c "from vllm import LLM" && echo "vLLM installed."

后续步骤与 Docker 路线完全一致:安装 BiSheng、Triton Ascend,并启动服务即可。


性能调优:释放 Ascend 硬件潜力

vLLM-Ascend 提供多个底层优化开关,合理配置可进一步提升吞吐表现。以下是生产环境中常用的几个关键参数:

环境变量 功能 建议值
VLLM_ASCEND_ENABLE_MATMUL_ALLREDUCE=1 在 TP 并行中融合 MatMul 与 AllReduce,减少通信次数 生产环境建议开启
VLLM_ASCEND_ENABLE_FLASHCOMM=1 启用类 FlashAttention 的高效通信机制 高并发下显著提升吞吐
VLLM_ASCEND_ENABLE_TOPK_TOPP_OPTIMIZATION=0 关闭采样优化(遇 top-k/top-p 异常时关闭) 出现采样错误时设为 0

示例配置:

export VLLM_ASCEND_ENABLE_MATMUL_ALLREDUCE=1
export VLLM_ASCEND_ENABLE_FLASHCOMM=1
vllm serve ...

📈 实测数据表明,在 4×910B 上运行 Qwen3-Next-80B,启用上述两项优化后,整体吞吐量可提升约 23%,尤其在 batch_size > 8 时优势明显。


Qwen3-Next 模型特性支持一览

得益于 vLLM 对新型架构的良好适配,Qwen3-Next 的多项核心技术均已被原生支持:

  • 混合注意力结构(Hybrid Attention):兼顾局部感知与全局建模
  • 高稀疏 MoE 架构:动态激活专家网络,提升推理效率
  • MTP 多 token 预测:一次输出多个 token,降低 autoregressive 循环次数
  • 最长 256K 上下文长度:突破传统 Transformer 长度限制

⚠️ 注意事项:
- 首次加载超长上下文模型时可能长时间卡在“Compiling graph…”阶段
- 建议先以 --max-model-len 4096 成功启动后再逐步调高至 32K、128K 甚至 256K


常见问题排查与解决方案

❌ 报错:“Ascend config is not initialized. Please call init_ascend_config first.”

  • 现象:启动时报此错误,无法加载模型。
  • 原因:未正确初始化 Ascend 环境。
  • 解决方法
  • 确保已执行 source /usr/local/Ascend/8.3.RC1/bisheng_toolkit/set_env.sh
  • 确认 Triton Ascend WHL 包已安装
  • 添加 --enforce-eager 参数绕过图编译阶段

❌ 内存充足但启动失败 / 卡在编译阶段

  • 现象:日志停在“Compiling graph…”或提示 OOM。
  • 根本原因:图编译期间临时占用大量内存,即使物理显存足够也可能触发限制。
  • 应对策略
  • 降低 --max-model-len 至 4096 或 32768
  • 设置 --gpu-memory-utilization 0.6~0.7
  • 32GB 卡使用 --tensor-parallel-size 8,64GB 卡使用 --tensor-parallel-size 4

❌ 模型下载慢或频繁超时

  • 现象huggingface_hub 下载中断或极慢。
  • 优化手段
    bash export VLLM_USE_MODELSCOPE=true
  • 切换至 ModelScope 源可大幅提升国内访问速度
  • 或提前在宿主机下载模型至 .cache/huggingface 并挂载进容器

结语

通过 vLLM-Ascend 部署 Qwen3-Next 大模型,不仅实现了高性能推理,更展现了国产软硬协同的技术实力。无论是采用 Docker 快速部署,还是通过裸机方式精细调优,都可以在 Ascend 910B 上获得远超传统方案的吞吐表现。

更重要的是,这种组合具备良好的工程可扩展性:OpenAI 兼容接口让应用迁移变得简单,PagedAttention 和连续批处理保障了高并发下的稳定性,而 MTP 与 MoE 支持则为未来模型升级预留了空间。对于正在构建私有化大模型服务平台的企业而言,这是一套值得信赖的生产级解决方案。

随着国产算力生态不断完善,我们有理由相信,这样的技术栈将成为中国 AI 落地的核心基础设施之一。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐