openPangu-Embedded-7B-V1.1是基于昇腾NPU从零训练的高效大语言模型,具备快慢思考融合与自适应切换能力。本教程将详细介绍如何将PyTorch格式的模型转换为昇腾OM格式,实现高效的昇腾NPU推理部署。🎯

【免费下载链接】openPangu-Embedded-7B-V1.1 昇腾原生的开源盘古 Embedded-7B-V1.1 语言模型 【免费下载链接】openPangu-Embedded-7B-V1.1 项目地址: https://ai.gitcode.com/ascend-tribe/openPangu-Embedded-7B-V1.1

📋 模型转换准备工作

环境配置要求

在开始模型转换前,需要确保环境满足以下要求:

  • 硬件规格: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上获得高效的推理性能。🚀

【免费下载链接】openPangu-Embedded-7B-V1.1 昇腾原生的开源盘古 Embedded-7B-V1.1 语言模型 【免费下载链接】openPangu-Embedded-7B-V1.1 项目地址: https://ai.gitcode.com/ascend-tribe/openPangu-Embedded-7B-V1.1

Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐