如何用Docker一键部署MindSpeed LLM:昇腾镜像构建指南
【免费下载链接】MindSpeed-LLM昇腾LLM分布式训练框架项目地址: https://gitcode.com/Ascend/MindSpeed-LLM
MindSpeed LLM是昇腾大语言模型分布式训练框架,支持分布式预训练、指令微调、数据预处理与基线评估。本文带你通过 Docker 镜像快速部署 MindSpeed LLM 训练环境:一行构建脚本即可完成昇腾镜像构建,容器启动后即可在 NPU 上运行大模型训练,免去繁琐的手工环境配置。
为什么推荐用 Docker 部署 MindSpeed LLM 🐳
昇腾训练环境涉及 CANN、TorchNPU、PyTorch、Triton-Ascend、Megatron-LM 等多个组件,手动安装版本极易出错。MindSpeed-LLM 官方提供了统一的 Dockerfile,预装完整的软件栈:
| 组件 | 版本 |
|---|---|
| CANN | 9.1.0 |
| Python | 3.12 |
| PyTorch | 2.7.1 |
| TorchNPU | 2.7.1.post8 |
| Triton-Ascend | 3.2.2 |
| MindSpeed LLM | 26.1.0 |
镜像内置base环境,工作目录直接指向/workspace/MindSpeed-LLM,且已自动加载 CANN 环境变量(set_env.sh),进入容器即可开训。
部署前准备:NPU 驱动与 CANN 安装 🛠️
容器需要访问宿主的 NPU 设备,因此宿主机必须先装好 NPU 驱动与 CANN。
1️⃣ 安装 NPU 驱动:在昇腾官网选择对应产品型号(如 Atlas 800T A2 训练服务器),勾选run软件包格式,一键下载后执行固件与驱动安装:
2️⃣ 安装 CANN 软件包:下载 CANN 时注意核对CPU 架构(ARM 选aarch64,x86 选x86_64)和芯片型号(如 910B),勾选toolkit、nnal、kernels等核心包:
一键构建 MindSpeed LLM 昇腾镜像 🚀
克隆仓库后进入docker目录,执行构建脚本 image_build.sh:
cd docker # 使用全部默认值构建(910b + openEuler24.03) bash image_build.sh # 指定 NPU 类型和操作系统 bash image_build.sh -t 950 -o ubuntu22.04 # 自定义 CANN、PyTorch、TorchNPU 版本 bash image_build.sh \ --base-image-version 9.1.0 \ --torch-version 2.7.1 \ --torch-npu-version 2.7.1.post8常用构建参数如下,未指定的参数会自动使用与最新版镜像一致的默认值:
| 参数 | 说明 | 默认值 |
|---|---|---|
-t, --npu-type | NPU 类型:910b/a3/950 | 910b |
-o, --os | 操作系统 | openeuler24.03 |
-i, --image-name | 自定义输出镜像名 | 自动拼接规则 Tag |
--base-image-version | CANN 基础镜像版本 | 9.1.0 |
--torch-version | PyTorch 版本 | 2.7.1 |
--torch-npu-version | TorchNPU 版本 | 2.7.1.post8 |
--mindspeed-llm-branch | MindSpeed-LLM 版本分支 | 26.1.0 |
--no-cache | 不使用构建缓存 | 无 |
--cleanup-on-fail | 构建失败时清理悬空镜像 | 无 |
💡 构建过程会自动克隆 MindSpeed、Megatron-LM、FSDPTurbo 源码并编译安装 GDN 自定义算子,请保持网络通畅。构建结束后会提示
Build Complete!并打印生成的镜像 Tag。
启动 MindSpeed LLM 训练容器 ⚡
镜像 Tag 遵循v{版本}-cann{CANN版本}-torch_npu{TorchNPU版本}-{芯片}-{系统}-py{Python版本}的格式。以 910b 芯片为例,挂载 NPU 设备与驱动目录后运行容器:
docker run -it --rm \ --name mindspeed-llm \ --privileged \ --network host \ --ipc=host \ --device=/dev/davinci1 \ --device=/dev/davinci_manager \ --device=/dev/hisi_hdc \ --device=/dev/devmm_svm \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ -v /usr/local/dcmi:/usr/local/dcmi \ -v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \ -v /etc/ascend_install.info:/etc/ascend_install.info \ -v /home/:/home/ \ -v /data:/data \ mindspeed-llm:v26.1.0-cann9.1.0-torch_npu2.7.1.post8-910b-openeuler24.03-py3.12 \ /bin/bash进入容器后默认位于/workspace/MindSpeed-LLM,CANN 环境已自动加载。注意:镜像仅预装 PyTorch、TorchNPU 基础依赖,请根据目标模型的 README,在 base 环境中手动安装该模型的额外依赖包。
验证部署:跑起来才算成功 ✅
启动一个训练脚本(如 Qwen3 预训练示例 pretrain_qwen3_8b_4k_fsdp2_A3.sh),看到如下日志说明 MindSpeed LLM 已在 NPU 上正常迭代——包含每步耗时、吞吐量(TFLOP/s/GPU)、显存占用与 loss 信息:
二次开发:基于官方镜像扩展 🧩
如果需要在镜像中加装自有依赖,直接以官方镜像为基底编写自定义 Dockerfile 即可,无需重新走完整构建流程:
FROM mindspeed-llm:v26.1.0-cann9.1.0-torch_npu2.7.1.post8-910b-openeuler24.03-py3.12 RUN pip install your-package==1.0.0 COPY . /workspace/your-project WORKDIR /workspace/your-project构建后按上文相同方式挂载 NPU 设备运行即可。
延伸阅读 📚
- 镜像总览与完整 Tag 列表:docker/OVERVIEW.zh.md、docker/supported_tags.md
- 统一构建脚本:docker/image_build.sh
- 统一 Dockerfile(三阶段构建:基础环境 → PyTorch 安装 → 框架源码):docker/Dockerfile
- 各芯片镜像内容对照表见 supported_tags.md,覆盖
910b、a3、950三类 NPU 及 openEuler24.03 / ubuntu22.04 双系统
按照以上步骤,你已可以用一条bash image_build.sh完成昇腾镜像构建,并在分钟级内把 MindSpeed LLM 训练容器跑起来。下一步可参考官方文档尝试 Qwen3、DeepSeek 等模型的分布式预训练与指令微调。
【免费下载链接】MindSpeed-LLM昇腾LLM分布式训练框架项目地址: https://gitcode.com/Ascend/MindSpeed-LLM
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考