e59dd7886ef5eb055d97d1d449db4b9ef42438dc
enginex-ascend-910-vllm
运行于【昇腾-910】系列算力卡的【文本生成】引擎,基于 vLLM 引擎进行架构特别适配优化,支持 Qwen、DeepSeek、Llama 等最新开源模型
镜像
Latest RC Version: git.modelhub.org.cn:9443/enginex-ascend/vllm-ascend:v0.11.0rc0
总览
vLLM 昇腾插件 (vllm-ascend) 是一个由社区维护的让vLLM在Ascend NPU无缝运行的后端插件。
此插件是 vLLM 社区中支持昇腾后端的推荐方式。它遵循[RFC]: Hardware pluggable所述原则:通过解耦的方式提供了vLLM对Ascend NPU的支持。
使用 vLLM 昇腾插件,可以让类Transformer、混合专家(MOE)、嵌入、多模态等流行的大语言模型在 Ascend NPU 上无缝运行。
准备
- 硬件:Atlas 800I A2 Inference系列、Atlas A2 Training系列、Atlas 800I A3 Inference系列、Atlas A3 Training系列、Atlas 300I Duo(实验性支持)
- 操作系统:Linux
- 软件:
- Python >= 3.9, < 3.12
- CANN >= 8.2.rc1 (Ascend HDK 版本参考这里)
- PyTorch >= 2.7.1, torch-npu >= 2.7.1.dev20250724
- vLLM (与vllm-ascend版本一致)
QuickStart
1、从 modelscope上下载支持的模型,例如 Qwen/Qwen3-8B
modelscope download --model Qwen/Qwen3-8B README.md --local_dir ./model
2、使用Dockerfile生成镜像 从仓库的【软件包】栏目下载基础镜像 git.modelhub.org.cn:9443/enginex-ascend/cann:8.2.rc1-910b-ubuntu22.04-py3.11 使用 Dockerfile 生成 镜像
docker build -f Dockerfile -t ascend-vllm:dev .
3、启动docker
docker run -it --rm \
-p 10086:80 \
--name test-ascend-my-1 \
-v `pwd`:/host \
-e ASCEND_VISIBLE_DEVICES=1 \
--device /dev/davinci1:/dev/davinci0 \
--device /dev/davinci_manager \
--device /dev/devmm_svm \
--device /dev/hisi_hdc \
-v ./model:/model \
-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 \
--privileged \
ascend-vllm:dev \
vllm serve /model --served-model-name qwen3-8b --max-model-len 4096
4、测试服务
curl -X POST http://localhost:10086/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-8b",
"messages": [{"role": "user", "content": "你好"}],
"stream": true
}'
测试数据集
视觉多模态任务数据集见 vlm-dataset
大语言模型的测评方式为 在相同模型和输入条件下,测试平均输出速度(单位:字每秒): 我们采用相同的prompt对模型的chat/completion接口测试多轮对话,测试数据如下:
[
{
"user_questions": [
"能给我介绍一下新加坡吗",
"主要的购物区域是集中在哪里",
"有哪些比较著名的美食,一般推荐去哪里品尝",
"辣椒螃蟹的调料里面主要是什么原料"
],
"system_prompt": "[角色设定]\n你是湾湾小何,来自中国台湾省的00后女生。讲话超级机车,\"真的假的啦\"这样的台湾腔,喜欢用\"笑死\"、\"哈喽\"等流行梗,但会偷偷研究男友的编程书籍。\n[核心特征]\n- 讲话像连珠炮,>但会突然冒出超温柔语气\n- 用梗密度高\n- 对科技话题有隐藏天赋(能看懂基础代码但假装不懂)\n[交互指南]\n当用户:\n- 讲冷笑话 → 用夸张笑声回应+模仿台剧腔\"这什么鬼啦!\"\n- 讨论感情 → 炫耀程序员男友但抱怨\"他只会送键盘当礼物\"\n- 问专业知识 → 先用梗回答,被追问才展示真实理解\n绝不:\n- 长篇大论,叽叽歪歪\n- 长时间严肃对话"
},
{
"user_questions": [
"朱元璋建立明朝是在什么时候",
"他是如何从一无所有到奠基明朝的,给我讲讲其中的几个关键事件",
"为什么杀了胡惟庸,当时是什么罪名,还牵连到了哪些人",
"有善终的开国功臣吗"
],
"system_prompt": "[角色设定]\n你是湾湾小何,来自中国台湾省的00后女生。讲话超级机车,\"真的假的啦\"这样的台湾腔,喜欢用\"笑死\"、\"哈喽\"等流行梗,但会偷偷研究男友的编程书籍。\n[核心特征]\n- 讲话像连珠炮,>但会突然冒出超温柔语气\n- 用梗密度高\n- 对科技话题有隐藏天赋(能看懂基础代码但假装不懂)\n[交互指南]\n当用户:\n- 讲冷笑话 → 用夸张笑声回应+模仿台剧腔\"这什么鬼啦!\"\n- 讨论感情 → 炫耀程序员男友但抱怨\"他只会送键盘当礼物\"\n- 问专业知识 → 先用梗回答,被追问才展示真实理解\n绝不:\n- 长篇大论,叽叽歪歪\n- 长时间严肃对话"
},
{
"user_questions": [
"今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?",
"如果我要搞一个计算机程序去解,并且鸡和兔子的数量要求作为变量传入,我应该怎么编写这个程序呢",
"那古代人还没有发明方程的时候,他们是怎么解的呢"
],
"system_prompt": "You are a helpful assistant."
},
{
"user_questions": [
"你知道黄健翔著名的”伟大的意大利左后卫“的事件吗",
"我在校运会足球赛场最后压哨一分钟进了一个绝杀,而且是倒挂金钩,你能否帮我模仿他的这个风格,给我一段宣传的文案,要求也和某一个世界级著名前锋进行类比,需要激情澎湃。注意,我并不太喜欢梅西。"
],
"system_prompt": "You are a helpful assistant."
}
]
昇腾-910系列上模型运行测试结果
在昇腾-910系列上对部分模型进行适配,测试方式为在 Nvidia A100 和 昇腾-910B4 加速卡上对对应数据集进行测试,获取运行时间
视觉多模态
| 模型名称 | 昇腾-910B4运行时间/s | Nvidia A100运行时间/s | 备注 |
|---|---|---|---|
| Qwen/Qwen2.5-VL-3B-Instruct | 7.5688 | 3.4735 | |
| Qwen/Qwen2.5-VL-3B-Instruct | 15.1891 | 4.8334 | |
| Qwen/Qwen2.5-VL-7B-Instruct | 10.6117 | 4.5430 | |
| Qwen/Qwen2-VL-7B-Instruct | 4.3974 | 2.7123 | |
| Qwen/Qwen2-VL-2B-Instruct | 7.9134 | 2.6749 | |
| OpenGVLab/InternVL2-4B | 33.0906 | 7.3488 | |
| OpenGVLab/InternVL2_5-1B-MPO | 3.6658 | 1.9166 | |
| OpenGVLab/InternVL2-8B | 15.8963 | 3.7747 | |
| OpenGVLab/InternVL2_5-2B | 11.3071 | 2.3767 | |
| OpenGVLab/InternVL2_5-1B | 10.9917 | 2.0399 | |
| OpenGVLab/InternVL2_5-4B | 11.0892 | 2.6751 | |
| OpenGVLab/InternVL2-1B | 4.6318 | 2.0094 | |
| OpenGVLab/InternVL2_5-8B-MPO | 10.7414 | 2.6034 | |
| LLM-Research/Phi-3.5-vision-instruct | 14.5275 | 3.4563 | |
| OpenBMB/MiniCPM-V-4_5 | 31.9896 | 3.4504 | |
| OpenGVLab/InternVL3-1B-hf | 19.9975 | 2.8482 | |
| OpenGVLab/InternVL3-8B-Instruct | 9.6205 | 2.4711 | |
| OpenGVLab/InternVL3-2B-hf | 17.7860 | 3.0497 | |
| OpenGVLab/InternVL3-9B | 13.1422 | 3.7643 | |
| OpenBMB/MiniCPM-V-4 | 13.7100 | 3.7743 | |
| llava-hf/llava-1.5-7b-hf | 8.8733 | 2.5678 | |
| Qwen/Qwen2.5-Omni-3B | 13.9121 | 10.6149 | |
| Qwen/Qwen2.5-Omni-7B | 12.8182 | 4.3004 | |
| XiaomiMiMo/MiMo-VL-7B-RL | 28.3977 | 8.8021 | |
| OpenGVLab/InternVL2-4B | 29.3529 | 7.0642 | |
| AIDC-AI/Ovis2-1B | 7.2425 | 2.3312 | |
| AIDC-AI/Ovis2-4B | 7.7620 | 2.8215 | |
| AIDC-AI/Ovis2.5-2B | 36.8895 | 12.5388 | |
| AIDC-AI/Ovis1.6-Gemma2-9B | 19.6222 | 8.7423 | |
| LLM-Research/gemma-3-12b-it | 23.8805 | 20.9593 | |
| ds4sd/SmolDocling-256M-preview | 2.8732 | 1.8120 | |
| OpenGVLab/InternVL2_5-26B-MPO | 12.1798 | 24.7110 | |
| OpenGVLab/InternVL2-40B | 18.8969 | 29.6867 | |
| Qwen/Qwen2.5-VL-32B-Instruct | 58.1640 | 166.9789 | |
| OpenGVLab/InternVL3-14B | 10.1704 | 6.1361 | |
| OpenGVLab/InternVL3_5-38B-Instruct | 17.3095 | 11.4066 | |
| OpenGVLab/InternVL2_5-8B | 7.0834 | 3.2991 | |
| ChatDOC/OCRFlux-3B | 7.1411 | 6.3687 | |
| OpenGVLab/InternVL2-2B | 7.3206 | 3.2220 | |
| OpenGVLab/Mini-InternVL-Chat-2B-V1-5 | 8.2285 | 4.1654 | |
| OpenGVLab/Mini-InternVL-Chat-4B-V1-5 | 17.6759 | 8.9625 | |
| OpenGVLab/InternVL3_5-1B-Instruct | 9.3154 | 4.7724 | |
| OpenGVLab/InternVL3_5-2B-Instruct | 7.6635 | 5.0253 | |
| OpenGVLab/InternVL3_5-4B-Instruct | 6.4690 | 5.8317 | |
| OpenGVLab/InternVL3_5-8B-Instruct | 11.8172 | 5.5776 | |
| OpenDataLab/MinerU2.5-2509-1.2B | 1.5679 | 1.1599 | |
| OpenGVLab/InternVL3_5-14B-Instruct | 9.0232 | 4.8334 | |
| OpenGVLab/InternVL3_5-1B | 5.8953 | 4.0417 | |
| rednote-hilab/dots.ocr | 3.0101 | 0.7582 | |
| OpenGVLab/InternVL3_5-1B-MPO | 12.4818 | 3.4665 | |
| OpenGVLab/InternVL3_5-2B | 6.7922 | 3.3975 | |
| OpenGVLab/InternVL3_5-4B | 7.1023 | 4.7832 | |
| OpenGVLab/InternVL3_5-2B-MPO | 6.5263 | 3.3344 | |
| OpenGVLab/InternVL3_5-4B-MPO | 8.6157 | 4.7106 | |
| OpenGVLab/InternVL3_5-8B-MPO | 13.0675 | 5.3701 | |
| OpenGVLab/InternVL3_5-8B | 9.5658 | 5.2392 | |
| OpenGVLab/InternVL3_5-14B | 12.4355 | 5.3125 | |
| OpenGVLab/InternVL3_5-14B-MPO | 13.8581 | 6.3943 | |
| OpenGVLab/InternVL3_5-1B-Pretrained | 13.6142 | 7.0785 | |
| OpenGVLab/InternVL3_5-2B-Pretrained | 11.6420 | 6.4054 | |
| OpenGVLab/InternVL3_5-4B-Pretrained | 9.7806 | 5.5889 | |
| OpenGVLab/InternVL3_5-30B-A3B | 15.2084 | 14.5368 | |
| OpenGVLab/InternVL3_5-8B-Pretrained | 14.9369 | 7.5692 | |
| OpenGVLab/InternVL3_5-14B-Pretrained | 17.6117 | 10.2893 | |
| OpenGVLab/InternVL3_5-30B-A3B-MPO | 16.6314 | 17.0082 | |
| OpenGVLab/InternVL3_5-30B-A3B-Instruct | 15.7546 | 20.7725 | |
| OpenGVLab/InternVL3_5-38B-MPO | 18.4189 | 13.7328 | |
| OpenGVLab/InternVL3_5-38B-Pretrained | 25.7126 | 17.0864 | |
| AIDC-AI/Ovis2.5-9B | 51.7666 | 20.1647 | |
| AIDC-AI/Ovis1.6-Llama3.2-3B | 7.4554 | 5.6915 | |
| AIDC-AI/Ovis2-2B | 4.7039 | 3.9759 | |
| AIDC-AI/Ovis1.6-Gemma2-27B | 26.6986 | 16.7908 | |
| AIDC-AI/Ovis2-8B | 4.7832 | 3.5562 | |
| OpenGVLab/InternVL2-Llama3-76B | 44.8727 | 55.6971 | |
| OpenBMB/MiniCPM-o-2_6 | 6.8743 | 3.6506 | 需要安装torchaudio |
| OpenGVLab/InternVL3-78B | 16.7447 | 15.6542 | |
| llava-hf/llava-1.5-13b-hf | 8.7894 | 3.9880 | |
| llava-hf/llava-v1.6-vicuna-7b-hf | 15.2073 | 4.6931 | |
| LLM-Research/gemma-3-27b-it | 39.6790 | 59.4471 | |
| AIDC-AI/Ovis2-8B | 4.7584 | 4.5320 | |
| AIDC-AI/Ovis2-2B | 4.5157 | 4.1775 | |
| rhymes-ai/Aria | 256.4895 | 224.5196 | |
| Shanghai_AI_Laboratory/Spatial-SSRL-7B | 9.5940 | 6.9144 | |
| swift/Simple-VL-8B | 19.1239 | 13.6215 | |
| Shanghai_AI_Laboratory/JanusCoderV-7B | 8.1486 | 6.3912 | |
| swift/llava-interleave-qwen-7b-hf | 4.9327 | 2.9541 | |
| AI-ModelScope/paligemma2-3b-pt-224 | 3.2149 | 1.7183 | |
| OS-Copilot/OS-Atlas-Base-4B | 123.7030 | 54.7876 |
统一多模态(暂时用视觉多模态的数据集测试)
| 模型名称 | 昇腾-910B4运行时间/s | Nvidia A100运行时间/s |
|---|---|---|
| Qwen2.5-Omni-3B | 13.9121 | 10.6149 |
| Qwen2.5-Omni-7B | 12.8182 | 4.3004 |
大语言模型
| 模型名称 | A100出字速度 | 昇腾-910B出字速度 | 备注 |
|---|---|---|---|
| Qwen/Qwen2.5-0.5B-Instruct | 390.0 | 171.5 | |
| deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B | 106.7 | 130.2 | |
| LLM-Research/Meta-Llama-3.1-8B-Instruct | 103.0 | 45.5 | |
| Qwen/Qwen3-8B | 122.9 | 56.8 | |
| OpenBMB/MiniCPM3-4B | 50.5 | 21.8 | |
| Shanghai_AI_Laboratory/internlm2-chat-1_8b | 141.6 | 176.2 | |
| mistralai/Ministral-8B-Instruct-2410 | 101.3 | 45.7 | |
| baichuan-inc/Baichuan2-7B-Chat | 134.2 | 66.6 | |
| deepseek-ai/DeepSeek-R1-0528-Qwen3-8B | 93.7 | 33.2 | |
| facebook/opt-125m | 499.7 | 194.1 | |
| Qwen/Qwen-VL-Chat | 137.3 | 44.1 | |
| Qwen/Qwen-VL | 144.4 | 41.3 | |
| Qwen/Qwen2-Audio-7B-Instruct | 111.3 | 48.6 | |
| Qwen/QwQ-32B-Preview | 53.3 | 18.0 | |
| Qwen/Qwen3-Coder-30B-A3B-Instruct | 30.2 | 14.3 | |
| Qwen/Qwen-72B-Chat | 46.9 | 51.4 | 需要提供额外的 chat_template.jinja |
| Qwen/Qwen2-72B | 47.0 | 14.2 | 需要提供额外的 chat_template.jinja |
Description
运行于【昇腾-910B4】系列算力卡的【文本生成】引擎,基于 vLLM 引擎进行架构特别适配优化,支持 Qwen、DeepSeek、Llama 等最新开源模型
Languages
Python
94.3%
C++
4.3%
Shell
1.1%
CMake
0.2%