ascend-tribe/openPangu-Embedded-7B-V1.1模型转换教程:从PyTorch到昇腾OM格式
openPangu-Embedded-7B-V1.1是基于昇腾NPU从零训练的高效大语言模型,具备快慢思考融合与自适应切换能力。本教程将详细介绍如何将PyTorch格式的模型转换为昇腾OM格式,实现高效的昇腾NPU推理部署。🎯## 📋 模型转换准备工作### 环境配置要求在开始模型转换前,需要确保环境满足以下要求:- **硬件规格**:Atlas 800T A2 (64GB)
openPangu-Embedded-7B-V1.1是基于昇腾NPU从零训练的高效大语言模型,具备快慢思考融合与自适应切换能力。本教程将详细介绍如何将PyTorch格式的模型转换为昇腾OM格式,实现高效的昇腾NPU推理部署。🎯
📋 模型转换准备工作
环境配置要求
在开始模型转换前,需要确保环境满足以下要求:
- 硬件规格:Atlas 800T A2 (64GB)
- 操作系统:Linux(推荐 openEuler>=24.03)
- 软件依赖:
- CANN==8.1.RC1
- python==3.10
- torch==2.1.0
- torch-npu==2.1.0.post12
- transformers==4.53.2
模型文件验证
首先需要验证下载的模型文件完整性:
#!/usr/bin/env bash
ARCH=$(uname -m)
MODEL_PATH="${TARGET_FOLDER}/${MODEL_FOLDER_PATH}"
cd "$MODEL_PATH" || exit 1
if [ "$ARCH" = "arm64" ]; then
sha256sum checklist.chk
else
sha256sum -c checklist.chk
fi
🔄 模型转换步骤详解
步骤1:加载原始PyTorch模型
使用transformers库加载openPangu-Embedded-7B-V1.1模型:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_local_path = "path_to_openPangu-Embedded-7B"
tokenizer = AutoTokenizer.from_pretrained(
model_local_path,
use_fast=False,
trust_remote_code=True,
local_files_only=True
)
model = AutoModelForCausalLM.from_pretrained(
model_local_path,
trust_remote_code=True,
torch_dtype="auto",
device_map="npu",
local_files_only=True
)
步骤2:配置模型转换参数
在模型转换过程中,需要配置以下关键参数:
- 输入形状:根据模型架构配置合适的输入形状
- 精度设置:支持FP16、BF16等多种精度
- 优化级别:选择适合的图优化级别
步骤3:执行模型转换
使用昇腾ATC工具进行模型转换:
atc --framework=5 --model=model.onnx --output=model_om --soc_version=Ascend310P
🚀 昇腾OM格式推理部署
单卡部署配置
对于单卡部署,可以使用以下配置:
export ASCEND_RT_VISIBLE_DEVICES=0
LOCAL_CKPT_DIR=/root/.cache/pangu_embedded_7b
SERVED_MODEL_NAME=pangu_embedded_7b
vllm serve $LOCAL_CKPT_DIR \
--served-model-name $SERVED_MODEL_NAME \
--tensor-parallel-size 1 \
--trust-remote-code \
--host 0.0.0.0 \
--port 8080 \
--max-num-seqs 32 \
--max-model-len 32768 \
--dtype bfloat16
多卡分布式部署
对于需要更高推理性能的场景,可以采用多卡分布式部署:
export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3
LOCAL_CKPT_DIR=/root/.cache/pangu_embedded_7b
SERVED_MODEL_NAME=pangu_embedded_7b
vllm serve $LOCAL_CKPT_DIR \
--served-model-name $SERVED_MODEL_NAME \
--tensor-parallel-size 4 \
--trust-remote-code \
--host $HOST \
--port $PORT \
--max-num-seqs 32 \
--max-model-len 32768 \
--max-num-batched-tokens 4096 \
--tokenizer-mode "slow" \
--dtype bfloat16 \
--distributed-executor-backend mp \
--gpu-memory-utilization 0.93
💡 模型推理测试
基础推理测试
转换完成后,可以通过以下方式进行推理测试:
curl http://${MASTER_NODE_IP}:${PORT}/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "'$SERVED_MODEL_NAME'",
"messages": [
{
"role": "user",
"content": "介绍一下大语言模型"
}
],
"max_tokens": 512,
"temperature": 0
}'
思考模式切换测试
openPangu-Embedded-7B-V1.1支持三种思考模式:
- 慢思考模式:默认模式,提供详细推理过程
- 快思考模式:在用户输入末尾添加
/no_think标记 - 自适应模式:在用户输入末尾添加
/auto_think标记
# 快思考模式
no_thinking_prompt = prompt + " /no_think"
# 自适应模式
auto_thinking_prompt = prompt + " /auto_think"
🔧 常见问题与解决方案
问题1:模型转换失败
解决方案:
- 检查CANN版本是否兼容
- 验证输入模型格式是否正确
- 确认NPU驱动安装完整
问题2:推理性能不佳
优化建议:
- 调整
--max-num-batched-tokens参数 - 优化
--gpu-memory-utilization设置 - 检查NPU资源分配情况
📊 性能优化建议
内存优化配置
- 合理设置
--gpu-memory-utilization参数 - 根据实际需求调整
--max-model-len - 优化批处理大小配置
推理加速技巧
- 使用合适的精度设置(BF16通常是不错的选择)
- 配置合适的并行策略
- 优化输入序列长度
通过本教程的详细步骤,您可以顺利完成openPangu-Embedded-7B-V1.1模型从PyTorch到昇腾OM格式的转换,并在昇腾NPU上获得高效的推理性能。🚀
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐


所有评论(0)