昇腾社区首页
中文
注册
开发者
下载
模型部署入门—MindSpeed实践指导

模型部署入门—MindSpeed实践指导

MindSpeed

发表于 2025/11/19

背景和意义

本文档可以作为AI学习者的模型部署入门指导,将介绍在NPU环境上基于MindSpeed-LLM部署Qwen3的实践流程,从本文章主要可以了解到以下内容

  • 使用MindSpeed-LLM部署模型
  • 结合docker和conda搭建环境
  • 搭建过程报错处理
  • 模型代码,权重获取方式
  • 模型单机运行和双机运行
  • 精度指标的简单介绍

环境版本与依赖清单

依赖软件 版本
昇腾NPU驱动 商发版本
昇腾NPU固件 商发版本
CANN Toolkit(开发套件) 商发版本
CANN Kernel(算子包) 商发版本
CANN NNAL(Ascend Transformer Boost加速库) 商发版本
Python >=3.10
PyTorch 2.1.0
torch_npu插件 2.1.0
apex 商发版本
transformers 4.51.0

环境搭建准备

昇腾常用指令了解

  • 查看npu信息:npu-smi info
  • 查看cann 版本:cat /usr/local/Ascend/ascend-toolkit/latest/version.cfg (这只是个默认地址,具体根据实际引用的CANN地址)

环境搭建

官方安装指导:MindSpeed-LLM: 昇腾LLM分布式训练框架 - Gitee.com

  • 安装NPU驱动与固件软件安装-CANN商用版8.0.0-昇腾社区
  • 安装CANN软件安装-CANN商用版8.0.0-昇腾社区
  • 本次实践是在容器环境下实施的,实现环境隔离,先起一个容器
docker run -it -u root --ipc=host --net=host  --name=ming-test --ipc=host  --privileged=true \ # name参数代表新建容器的名字
      -e ASCEND_VISIBLE_DEVICES=0-7 \ # 新建容器调用八卡
      --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 /etc/ascend_install.info:/etc/ascend_install.info \ # 必须挂载
      -v /usr/local/Ascend/:/usr/local/Ascend/ \ # 挂载宿主机上CANN驱动和固件
      -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
      -v /usr/local/Ascend/add-ons/:/usr/local/Ascend/add-ons/ \
      -v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \  # 挂载npu-smi命令
      -v /usr/local/sbin/:/usr/local/sbin/ \
      -v /home/:/home/ \ # 挂载模型数据文件
      mindspeed_llm:rc4 \ # 基础镜像名字和版本
      /bin/bash
  • 进入容器后安装conda环境,敲conda指令,验证是否安装成功
 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh
 bash Miniconda3-latest-Linux-aarch64.sh -b -p /opt/conda
 export PATH="/opt/conda/bin:$PATH"
  • conda环境初始化
 conda init  #看下哪些文件是有change的,一般是/root/.bashrc
    
 #如果直接init失败,/root/.bashrc change,则执行以下命令完成初始化
 source /root/.bashrc

出现以下标识即初始化成功

  • 仓库拉取
    git clone https://gitee.com/ascend/MindSpeed-LLM.git
    git clone https://github.com/NVIDIA/Megatron-LM.git
    cd Megatron-LM
    git checkout core_r0.8.0
    cp -r megatron ../MindSpeed-LLM/
    cd ..
    cd MindSpeed-LLM
    mkdir logs
    mkdir dataset
    mkdir ckpt
  • 依赖安装
    # python3.10
    conda create -n test python=3.10
    conda activate test
    
    #torch 和 torch_npu
    pip install torch==2.1.0
    pip install torch-npu==2.1.0
    
    #apex安装 https://gitee.com/ascend/apex
    git clone -b master https://gitee.com/ascend/apex.git
    cd apex/
    bash scripts/build.sh --python=3.10
    cd apex/dist/
    pip3 uninstall apex
    pip3 install --upgrade apex-0.1+ascend-{version}.whl # version为python版本和cpu架构
    
    # 安装加速库
    git clone https://gitee.com/ascend/MindSpeed.git
    cd MindSpeed
    # checkout commit from MindSpeed core_r0.8.0
    git checkout 2c085cc9
    pip install -r requirements.txt
    pip install -e .
    cd ../MindSpeed-LLM
    
    
    # 安装其余依赖库
    pip install -r requirements.txt
    
    pip install transformers==4.51.0

模型部署流程

基于上述流程,已经完成所有的依赖和环境搭建。

单机运行

参考训练全流程处即可

多机运行

与单机运行类似,主要是留意以下内容

    MASTER_ADDR=localhost  #主节点IP
    MASTER_PORT=6000  #主节点端口
    NNODES=1  #机器数
    NODE_RANK=0  #主节点为0,第二个为1,以此类推

需要在两台节点上分布执行脚本,并非真的集群具备自动调度能力

 scp -r /xxx/xx  root@IP:/xxx/xxx   #可能用到的跨机文件复制



本页内容