news 2026/5/9 12:44:31

CANN DeepSeek-V4-Flash训练部署

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN DeepSeek-V4-Flash训练部署

基于TorchTitan-NPU的DeepSeek-V4-Flash训练部署指导

【免费下载链接】cann-recipes-train本项目针对LLM与多模态模型训练业务中的典型模型、加速算法,提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-train

概述

本文面向torchtitan-npu仓中的DeepSeek-V4-Flash模型训练场景,介绍源码获取、数据准备、模型权重准备与 BF16 转换、镜像准备、Docker 容器拉起、训练配置说明以及多机训练启动方式。

本文的优化方案介绍和性能Benchmark可参见技术报告DeepSeek-V4昇腾训练支持:基于CANN平台的TorchTitan-NPU + AutoFuse 极简训练优化实践。

硬件与软件要求

项目要求
产品型号Atlas A3 系列
最小卡数要求8机 64卡 A3
操作系统Linux ARM
驱动版本Ascend HDK 25.5.1
镜像版本dsv4_train_torchtitan:cann9.0.0.beta.1_v1.0

[!NOTE] 需使用npu-smi info 检查Ascend NPU固件和驱动正确安装,且版本为25.5.1。如果未安装或者版本不一致,请先下载固件和驱动包,并根据指导自行安装。

源码准备

执行如下命令拉取源码:

mkdir -p /home/code && cd /home/code/ git clone https://gitcode.com/cann/torchtitan-npu.git cd torchtitan-npu

本次训练使用的配置文件为:

./torchtitan_npu/models/deepseek_v4/train_configs/deepseek_v4_285b_43layers_4k_128die.toml

获取Docker镜像

从ARM镜像地址中下载 docker 镜像,然后上传到A3服务器的每个节点上,执行如下命令加载训练镜像:

gunzip -c dsv4_train_torchtitan*.gz | docker load

加载后镜像版本如下:

dsv4_train_torchtitan:cann9.0.0.beta.1_v1.0

启动Docker容器

执行如下命令启动容器:

docker run -u root -itd --name dsv4_train_torchtitan_v1.0 --ulimit nproc=65535:65535 --ipc=host \ --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/davinci8 --device=/dev/davinci9 \ --device=/dev/davinci10 --device=/dev/davinci11 \ --device=/dev/davinci12 --device=/dev/davinci13 \ --device=/dev/davinci14 --device=/dev/davinci15 \ --device=/dev/davinci_manager --device=/dev/devmm_svm \ --device=/dev/hisi_hdc \ -v /home:/home \ -v /data:/data \ -v /etc/localtime:/etc/localtime \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ -v /etc/ascend_install.info:/etc/ascend_install.info -v /var/log/npu/:/usr/slog \ -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ -v /usr/local/dcmi:/usr/local/dcmi -v /usr/local/sbin:/usr/local/sbin \ -v /etc/hccn.conf:/etc/hccn.conf -v /root/.pip:/root/.pip -v /etc/hosts:/etc/hosts \ -v /usr/bin/hostname:/usr/bin/hostname \ --net=host \ --shm-size=128g \ --privileged \ dsv4_train_torchtitan:cann9.0.0.beta.1_v1.0 /bin/bash

进入容器:

docker exec -it dsv4_train_torchtitan_v1.0 /bin/bash

在容器内执行环境变量初始化:

source /usr/local/Ascend/cann/set_env.sh source /usr/local/Ascend/cann/opp/vendors/custom_transformer/bin/set_env.bash

数据集准备

该配置默认使用仓内样例数据集:

dataset = "c4_test" dataset_path = "./tests/assets/c4_test"

若直接按默认配置拉起训练,可使用仓内已有的c4_test数据集;若使用自定义数据集,请提前准备好数据目录,并在后续训练配置中修改datasetdataset_path

模型权重准备

本样例使用DeepSeek-V4-Flash权重进行CPT训练,建议先从 huggingface 下载原始权重和配置文件到统一目录,例如:

mkdir -p /data/models/DeepSeek-V4-Flash

将原始权重转换为 BF16 权重,输出目录与训练配置文件保持一致,例如:

mkdir -p /data/models/DeepSeek-V4-Flash-bf16

权重转换使用cann-recipes-train仓中的convert_model.py脚本。示例如下:

cd /home/code/ git clone https://gitcode.com/cann/cann-recipes-train.git cd cann-recipes-train/llm_pretrain/deepseekv4/utils python3 convert_model.py \ --input_fp8_hf_path /data/models/DeepSeek-V4-Flash \ --output_hf_path /data/models/DeepSeek-V4-Flash-bf16 \ --quant_type bfloat16

训练配置

本次训练使用配置文件./torchtitan_npu/models/deepseek_v4/train_configs/deepseek_v4_285b_43layers_4k_128die.toml

拉起训练前请重点确认以下路径配置与实际环境一致:

[model] hf_assets_path = "/data/models/DeepSeek-V4-Flash-bf16" [training] dataset = "c4_test" dataset_path = "./tests/assets/c4_test" [checkpoint] initial_load_in_hf = true initial_load_path = "/data/models/DeepSeek-V4-Flash-bf16"

启动训练

  • 根据使用实际的网卡、节点 IP等,修改多机训练脚本配置,参考torchtitan-npu快速上手 文档中的“多机训练任务”一节。

  • 进入各节点上的torchtitan-npu源码目录后,在所有参与训练的节点上同时执行如下命令,即可启动DeepSeek-V4-Flash多机CPT训练任务:

CONFIG_FILE=./torchtitan_npu/models/deepseek_v4/train_configs/deepseek_v4_285b_43layers_4k_128die.toml \ bash scripts/run_train_multinodes.sh

【免费下载链接】cann-recipes-train本项目针对LLM与多模态模型训练业务中的典型模型、加速算法,提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-train

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

深度剖析Go语言,一文告诉你为什么大厂开始增加Go的招聘量

最近这两年大厂青睐Go,不是因为Go比Java"更好",而是因为Go比Java"更适合云原生时代"。我在G7汇通天下做后端架构时,亲历了从Java全面转向Go的过程。今天用一篇文章,说清Go语言的核心竞争力,以及你…

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

CANN/hcomm组调用结束接口

HcclGroupEnd 【免费下载链接】hcomm HCOMM(Huawei Communication)是HCCL的通信基础库,提供通信域以及通信资源的管理能力。 项目地址: https://gitcode.com/cann/hcomm 产品支持情况 Ascend 950PR/Ascend 950DT:不支持At…

作者头像 李华
网站建设 2026/5/9 12:26:11

CANN/ops-math复制填充反向算子

aclnnReplicationPad2dBackward 【免费下载链接】ops-math 本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-math 📄 查看源码 产品支持情况 产品是否支持Ascend 950PR/Ascend 950D…

作者头像 李华