背景:
针对最近发布的OpenPangu7B模型在昇腾310P上的模型适配工作,为部署提供有效参考。
模型介绍:
openPangu-Embedded-7B-V1.1 是基于昇腾 NPU 从零训练的高效大语言模型,参数量为 7B(不含词表Embedding)。openPangu-Embedded-7B-V1.1 训练了约 25T tokens,具备快慢思考融合与自适应切换能力。
openPangu-Embedded-7B-V1.1模型权重:https://ai.gitcode.com/ascend-tribe/openPangu-Embedded-7B-V1.1
| 软件 | 版本 | 下载链接 |
|---|---|---|
| CANN | 8.2.RC1 | https://www.hiascend.com/developer/download/community/result?cann=8.2&product=cann |
| vLLM Ascend | 0.10.0.rc1 | 网站: quay.io/ascend/vllm-ascend:v0.10.0rc1-310p 下载命令: docker pull quay.io/ascend/vllm-ascend:v0.10.0rc1-310p |
(1) 安装昇腾310P的CANN版本,参考下面链接下载对应310P的版本后安装
https://www.hiascend.com/developer/download/community/result?cann=8.2&product=cann

(2) 安装310P的驱动和固件,参考下面链接下载后安装驱动和固件
https://www.hiascend.com/hardware/firmware-drivers/community?product=1&model=20&cann=8.2.RC1&driver=Ascend+HDK+25.2.0
(1) 下载完昇腾310P的vLLM Ascend镜像后,上传到对应昇腾310P的服务器上,并且加载这个镜像,参考命令:
docker load xxx.tar
(2) 将openPangu-Embedded-7B-V1.1的模型权重文件上传到服务器,并且解压到存储空闲的目录,例如/opt/models
(3) 启动vLLM Ascend的docker镜像,参考命令:
export IMAGE=quay.io/ascend/vllm-ascend:v0.10.0rc1-310p
docker run
--name vllm-openpangu-7b
--shm-size=500g
--net=host -it -d
--privileged=true
--device /dev/davinci0
--device /dev/davinci1
--device /dev/davinci2
--device /dev/davinci3
--device /dev/davinci4
--device /dev/davinci5
--device /dev/davinci6
--device /dev/davinci7
--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
-v /opt/models:/home/models
-p 8000:8000
-it $IMAGE bash
参数简单说明:以下参数可根据实际情况修改
--device /dev/davinci0代表是昇腾NPU的设备文件挂载到容器里,使得容器内的应用程序(如深度学习框架)可以直接访问昇腾硬件进行加速计算,设备不同数字编号可能有所差异,可以到/dev目录下查看有几张310P的卡,参考命令写了8张310P卡。
-v /opt/models:/home/models 其中/opt/models是模型权重文件放置操作系统的目录,可以根据实际情况修改,/home/models是容器里面的挂载目录
(4)进入容器
docker exec -itu root vllm-openpangu-7b bash
(5)设置环境变量
vi ~/.bashrc
添加以下环境变量:
export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True #说明:其作用是启动可扩展内存段机制,以优化显存管理并提升NPU的显存利用率
export VLLM_ASCEND_ENABLE_TOPK_OPTIMIZE=1 #说明:其作用是通过优化Top-K搜索算法,显著提升推理性能和吞吐量
export ASCEND_RT_VISIBLE_DEVICES=0 #说明:模型使用哪张310P卡的设置,如果需要多张卡,可以用英文逗号隔开,例如0,1等
添加完后保存,并且生效环境变量
source ~/.bashrc
(6)启动模型
进入目录:
cd /home/models
启动模型:这个命令可以用来调试是否可以正常启动。
vllm serve openPangu-Embbedded-7B-V1.1
-tp 2
--trust-remote-code
--enforce-eager
--dtype float16
--no-enable-prefix-caching
--no-enable-chunked-prefill
--compilation-config '{"custom_ops":["none", "+rms_norm", "+rotary_embedding"]}'
--additional-config '{"ascend_scheduler_config":{"enabled":true},"enable_weight_nz_layout":true}'
--gpu-memory-utilization=0.8
参数说明
--gpu-memory-utilization=0.8 这个参数为可选参数,可以配置也可以不配置,当因为显存问题导致系统重启,可以配置0.8或者再略低一点来解决。
性能优化脚本通过Transformers模型迁移至vLLM推理引擎:Transformers->vLLM
(1)将modeling_openpangu_dense.py,vllm_serve.py放到系统模型权重文件目录下,上面步骤是放在 /opt/models的,最终映射目录是在docker镜像里面的/home/models目录
说明:脚本modeling_openpangu_dense.py,vllm_serve.py可以在https://ai.gitcode.com/Ascend-SACT/openPangu-Embedded-7B-V1.1_310P/tree/main下载
(2)登录docker镜像后,cd /home/models
(3)启动模型
python vllm_serve.py --model /data/weights/openpangu-embedded-7b-model
-tp 2
--trust-remote-code
--enforce-eager
--dtype float16
--no-enable-prefix-caching
--no-enable-chunked-prefill
--compilation-config '{"custom_ops":["none", "+rms_norm", "+rotary_embedding"]}'
--additional-config '{"ascend_scheduler_config":{"enabled":true},"enable_weight_nz_layout":true}'
--gpu-memory-utilization=0.8