DeepSeek-V4模型训练
2026年4月24日,DeepSeekV4系列模型DeepSeekV4-Flash和DeepSeekV4-Pro正式发布并开源,其以先进的 MoE 架构在参数效率与推理性能上实现了重要突破。MindSpeed LLM 目前已实现了 DeepSeekV4-Flash模型 的定长数据场景下的预训练支持,并同步开放源代码。目前提供预训练的实践参考,帮助用户快速上手。
注:当前实现为preview版本,部分场景存在限制,后续我们将持续完善并同步跟进 DeepSeek-V4 技术报告中的演进方向:
| 场景 | 特性 | 支持情况 | 备注 |
|---|---|---|---|
| 训练场景 | 预训练/续训 | OK | |
| 全参微调 | DOING | ||
| Lora微调 | DOING | ||
| 数据场景 | 定长数据 | OK | |
| pack数据 | DOING | ||
| 变长数据 | DOING | ||
| 切分策略 | TP | OK | 支持TP=2 |
| PP | OK | ||
| EP | OK | ||
| CP | DOING | ||
| 功能特性 | Muon优化器 | DOING |
安装指导
请参考仓库 MindSpeed LLM软件安装文档配置环境和拉取仓库代码
权重转换
-
权重下载
从 huggingface 下载权重和配置文件
-
权重转换
开源DeepSeekV4-Flash权重为FP8 mixed数据格式,训练前需要对原始权重做反量化后获得bf16格式的权重,反量化方法请参考下述脚本
cd MindSpeed-LLM bash examples/mcore/deepseek4_flash/ckpt_dequant_deepseek4_fp8_to_bf16.shMindSpeed LLM提供脚本将已经huggingface开源权重转换为mcore权重,用于训练、推理、评估等任务。 使用方法如下,请根据实际需要的TP/PP等切分策略和权重路径修改权重转换脚本
cd MindSpeed-LLM bash examples/mcore/deepseek4_flash/ckpt_convert_deepseek4_flash_hf2mcore.sh # 转换时,请指定路径到反量化后的权重
数据预处理
MindSpeed LLM提供脚本 进行数据集处理
使用方法如下,请根据实际需要修改以下参数
cd MindSpeed-LLM
bash examples/mcore/deepseek4_flash/data_convert_deepseek4_pretrain.sh
| 参数名 | 含义 |
|---|---|
| --input | 数据集路径 |
| --tokenizer-name-or-path | 模型tokenizer目录 |
| --output-prefix | 数据集处理完的输出路径及前缀名 |
预训练
MindSpeed LLM提供脚本 进行模型训练
cd MindSpeed-LLM
bash examples/mcore/deepseek4_flash/pretrain_deepseek4_flash_4k_A3_ptd.sh
用户需要根据实际情况修改脚本中以下变量
| 变量名 | 含义 |
|---|---|
| MASTER_ADDR | 多机情况下主节点IP |
| NODE_RANK | 多机下,各机对应节点序号 |
| CKPT_SAVE_DIR | 训练中权重保存路径 |
| DATA_PATH | 数据预处理后的数据路径 |
| TOKENIZER_PATH | tokenizer目录 |
| CKPT_LOAD_DIR | 权重转换保存的权重路径,为初始加载的权重,如无初始权重则随机初始化 |
全参微调
MindSpeed LLM提供脚本 进行模型训练
cd MindSpeed-LLM
bash examples/mcore/deepseek4_flash/tune_deepseek4_flash_4k_A3_ptd.sh
用户需要根据实际情况修改脚本中以下变量
| 变量名 | 含义 |
|---|---|
| MASTER_ADDR | 多机情况下主节点IP |
| NODE_RANK | 多机下,各机对应节点序号 |
| CKPT_SAVE_DIR | 训练中权重保存路径 |
| DATA_PATH | 数据预处理后的数据路径 |
| TOKENIZER_PATH | tokenizer目录 |
| CKPT_LOAD_DIR | 权重转换保存的权重路径,为初始加载的权重 |
LoRA微调
MindSpeed LLM提供脚本 进行模型训练
cd MindSpeed-LLM
bash examples/mcore/deepseek4_flash/lora_finetune_deepseek4_flash_4k_A3_ptd.sh
用户需要根据实际情况修改脚本中以下变量
| 变量名 | 含义 |
|---|---|
| MASTER_ADDR | 多机情况下主节点IP |
| NODE_RANK | 多机下,各机对应节点序号 |
| CKPT_SAVE_DIR | 训练中权重保存路径 |
| DATA_PATH | 数据预处理后的数据路径 |
| TOKENIZER_PATH | tokenizer目录 |
| CKPT_LOAD_DIR | 权重转换保存的权重路径,为初始加载的权重 |
注:LoRA微调使用指令数据集,需先执行 examples/mcore/deepseek4_flash/data_convert_deepseek4_instruction.sh 完成数据预处理,再将产物前缀填入 DATA_PATH。