跳到主要内容
昇腾AI芯片与算子开发 · 更新于 2026年10月26日

5.3 vLLM-Ascend:在昇腾上跑通主流大模型推理

掌握 vLLM 官方社区维护的昇腾后端插件 vLLM-Ascend——安装、环境配置、模型部署与 OpenAI 兼容 API 使用,让主流大模型在昇腾 NPU 上开箱即用

vLLM-Ascend vLLM 大模型推理 OpenAI兼容API 昇腾

如果你想让 Qwen、Llama 等主流大模型「今天就跑在昇腾上」,vLLM-Ascend 是最短路径。它是 vLLM 官方社区维护的昇腾后端插件,让 vLLM 生态(引擎、API、工具链)无缝落到昇腾 NPU。这一章讲清它的安装、使用与迁移。

📑 目录


1. vLLM-Ascend 是什么

vLLM-Ascend 是 vLLM 项目的昇腾硬件插件(Hardware Backend / Plugin):

  • 由 vLLM 官方社区维护(vllm-project 组织下),持续跟进 vLLM 主线版本;
  • 把 vLLM 的引擎内核(PagedAttention、连续批处理、前缀缓存等)适配到昇腾 NPU;
  • 开发者用几乎和 NVIDIA 环境一样的方式跑 vLLM——命令、API、配置都高度一致。

定位类比:vLLM-Ascend ≈ vLLM 的「CUDA 换 NPU」适配层,生态体验最平滑。

2. 支持的硬件与软件版本

截至本文写作时(2026 年),vLLM-Ascend 的官方支持矩阵大致为(以仓库 README 为准):

硬件:

  • Atlas 800I A2 推理服务器(昇腾 910B 系)
  • Atlas 800I A3 推理服务器 / A3 训练系列(昇腾 910C 系)
  • Atlas 300I Duo 推理卡
  • 昇腾 AI 加速云服务器等

软件:

  • Python >= 3.10, < 3.13
  • CANN 9.1.0(对应 Ascend HDK 版本见 Release Notes)
  • PyTorch 2.10.0
  • TorchNPU 2.10.0.post4
  • vLLM 版本与 vllm-ascend 插件版本保持一致

以上为 vLLM-Ascend 官方 README 当前推荐的版本组合(2026 年),随 vLLM/CANN 发布节奏变动,部署前必须核对 vLLM-Ascend 仓库 README 的版本匹配表。

3. 安装与环境配置

# 1. 确保 CANN 与驱动固件已安装并 source 环境
source /usr/local/Ascend/ascend-toolkit/set_env.sh

# 2. 安装对应版本的 PyTorch 与 TorchNPU(以官方版本配套表为准)
pip install torch==2.10.0
pip install torch-npu==2.10.0.post4

# 3. 安装 vllm 与 vllm-ascend
pip install vllm
pip install vllm-ascend

验证安装:

python -c "import vllm, vllm_ascend; print('vllm-ascend ok')"
# 或用官方提供的快速验证脚本跑一个小模型

4. 部署一个推理服务

离线推理(Offline Inference)示例:

from vllm import LLM, SamplingParams
# 引入插件后,vllm 自动识别昇腾后端(VLLM_USE_V1 等配置按版本而定)
import vllm_ascend

llm = LLM(
    model="Qwen/Qwen2.5-7B-Instruct",
    dtype="bfloat16",
    max_model_len=8192,
    tensor_parallel_size=8,   # 多卡张量并行
    # 量化场景可加 quantization="awq" / "w8a8" 等
)

params = SamplingParams(temperature=0.7, max_tokens=256)
outputs = llm.generate(["介绍一下昇腾AI芯片", "写一首关于春天的诗"], params)
for out in outputs:
    print(out.outputs[0].text)

要点:除了 import vllm_ascend(激活后端)和部分硬件相关配置,其余 API 与 NVIDIA 环境完全一致——这就是 vLLM-Ascend 的设计目标。

5. 在线服务:OpenAI 兼容 API

启动一个 OpenAI 兼容的推理服务:

# 命令行启动(在 CANN 环境已 source 的前提下)
vllm serve Qwen/Qwen2.5-7B-Instruct \
    --dtype bfloat16 \
    --tensor-parallel-size 8 \
    --max-model-len 8192 \
    --port 8000

然后像调用 OpenAI API 一样调用:

from openai import OpenAI

client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY")

resp = client.chat.completions.create(
    model="Qwen/Qwen2.5-7B-Instruct",
    messages=[{"role": "user", "content": "介绍一下昇腾AI芯片"}],
)
print(resp.choices[0].message.content)

这样,现有的 LLM 应用(RAG、Agent、Chat 应用)几乎零成本切换到昇腾后端。

6. 关键配置与优化项

常用配置(以 vLLM-Ascend 官方文档为准):

配置作用建议
--dtype精度(bfloat16/fp16)默认 bf16,量化场景用 w8a8/fp8
--tensor-parallel-size张量并行卡数高频通信放机内,跨机要谨慎
--max-model-len最大序列长度与 KV Cache 显存预算联动
--quantization量化方案(awq/w8a8 等)结合模型可用权重选择
KV Cache 相关分页 block 大小、KV 量化大吞吐场景收益明显

调优思路:先确认单卡小 batch 延迟达标 → 再逐步增加并发看吞吐 → 显存受限时上 KV Cache 量化/更长 max-len 规划。

7. 从 NVIDIA 迁移的注意事项

NVIDIA 上跑过 vLLM 的团队,迁到昇腾只需注意几点:

  1. 硬件差异:单卡显存与带宽不同,TP 卡数与 KV Cache 预算要重新评估。
  2. 版本对齐:CANN/TorchNPU/vLLM-Ascend 版本必须按匹配表装,跳过容易踩坑。
  3. 算子支持:个别小众模型/算子可能未适配,优先选支持矩阵内的模型。
  4. 性能验证:用官方 Benchmark 与自己的服务指标(TTFT/TPOT)建立基线后再谈优化。
  5. 量化权重:确认所用模型权重格式(AWQ/FP8)在昇腾上的支持状态,必要时重新量化。

总结

  • vLLM-Ascend 是 vLLM 官方社区的昇腾后端插件,让主流大模型在昇腾上「开箱即用」。
  • 支持 Atlas A2/A3 训练与推理系列、300I Duo 等硬件,要求 CANN 9.1.0 + 对应 TorchNPU。
  • 部署 = 装插件 → vllm serve 启动 → OpenAI 兼容 API 调用,与 NVIDIA 环境几乎一致。
  • 迁移要点:版本匹配、TP 放机内、量化格式支持、先建基线再优化。

延伸阅读