安装指导

1.依赖配套总览

MindSpeed LLM的依赖配套如下表

依赖软件 版本
昇腾NPU驱动 Ascend HDK 25.3.0
昇腾NPU固件
Toolkit(开发套件) CANN 8.3.RC1
Kernel(算子包)
NNAL(Ascend Transformer Boost加速库)
Python 3.10
PyTorch 2.7.1
torch_npu插件 7.2.0

2.依赖安装指导

2.1驱动固件安装

下载驱动固件,请根据系统和硬件产品型号选择对应版本的driverfirmware。参考安装NPU驱动固件或执行以下命令安装:

chmod +x Ascend-hdk-<chip_type>-npu-driver_<version>_linux-<arch>.run
chmod +x Ascend-hdk-<chip_type>-npu-firmware_<version>.run
./Ascend-hdk-<chip_type>-npu-driver_<version>_linux-<arch>.run --full --force
./Ascend-hdk-<chip_type>-npu-firmware_<version>.run --full

2.2 安装方式选择

2.2.1 使用配套镜像安装

使用镜像前请先确定机器型号,最新镜像只支持aarch64系统,先通过uname -a确认自身系统是aarch64,Atlas 800T A2 训练服务器请选择openeuler22.03-mindspeed-llm-2.2.0-a2-arm 镜像,Atlas 900 A3 SuperPoD服务器请选择openeuler22.03-mindspeed-llm-2.2.0-a3-arm 镜像。 本仓库在昇腾社区提供aarch64系统的配套镜像,且镜像已安装CANN 8.3.RC1和配套torch_npu插件,您可以按需使用。 如果您的环境与提供的镜像不兼容,也可以使用自定义环境安装

1.拉取镜像

# 确认是否成功拉取镜像
docker image list

2.创建容器

注意当前默认配置驱动和固件安装在/usr/local/Ascend,如有差异请修改指令路径。 当前容器默认初始化npu驱动和CANN环境信息,如需要安装新的,请自行替换或手动source,详见容器的~/.bashrc

# 挂载镜像
docker run -dit --ipc=host --network host --name 'llm_test' --privileged -v /usr/local/Ascend/driver:/usr/local/Ascend/driver -v /usr/local/Ascend/firmware:/usr/local/Ascend/firmware -v /usr/local/sbin/:/usr/local/sbin/ -v /home/:/home/ -v /data/:/data 镜像名:标签 /bin/bash

3.进入容器并确认环境状态

# 进入容器
docker exec -it llm_test bash
# 确认npu是否可以正常使用,否则返回3.检查配置
npu-smi info

4.单机以及多机模型的预训练任务运行

进入容器后会进入conda环境llm_test,并且工作目录切换到/MindSpeed-LLM/MindSpeed-LLM,该目录下为MindSpeed-LLM的2.2.0分支代码仓,用户可直接参考基于PyTorch后端的预训练进行训练。

2.2.2 使用自定义环境安装

1.安装CANN

下载CANN,请根据系统选择aarch64x86_64对应版本的cann-toolkitcann-kernelcann-nnal。参考CANN安装或执行以下命令安装:

# 因为版本迭代,包名存在出入,根据实际修改
chmod +x Ascend-cann-toolkit_<version>_linux-<arch>.run
./Ascend-cann-toolkit_<version>_linux-<arch>.run --install
chmod +x Ascend-cann-kernels-<chip_type>_<version>_linux.run
./Ascend-cann-kernels-<chip_type>_<version>_linux.run --install
source /usr/local/Ascend/ascend-toolkit/set_env.sh # 安装nnal包需要source环境变量
chmod +x Ascend-cann-nnal-<chip_type>_<version>_linux.run
./Ascend-cann-nnal-<chip_type>_<version>_linux.run --install
# 设置环境变量
source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/nnal/atb/set_env.sh

2.安装PyTorch框架

准备torch_npu,参考Ascend Extension for PyTorch 安装或执行以下命令安装:

# 安装torch和torch_npu 构建参考 https://gitcode.com/ascend/pytorch/releases
pip3 install torch-2.7.1-cp310-cp310-manylinux_2_28_aarch64.whl 
pip3 install torch_npu-2.7.1rc1-cp310-cp310-manylinux_2_28_aarch64.whl

3.安装MindSpeed-LLM及相关依赖

# 使能环境变量
source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/nnal/atb/set_env.sh

# 安装MindSpeed加速库
git clone https://gitcode.com/ascend/MindSpeed.git
cd MindSpeed
git checkout 2.2.0_core_r0.12.1 
pip3 install -r requirements.txt 
pip3 install -e .
cd ..

# 准备MindSpeed-LLM及Megatron-LM源码
git clone https://gitcode.com/ascend/MindSpeed-LLM.git 
git clone https://github.com/NVIDIA/Megatron-LM.git  # megatron从github下载,请确保网络能访问
cd Megatron-LM
git checkout core_v0.12.1
cp -r megatron ../MindSpeed-LLM/
cd ../MindSpeed-LLM
git checkout 2.2.0

pip3 install -r requirements.txt  # 安装其余依赖库

4.单机以及多机模型的预训练任务运行

参考基于PyTorch后端的预训练进行训练。