720亿参数开源大模型来了!盘古Pro MoE昇腾平台部署全攻略

1. 开源里程碑:盘古Pro MoE模型正式发布

今日,昇腾社区宣布盘古Pro MoE大模型正式开源(提供源代码与权重文件)。该模型基于创新的MoGE架构设计,参数规模达到720亿,实际激活参数160亿,在保持高效计算特性的同时实现了复杂任务处理能力的跃升。本文将详细介绍如何通过昇腾MindIE推理引擎或vLLM+昇腾适配版框架,在Atlas 300I Duo与Atlas 800I A2两款硬件平台完成模型部署与推理验证,帮助开发者快速掌握新一代稀疏激活模型的实践方法。

2. 昇腾硬件环境下的部署实践指南

2.1 基础环境配置要求

硬件型号 推荐配置方案
Atlas 800I A2 4卡协同部署
Atlas 300I Duo 4卡8芯配置

这是一张印有华为标志的二维码图片,可用于扫描获取盘古Pro MoE模型相关资源或技术文档,与华为昇腾AI开发者社区相关。 扫描上图二维码可直达昇腾开发者社区的盘古Pro MoE专题页面,获取最新的模型更新与技术支持。这一资源入口整合了模型下载、文档教程和社区问答功能,为开发者提供一站式技术服务。

2.2 MindIE推理引擎部署流程

模型权重准备

通过以下仓库地址获取完整权重文件:https://gitcode.com/ascend-tribe/pangu-pro-moe-model
建议存放路径:/home/pangu-pro-moe-mode/(路径变更需同步修改后续配置文件)

系统环境检查

执行硬件状态查询命令确认驱动安装完整性:

npu-smi info

设置文件权限(非容器环境):

chown -R 1001:1001 /home/pangu-pro-moe-mode
chmod -R 750 /home/pangu-pro-moe-mode
容器化部署步骤
  1. 镜像获取
    访问华为企业技术支持网站申请MindIE 2.1.T16版本镜像,根据硬件型号选择匹配的Ubuntu 22.04 aarch64版本。权限审批通过后使用docker images命令验证本地镜像:

    docker images | grep mindie
    
  2. 容器启动参数
    执行以下命令创建特权容器(完整设备映射):

    docker run -itd --privileged --name=pangu_moe_service --net=host \
    --shm-size 500g \
    --device=/dev/davinci{0..7} \
    --device=/dev/davinci_manager --device=/dev/hisi_hdc --device=/dev/devmm_svm \
    -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
    -v /usr/local/Ascend/firmware:/usr/local/Ascend/firmware \
    -v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \
    -v /etc/hccn.conf:/etc/hccn.conf \
    -v /home/:/home/ \
    mindie:dev-xxx-xxx-xx-py311-ubuntu22.04-aarch64 bash
    
  3. 环境变量配置
    进入容器后加载昇腾工具链环境:

    docker exec -it pangu_moe_service bash
    source /usr/local/Ascend/ascend-toolkit/set_env.sh
    source /usr/local/Ascend/mindie/set_env.sh
    
服务化推理配置
  1. 内存优化设置

    export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True
    
  2. 模型参数调整
    编辑配置文件/usr/local/Ascend/mindie/latest/mindie-service/conf/config.json

    • 基础路径配置:
      "modelWeightPath": "/home/pangu-pro-moe-mode",
      "maxPrefillTokens": 2048
      
    • Atlas 800I A2并行策略:
      "tp": 1, "dp": 4, "moe_tp": 1, "moe_ep": 4
      
    • Atlas 300I Duo配置项:
      "tp": 4, "dp": 2, "moe_tp": 1, "moe_ep": 8, 
      "worldSize": 8, "npuDeviceIds": [[0,1,2,3,4,5,6,7]]
      
  3. 服务启动与验证

    export OMP_NUM_THREADS=1
    cd /usr/local/Ascend/mindie/latest/mindie-service/
    ./bin/mindieservice_daemon
    

    服务启动成功后通过curl验证:

    curl http://localhost:1025/infer \
    -H "Content-Type: application/json" \
    -d '{"inputs": "人工智能的未来发展方向是", "stream": false, "parameters": {"max_new_tokens": 1024}}'
    

2.3 vLLM框架部署方案

基础环境准备
  1. 权重文件部署
    同MindIE方案,权重文件存放于/home/pangu-pro-moe-mode/目录

  2. 系统配置检查

    npu-smi info  # 确认固件版本>=23.0.0
    export PYTORCH_NPU_ALLOC_CONF=max_split_size_mb:256
    
  3. 容器环境搭建
    根据硬件型号选择对应镜像:

    # Atlas 800I A2使用标准镜像
    export IMAGE=quay.io/ascend/vllm-ascend:v0.9.1rc1
    # Atlas 300I Duo使用专用镜像
    export IMAGE=quay.io/ascend/vllm-ascend:v0.9.1rc1-310p
    

    启动容器命令参考MindIE部署步骤,添加数据卷映射:

    -v /data/:/data/ \
    -v /var/log/npu/:/var/log/npu/ \
    
离线推理实现
  1. Atlas 800I A2部署脚本
    创建inference_800i.py

    from transformers import AutoTokenizer
    from vllm import LLM, SamplingParams
    
    tokenizer = AutoTokenizer.from_pretrained("/home/pangu-pro-moe-mode/", trust_remote_code=True)
    prompts = ["量子计算与人工智能的结合将", "请分析当前大模型发展的技术瓶颈"]
    
    sampling_params = SamplingParams(temperature=0.7, top_p=0.9, max_tokens=512)
    llm = LLM(model="/home/pangu-pro-moe-mode/",
              tensor_parallel_size=4,
              distributed_executor_backend="mp",
              max_model_len=2048,
              trust_remote_code=True)
    
    outputs = llm.generate(prompts, sampling_params)
    for output in outputs:
        print(f"输入: {output.prompt}\n输出: {output.outputs[0].text}\n")
    

    执行推理:python inference_800i.py

  2. Atlas 300I Duo适配调整
    创建inference_300i.py,增加类型转换与专家并行配置:

    llm = LLM(model="/home/pangu-pro-moe-mode/",
              tensor_parallel_size=8,
              enable_expert_parallel=True,
              dtype="float16",  # 300I平台需指定半精度
              max_model_len=2048,
              trust_remote_code=True)
    
在线服务部署
  1. Atlas 800I A2服务启动

    export VLLM_USE_V1=1
    vllm serve /home/pangu-pro-moe-mode/ \
    --tensor-parallel-size 4 \
    --trust-remote-code \
    --enforce-eager
    
  2. Atlas 300I Duo服务配置

    export VLLM_USE_V1=1
    vllm serve /home/pangu-pro-moe-mode/ \
    --tensor-parallel-size 4 \
    --enable-expert-parallel \
    --dtype "float16" \
    --trust-remote-code
    
  3. API调用验证

    curl http://localhost:8000/v1/completions \
    -H "Content-Type: application/json" \
    -d '{"prompt": "<s>[unused9]系统:[unused10][unused9]用户:请解释什么是稀疏激活模型[unused10][unused9]助手:",
         "max_tokens": 256, "temperature": 0.6, "top_p": 0.95}'
    

3. 开发者资源与技术支持

核心资源链接

  • 模型权重仓库:https://gitcode.com/ascend-tribe/pangu-pro-moe-model
  • 项目源代码:https://gitcode.com/ascend-tribe/pangu-pro-moe
  • 技术白皮书:https://raw.gitcode.com/ascend-tribe/pangu-pro-moe/raw/main/Pangu-Pro-MoE-CN-Report.pdf
  • vLLM昇腾适配版:https://github.com/vllm-project/vllm-ascend
  • MindIE官方文档:https://www.hiascend.com/document/detail/zh/mindie/20RC2/index/index.html

部署注意事项

  1. 权重文件解压后需校验MD5值,确保完整性
  2. Atlas 300I Duo平台需特别注意内存分配,建议关闭其他占用NPU资源的进程
  3. 服务化部署时,建议通过NPU Device Manager监控芯片温度,避免长时间满负载运行
  4. 如需调整推理精度,可在配置中添加"quantization": "w4a16"启用权重量化
Logo

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

更多推荐