Loading...
Loading...
MindSpeed-LLM 环境搭建指南,用于华为昇腾 NPU。覆盖 CANN 环境激活、PyTorch + torch_npu 安装、MindSpeed 加速库安装、Megatron-LM 核心模块集成、MindSpeed-LLM 安装及环境验证。当用户需要在昇腾 NPU 上搭建 MindSpeed-LLM 训练环境时使用。
npx skill4agent add ascend-ai-coding/awesome-ascend-skills mindspeed-llm-env-setupMegatron-LM (NVIDIA) ← 分布式训练核心 (TP/PP),使用 core_v0.12.1 分支
↑
MindSpeed (Huawei) ← 昇腾适配层,猴子补丁优化 Megatron 内核
↑
MindSpeed-LLM (Huawei) ← 应用层:训练脚本、数据预处理、权重转换# 1. 激活 CANN 环境(CANN 8.5.0+ 路径;旧版用 /usr/local/Ascend/ascend-toolkit/set_env.sh)
source /usr/local/Ascend/cann/set_env.sh
source /usr/local/Ascend/nnal/atb/set_env.sh
# 2. 安装 PyTorch + torch_npu
pip install torch==2.7.1 --index-url https://download.pytorch.org/whl/cpu
pip install torch_npu==2.7.1rc1
pip install numpy pyyaml scipy attrs decorator psutil
# 3. 克隆并安装 MindSpeed
git clone https://gitcode.com/ascend/MindSpeed.git
cd MindSpeed && pip install -r requirements.txt && pip install -e . && cd ..
# 4. 克隆 Megatron-LM 并复制核心模块
git clone https://github.com/NVIDIA/Megatron-LM.git
cd Megatron-LM && git checkout core_v0.12.1 && cd ..
cp -r Megatron-LM/megatron MindSpeed-LLM/
# 5. 安装 MindSpeed-LLM
cd MindSpeed-LLM && pip install -r requirements.txt
# 6. 验证环境
python -c "
import torch
import torch_npu
print(f'NPUs available: {torch_npu.npu.device_count()}')
print(f'NPU ready: {torch.npu.is_available()}')
"| CANN | PyTorch | torch_npu | Python | Megatron-LM |
|---|---|---|---|---|
| 8.5.0 | 2.7.1 | 2.7.1rc1 | 3.10 | core_v0.12.1 |
以上为当前 master 分支版本。历史版本请查阅 官方安装文档。 检查 CANN 版本:(CANN 8.5.0+)或cat /usr/local/Ascend/cann/latest/aarch64-linux/ascend_toolkit_install.info(旧版)。cat /usr/local/Ascend/ascend-toolkit/latest/aarch64-linux/ascend_toolkit_install.info
docker run -it --name mindspeed-llm \
--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 /usr/local/dcmi:/usr/local/dcmi \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64 \
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
-v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \
-v /home/workspace:/home/workspace \
swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:8.5.0-910b-ubuntu22.04-py3.10 \
bash注意:CANN 容器镜像不含 ML 依赖,进入容器后需手动安装 PyTorch、torch_npu 等。
workspace/
├── MindSpeed/ # 加速库
├── MindSpeed-LLM/ # 主项目
│ ├── megatron/ # 从 Megatron-LM 复制的核心模块
│ ├── examples/mcore/ # 各模型的示例脚本
│ ├── preprocess_data.py # 数据预处理入口
│ ├── convert_ckpt.py # 权重转换 v1
│ ├── convert_ckpt_v2.py # 权重转换 v2
│ ├── pretrain_gpt.py # 预训练入口
│ └── posttrain_gpt.py # 微调/后训练入口
├── Megatron-LM/ # NVIDIA 原始仓库(仅用于复制 megatron/)
├── model_from_hf/ # HuggingFace 模型权重
└── dataset/ # 训练数据集| 检查项 | 命令 | 预期结果 |
|---|---|---|
| CANN 环境 | | 显示 NPU 设备信息 |
| PyTorch | | |
| torch_npu | | |
| NPU 数量 | | ≥1(与硬件一致) |
| MindSpeed | | 显示包信息 |
| megatron 模块 | | 目录存在且非空 |
ModuleNotFoundError: No module named 'yaml'pip install numpy pyyaml scipy attrs decorator psutilexport http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
pip install torch==2.7.1 --index-url https://download.pytorch.org/whl/cpucore_vcd Megatron-LM
git branch -a | grep core
git checkout core_v0.12.1