项目分享|vllm-ascend:国产化大模型部署利器
本文介绍了vLLM社区开源的昇腾NPU专用推理插件vllm-ascend,该插件遵循硬件可插拔设计,实现vLLM框架与昇腾NPU的无缝对接,支持Transformer、MoE、多模态等主流大模型。文章解析了其低迁移成本、多模型兼容、并行优化、国产化适配等核心优势,以及科研、企业部署、AI基础设施等应用场景,并提供了源码编译与Docker两种部署方式及基础模型、MoE模型的推理代码示例,为国产算力平
引言
在大模型国产化落地进程中,算力硬件与推理框架的适配是核心关键。vLLM作为业界领先的大模型推理框架,以高吞吐、低延迟著称,但原生不支持华为昇腾NPU。vllm-ascend项目的开源填补了这一空白,作为vLLM社区维护的硬件插件,它实现了vLLM框架与昇腾NPU的无缝对接,让Transformer、MoE、多模态等主流大模型能高效运行在国产算力平台上,为自主可控的大模型部署提供了关键支撑。本文将从项目概况、核心优势与应用、技术原理与部署实践三方面,全面解析这款国产化推理工具。
项目概况
vllm-ascend是vLLM社区推出的昇腾NPU专用硬件插件,基于Apache-2.0开源协议,目前在GitHub收获1.4k stars、574 forks,已迭代20个版本,最新稳定版为v0.9.1,最新候选版为v0.11.0rc1。该项目遵循vLLM社区的“硬件可插拔”设计原则,通过解耦昇腾NPU与vLLM框架的集成逻辑,提供了标准化的硬件适配接口,让开发者无需修改vLLM核心代码,即可在昇腾NPU上享受高效推理能力。
项目支持多种昇腾硬件型号,包括Atlas 800I A2/A3推理系列、Atlas A2/A3训练系列及Atlas 300I Duo(实验性支持),兼容Linux操作系统,要求Python 3.10-3.12、CANN 8.3.rc1以上版本,以及PyTorch 2.7.1与torch-npu 2.7.1配套环境。核心能力覆盖Transformer类、混合专家(MoE)、嵌入模型、多模态大模型等多种类型,已成功适配华为盘古Pro MoE 72B、DeepSeek-V3.2-Exp等超大规模模型,实现国产算力平台的高效部署。
项目采用分支化管理策略,main分支对应vLLM主分支并持续通过昇腾CI质量监控,同时维护多个版本对应的开发分支,支持bug修复与功能迭代,社区活跃度高,共有215位贡献者参与开发。
核心优势与应用场景
核心技术优势
- 无缝兼容vLLM生态,迁移成本极低:作为硬件插件而非独立框架,完美兼容vLLM的原生API与功能特性,开发者无需重构代码,仅需简单配置即可将原有vLLM推理任务迁移至昇腾NPU,降低技术迁移门槛。
- 多模型全面支持,覆盖全场景需求:支持Transformer、MoE、嵌入模型、多模态等主流开源大模型,包括DeepSeek-V3.2-Exp、Qwen2.5、盘古Pro MoE等,适配大模型推理的多样化场景,无需针对特定模型开发适配代码。
- 并行策略优化,充分释放昇腾算力:深度适配DP(数据并行)、EP(专家并行)等多种并行策略,通过Prefill调度分桶、灵衢互联与分层传输等技术降低调度开销,优化请求下发与系统建链环节,单机单卡Decode吞吐可达1920 token/s。
- 国产化适配完善,自主可控性强:基于昇腾NPU与CANN异构计算架构打造,全流程依托国产软硬件生态,支持自定义AscendC算子,可根据业务需求进行深度优化,满足企业级国产化部署的自主可控要求。
- 部署灵活多样,适配不同规模需求:支持单机部署与多机集群部署,适配CloudMatrix 384超节点与普通Atlas服务器等不同硬件配置,可通过量化策略(A8W8C16)平衡性能与显存占用,满足从小规模测试到大规模生产的全场景部署需求。
- 社区持续迭代,生态支持丰富:依托vLLM与昇腾双生态资源,提供完善的文档、示例代码与用户论坛支持,定期举办社区周会,快速响应开发者需求,已与LLaMA-Factory、TRL等工具链完成集成,形成完整的国产化大模型开发闭环。
典型应用场景
- 高校与科研机构的大模型研究:为科研人员提供国产化算力的高效推理方案,支持大模型预训练后的快速部署与验证,华中科技大学已基于该插件完成盘古Pro MoE 72B模型部署,面向师生开放科研服务。
- 企业级大模型国产化落地:金融、政务、能源等对数据安全有高要求的行业,可通过该插件在昇腾NPU上部署自主研发或开源大模型,实现推理任务的全流程国产化,保障数据安全与业务可控。
- AI基础设施搭建:算力服务商可基于该插件构建昇腾NPU的大模型推理平台,为客户提供高吞吐、低延迟的推理服务,支持多模型、多并发场景的高效调度。
- 多模态大模型部署:支持图像、语音等多模态大模型的推理需求,可应用于智能客服、内容生成、计算机视觉等场景,为国产化多模态应用提供算力支撑。
- MoE超大规模模型推理:针对DeepSeek-V3等MoE架构大模型,通过优化的EP并行策略与通信方案,解决超大参数模型的部署难题,在昇腾集群上实现高效推理。
- 教育与培训场景:为AI相关专业教学提供国产化算力实践平台,让学生在自主可控的环境中学习大模型推理部署技术,助力国产AI人才培养。
技术原理与部署实践
核心技术原理
vllm-ascend的核心技术围绕“昇腾硬件适配+vLLM功能兼容”展开,通过三层架构实现高效推理:
- 硬件抽象层:封装昇腾NPU的底层算力接口,包括设备管理、内存分配、流处理等基础操作,提供与CUDA兼容的标准化接口,确保vLLM框架无需感知底层硬件差异。
- 算子适配层:针对昇腾NPU的架构特性,优化实现vLLM核心算子,包括注意力计算、矩阵乘法、MoE路由等,采用A8W8C16量化策略(INT8数据类型计算,BF16存储),在保证精度的同时降低显存占用。
- 并行策略层:支持DP、EP等多种并行模式,针对昇腾集群的组网特点优化通信方案,采用AllGather替代传统Dispatch/Combine方案提升性能;通过PD分离部署解耦Prefill与Decode阶段的时延约束,优化大规模模型的调度效率。
项目还实现了内存溢出即时中断、自定义AscendC算子支持、IPv6代理兼容等增强功能,提升推理过程的稳定性与灵活性。
环境搭建与部署实践
1. 前置环境准备
确保已安装昇腾NPU驱动、CANN 8.3.rc1以上版本,以及Python 3.10-3.12环境,然后安装配套的PyTorch与torch-npu:
# 安装指定版本PyTorch与torch-npu
pip install torch==2.7.1 torchvision==0.21.0 torchaudio==2.7.1 --index-url https://download.pytorch.org/whl/cu118
pip install torch-npu==2.7.1
2. 项目安装(两种方式)
方式一:源码编译安装(推荐,支持自定义算子)
# 克隆项目仓库
git clone https://github.com/vllm-project/vllm-ascend.git
cd vllm-ascend
# 安装依赖
pip install -r requirements.txt
pip install -r requirements-dev.txt
# 编译安装
python setup.py develop
方式二:Docker容器安装(快速部署,避免环境冲突)
# 克隆项目仓库
git clone https://github.com/vllm-project/vllm-ascend.git
cd vllm-ascend
# 构建Docker镜像(以默认Dockerfile为例)
docker build -t vllm-ascend:latest .
# 或使用openEuler版本镜像
docker build -t vllm-ascend:openEuler -f Dockerfile.openEuler .
# 启动容器(映射端口与目录)
docker run -it --privileged --net=host --ipc=host -v /your/data:/data vllm-ascend:latest /bin/bash
3. 核心推理代码示例
示例1:基础模型推理(以Qwen2.5-0.5B-Instruct为例)
from vllm import LLM, SamplingParams
# 配置采样参数
sampling_params = SamplingParams(
temperature=0.7,
top_p=0.95,
max_tokens=512
)
# 初始化LLM(自动识别昇腾NPU)
llm = LLM(
model="Qwen/Qwen2.5-0.5B-Instruct",
tensor_parallel_size=1, # 根据显卡数量调整
trust_remote_code=True,
device="npu" # 指定使用昇腾NPU
)
# 输入提示词
prompts = [
"请介绍昇腾NPU的主要优势",
"解释什么是MoE架构大模型"
]
# 执行推理
outputs = llm.generate(prompts, sampling_params)
# 输出结果
for output in outputs:
prompt = output.prompt
generated_text = output.outputs[0].text
print(f"输入:{prompt}")
print(f"输出:{generated_text}\n")
示例2:MoE模型大规模并行推理(参考盘古Pro MoE 72B部署)
from vllm import LLM, SamplingParams
# 配置采样参数
sampling_params = SamplingParams(
temperature=0.8,
top_p=0.9,
max_tokens=1024
)
# 初始化LLM(采用EP并行策略)
llm = LLM(
model="huawei/Pangu-Pro-MoE-72B",
tensor_parallel_size=8, # 根据集群配置调整
pipeline_parallel_size=2,
expert_parallel_size=4, # 启用MoE专家并行
trust_remote_code=True,
device="npu",
quantization="A8W8C16" # 启用量化策略
)
# 输入复杂任务提示词
prompt = "分析当前国内人工智能产业发展现状,重点说明国产算力与大模型的协同进展"
# 执行推理
outputs = llm.generate(prompt, sampling_params)
# 输出结果
print(f"输入:{prompt}")
print(f"输出:{outputs[0].outputs[0].text}")
4. 关键配置说明
- 并行策略选择:小规模模型推荐使用DP并行,MoE模型建议启用EP并行,超大规模模型可组合DP+EP+Pipeline并行;
- 量化配置:通过
quantization="A8W8C16"启用量化,平衡性能与显存,适合大模型部署; - 设备指定:通过
device="npu"明确使用昇腾NPU,无需额外环境变量配置; - 自定义算子:如需添加自定义AscendC算子,可放置在
csrc目录下,通过CMake编译集成。
注意事项
- 环境兼容性:严格匹配PyTorch与torch-npu版本(均为2.7.1),CANN版本需≥8.3.rc1,否则可能出现兼容性问题;
- 硬件资源规划:部署超大规模MoE模型时,需根据模型参数规模与并行策略规划昇腾NPU数量,确保显存与算力充足;
- 性能优化:多机部署时建议采用高速网络互联,通过灵衢互联技术优化通信效率,提升集群推理性能;
- 版本选择:生产环境建议使用稳定版v0.9.1,开发测试可尝试v0.11.0rc1获取新特性,避免使用未维护的旧分支。
该项目及相关内容已AladdinEdu课题广场同步发布,欢迎前往了解更多技术实现与资源
项目地址:AladdinEdu课题广场
更多推荐



所有评论(0)