news 2026/5/1 9:21:59

vLLM-Ascend 入门实战:昇腾 NPU 上的大模型推理部署全攻略

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
vLLM-Ascend 入门实战:昇腾 NPU 上的大模型推理部署全攻略

前言

近两年大语言模型的推理需求爆发式增长,推理引擎成为了AI工程落地的核心基础设施。举个例子,爆发式增长的推理需求相当于一群车过马路,传统的推理引擎就是“单车道马路”,容易拥堵。而vLLM是业界领先的开源推理框架,相当于“十车道高速公路”,让AI的响应更快更迅速、成本也更低。

为了支持昇腾AI芯片生态,vLLM社区在去年年底推出了vLLM-Ascend硬件插件‌。就像是为昇腾芯片量身定制的“适配器”,巴适得很。截至 2025 年 12 月,vLLM-Ascend 已支持 Llama、Qwen、ChatGLM、Mixtral 等主流架构,并具备 Expert Parallelism(EP)、多模态、Embedding 模型等高级能力。

本篇文章带大家深入了解一下vLLM-Ascend 开源仓库的结构,并且实际体验一下环境部署、基础配置与推理测试。

vLLM-Ascend 开源仓

开源仓的git地址是https://github.com/vllm-project/vllm-ascend

可以看到每天都在更新,还是非常的给力。

vLLM-Ascend 是 vLLM 官方维护的硬件插件仓库,采用“主干对齐 + 插件扩展”的开发模式。其代码结构在保持与上游 vLLM 高度兼容的同时,新增了针对 Ascend NPU 的适配层。

关键机制说明

  • 插件化架构:通过vllm_ascend/目录实现硬件抽象层(HAL),在运行时动态替换 vLLM 默认的 CUDA 后端。
  • 算子融合csrc/ascend/中使用Ascend CACL C++ API编写高性能算子,并通过 PyTorch CustomOp 注册。
  • 版本对齐:每个 release tag(如v0.9.1)严格对应上游 vLLM 同名版本,确保 API 兼容性。
  • CI 验证:main 分支持续通过 Ascend CI 测试,保障质量。

注意注意:大家不用修改原有的vLLM调用代码,只需要安装vllm-ascend,系统自动会启用Ascend后端。

版本与分支策略

项目采用清晰的版本管理策略,确保与上游 vLLM 主库同步:

分支/标签

状态

说明

main

维护中

对应 vLLMmain分支,持续集成测试,用于开发最新特性。

v0.9.1-dev

维护中

对应 vLLM 官方v0.9.1版本,提供稳定生产级支持。

v0.7.3-dev

仅修复文档

旧版本,不再新增功能。

rfc/feature-name

临时

用于特定 RFC 或新功能的协作开发。

重要提示:我们一定要使用与插件分支严格匹配的 vLLM 主库源码(通常为releases/vX.Y.Z),不能直接pip install vllm

环境部署全流程

这次环境部署,我在gitcode上面进行。

首先在gitcode上面找到“我的Notebook”

点激活

资源选择如下

创建好如下

部署以不同场景划分为:离线在线、单机、多机、PD混布、PD分离。这次就用单机来演示。

点击Terminal,打开一个终端。

环境检查与验证

在开始之前,请确保我们的系统满足以下条件:

1. 硬件

  • 华为 Atlas 系列 NPU 设备,例如:
    • Atlas 800I A2 / A3 (推理)
    • Atlas A2 / A3 (训练)

2. 软件

  • 操作系统:Linux(推荐 EulerOS、CentOS 或 Ubuntu)
  • Python 版本>=3.9, <3.12(本文使用 Python 3.11)
  • CANN 版本>=8.2.rc1(请根据你的 NPU 驱动版本安装对应 CANN)
  • PyTorch & torch-npu:需使用 Ascend 官方提供的版本

然后可以通过以下命令检查 NPU 状态

npu-smi info # 应显示 1 张 910B 卡 python -c "import torch; import torch_npu; print(torch.npu.is_available())" # 应输出 True

安装 vLLM 与 vLLM-Ascend

1、设置 pip 源(加速)

pip config set global.extra-index-url "https://mirrors.huaweicloud.com/ascend/repos/pypi"

2、克隆并安装 vLLM(v0.9.1)

git clone https://github.com/vllm-project/vllm.git cd vllm && git checkout releases/v0.9.1 VLLM_TARGET_DEVICE=empty pip install -v -e .

3、克隆并安装 vLLM-Ascend(v0.9.1-dev)

cd .. git clone https://github.com/vllm-project/vllm-ascend.git cd vllm-ascend && git checkout v0.9.1-dev pip install -v -e .

4、验证插件是否加载成功

python -c "import vllm_ascend; print('✅ vLLM-Ascend plugin loaded!')"

如果无报错,说明安装成功!

下载模型与推理测试

点开notebook的python

下载 Qwen2.5-7B-Instruct 模型

from modelscope import snapshot_download model_dir = snapshot_download('Qwen/Qwen2.5-7B-Instruct', cache_dir='./models') print(f"Model saved to: {model_dir}")

模型验证测试

curl http:// `ip:port` /v1/completions -H "Content-Type: application/json" -d '{"model": "qwen-2.5b", "prompt": "Beijing is a","max_tokens": 5,"temperature": 0}'

前置准备使用gsm8k数据集: https://github.com/openai/grade-school-math 将解压后的gsm8k/文件夹部署到AISBench评测工具根路径下的ais_bench/datasets文件夹下

查找配置文件位置:

ais_bench --models vllm_api_general_chat --datasets demo_gsm8k_gen_4_shot_cot_chat_prompt --search

修改查找到的vllm_api_general_chat.py内容(主要修改path、model、ip、port)

from ais_bench.benchmark.models import VLLMCustomAPIChat models = [ dict( attr="service", type=VLLMCustomAPIChat, abbr='vllm-api-general-chat', path="", model="qwen-2.5b", # 指定服务端已加载模型名称,依据实际VLLM推理服务拉取的模型名称配置(配置成空字符串会自动获取) request_rate = 0, retry = 2, host_ip = "localhost", # 指定推理服务的IP host_port = 8080, # 指定推理服务的端口 max_out_len = 512, batch_size=1, generation_kwargs = dict( temperature = 0.5, top_k = 10, top_p = 0.95, seed = None, repetition_penalty = 1.03, ) ) ]

执行命令:设置在*号卡运行,使用,隔开,使用几张卡就写几个

export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7,8

第一次执行建议加上--debug,可以输出具体日志

ais_bench --models vllm_api_general_chat --datasets demo_gsm8k_gen_4_shot_cot_chat_prompt --debug ais_bench --models vllm_api_general_chat --datasets demo_gsm8k_gen_4_shot_cot_chat_prompt --summarizer example

输出结果:

推理性能表现

以本次测试使用的Qwen2.5-7B-Instruct模型为例,在Atlas 800I A2(搭载 8×Ascend 910B)单机环境下,开启Continuous Batching + Expert Parallelism(EP)后,实测性能如下:

场景

Batch Size

平均首 Token 延迟 (ms)

平均吞吐量 (tokens/s)

单请求(无批处理)

1

~120 ms

~35 tokens/s

连续批处理(动态 batch=8)

动态

~140 ms

~280 tokens/s

开启 EP(8 专家并行)

动态

~160 ms

~320 tokens/s

💡 注意注意:以上数据基于max_tokens=512temperature=0.5、输入长度 ≈ 128 tokens 的典型对话场景,使用 AISBench 工具采集。

常见问题与调优建议

这次实验过程中还是遇到了不少问题,主要问题如下:

问题现象

根本原因

1.ImportError: cannot import name 'register_model_loader'

vllm-ascend插件(v0.9.1-dev分支)依赖 vLLM 主库中的特定 API,但系统中安装的是官方vllm==0.9.1(PyPI 版),该版本未包含 Ascend 所需的扩展接口

2.ModuleNotFoundError: No module named 'vllm._C'

官方 vLLM 编译时默认针对 CUDA,未为 Ascend 编译_C扩展模块;而vllm-ascend需要自己的 C++/NPU 后端实现。

3. Git 分支混乱:执行git pull origin v0.9.1-dev失败

本地处于main分支,远程v0.9.1-dev与之历史 divergent,Git 拒绝自动合并,导致你以为切换了分支,实际仍在main,从而加载了不兼容的插件代码。

4. 依赖冲突:compressed-tensors==0.10.1vs0.12.2

官方 vLLM 0.9.1 锁定旧版compressed-tensors,而vllm-ascend要求新版,造成 pip resolver 警告甚至运行时异常。

总结

vLLM-Ascend 作为 vLLM 官方支持的昇腾插件,标志着国产 AI 芯片在大模型推理领域的成熟与开放。通过本文的介绍,相信大家对于vLLM-Ascend有了一个深入的了解。本文参考了昇腾PAE案例库,推荐大家去学习学习。

未来,随着Expert Parallelism(EP)多模态支持量化推理的持续增强,vLLM-Ascend 定将进一步降低大模型在国产硬件上的应用门槛。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 23:23:19

基于SpringBoot+Vue的农业设备租赁系统管理系统设计与实现【Java+MySQL+MyBatis完整源码】

摘要 随着现代农业的快速发展&#xff0c;农业设备的智能化、高效化管理成为提升农业生产力的重要手段。传统的设备租赁管理模式存在信息不透明、管理效率低下等问题&#xff0c;亟需通过信息化手段优化业务流程。农业设备租赁系统通过整合设备资源、优化租赁流程&#xff0c;能…

作者头像 李华
网站建设 2026/5/1 6:20:50

基于Java+SpringBoot+SSM,SpringCloud智能健身助手(源码+LW+调试文档+讲解等)/智能健身设备/健身智能助手/智能健身应用/健身智能伙伴/智能健身系统

博主介绍 &#x1f497;博主介绍&#xff1a;✌全栈领域优质创作者&#xff0c;专注于Java、小程序、Python技术领域和计算机毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅&#x1f447;&#x1f3fb; 2025-2026年最新1000个热门Java毕业设计选题…

作者头像 李华
网站建设 2026/5/1 0:09:06

基于Java+SpringBoot+SSM,SpringCloud电影院网上订票系统(源码+LW+调试文档+讲解等)/在线电影票预订平台/影院网络购票系统/电影票在线订购系统/电影院线上订票服务

博主介绍 &#x1f497;博主介绍&#xff1a;✌全栈领域优质创作者&#xff0c;专注于Java、小程序、Python技术领域和计算机毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅&#x1f447;&#x1f3fb; 2025-2026年最新1000个热门Java毕业设计选题…

作者头像 李华
网站建设 2026/5/1 6:21:16

GPT-SoVITS支持曲率引擎吗?超光速通信语音压缩

GPT-SoVITS 与未来通信&#xff1a;当语音压缩遇上星际想象 在人类探索深空的征程中&#xff0c;一个看似微小却极为关键的问题始终萦绕&#xff1a;如何让地球与火星基地之间的每一次对话&#xff0c;不只是冷冰冰的文字或断续的信号&#xff0c;而是熟悉的声音&#xff1f;设…

作者头像 李华
网站建设 2026/5/1 6:21:16

GPT-SoVITS训练数据多样性影响:单一vs多样语音样本

GPT-SoVITS训练数据多样性影响&#xff1a;单一vs多样语音样本 在虚拟主播24小时直播、AI亲人语音朗读消息、跨语言配音一键生成的今天&#xff0c;个性化语音合成已不再是实验室里的概念游戏。一个只需1分钟录音就能“复制”你声音的技术——GPT-SoVITS&#xff0c;正悄然改变…

作者头像 李华