news 2026/9/25 5:01:59

如何用Docker一键部署MindSpeed LLM:昇腾镜像构建指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何用Docker一键部署MindSpeed LLM:昇腾镜像构建指南

如何用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,预装完整的软件栈:

组件版本
CANN9.1.0
Python3.12
PyTorch2.7.1
TorchNPU2.7.1.post8
Triton-Ascend3.2.2
MindSpeed LLM26.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-typeNPU 类型:910b/a3/950910b
-o, --os操作系统openeuler24.03
-i, --image-name自定义输出镜像名自动拼接规则 Tag
--base-image-versionCANN 基础镜像版本9.1.0
--torch-versionPyTorch 版本2.7.1
--torch-npu-versionTorchNPU 版本2.7.1.post8
--mindspeed-llm-branchMindSpeed-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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/25 5:01:08

ESP32双OTA分区实现应用平台:固件安装、启动切换与回退实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/25 5:01:04

安路TD与Modelsim联合仿真:IP核编译、库映射与波形调试避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/25 5:01:01

diagrams.net在线画图实操技:从架构图到流程图的高效工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/25 5:00:40

PyBLE:基于BLE的ESP32无线调试协议栈

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/25 4:59:27

头歌平台损失函数手写实践:从公式到可调试代码

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华