基于昇腾 MindSpeed LLM 玩转 DeepSeek-V4-Flash

MindSpeed LLM作为昇腾AI生态的重要技术支撑,专为大规模语言模型设计,具有超强的计算能力和灵活的开发支持。MindSpeed LLM实现了DeepSeekV4-Flash模型的定长数据场景下的预训练支持,并同步开放源代码。本文给各位开发者提供预训练的复现部署参考,帮助大家快速上手。MindSpeed LLM快速部署与应用教程已上线魔乐社区,欢迎开发者体验!

🔗 DeepSeek-V4-Flash开源权重链接:https://modelers.cn/models/deepseek-ai/DeepSeek-V4-Flash

🔗 MindSpeed LLM训练推理教程:https://modelers.cn/models/MindSpeed/DeepSeek4-Flash

接下来,我们将手把手带你完成从环境准备到模型训练的完整过程,帮助你快速上手并在MindSpeed框架下实现DeepSeek-V4-Flash模型的无缝运行。

01 环境配置

硬件要求

DeepSeek-V4-Flash的参考硬件配置如下,本文将以A3八机64卡预训练为例进行介绍:

  • 类型:训练

  • 硬件:NPU

  • 配置:64 x Ascend NPUs(A3)

MindSpeed LLM仓库部署

MindSpeed LLM的主要依赖配套如下:

Atlas 800 A3风冷超节点、Atlas 900 A3 SuperPoD液冷超节点

安装步骤参考安装指导:

https://gitcode.com/Ascend/MindSpeed-LLM/blob/master/docs/zh/pytorch/training/install_guide.md

接下来,参考MindSpeed LLM 安装指导文档拉取仓库代码并配置环境:

复制代码
# 如果你使用Atlas 900 A3 SuperPoD液冷超节点或Atlas 800 A3风冷超节点,我们推荐你使用如下镜像进行环境部署,可跳过CANN/Pytorch/Triton环境依赖的部署环节

# 镜像链接:https://cann-ai.obs.cn-north-4.myhuaweicloud.com/cann-quantization/deepseek_train/dsv4_train_mindspeed_v1.0.tar.gz

# 创建容器
docker run -dit --ipc=host --network host --name 'llm_test' --privileged -v /usr/local/Ascend/driver:/usr/local/Ascend/driver -v /usr/local/Ascend/firmware:/usr/local/Ascend/firmware -v /usr/local/sbin/:/usr/local/sbin/ -v /home/:/home/ -v /data/:/data 镜像名:标签 /bin/bash

# 进入容器
docker exec -it llm_test bash

# 该镜像已安装CANN与自定义融合算子包,在运行训练任务前,请使能如下环境变量以正确生效算子能力
source /usr/local/Ascend/cann/set_env.sh
source /usr/local/Ascend/cann/opp/vendors/custom_transformer/bin/set_env.bash

# 安装MindSpeed加速库
git clone https://gitcode.com/ascend/MindSpeed.git
cd MindSpeed
git checkout master  # checkout commit from MindSpeed master
pip3 install -r requirements.txt 
pip3 install -e .
cd ..

# 准备MindSpeed-LLM及Megatron-LM源码
git clone https://gitcode.com/ascend/MindSpeed-LLM.git 
git clone https://github.com/NVIDIA/Megatron-LM.git  # megatron从github下载,请确保网络能访问
cd Megatron-LM
git checkout core_v0.12.1
cp -r megatron ../MindSpeed-LLM/
cd ../MindSpeed-LLM
git checkout master

pip3 install -r requirements.txt  # 安装其余依赖库

02 权重转换

  1. 从魔乐社区下载模型权重和配置文件:

    https://modelers.cn/models/deepseek-ai/DeepSeek-V4-Flash

  2. 权重转换

    开源DeepSeek-V4-Flash权重为FP8 mixed数据格式,使用A3训练前需要对原始权重做反量化后获得bf16格式的权重,反量化方法请参考下述脚本。

    cd MindSpeed-LLM
    bash examples/mcore/deepseek4_flash/ckpt_dequant_deepseek4_fp8_to_bf16.sh

MindSpeed LLM提供脚本将已经huggingface开源权重转换为mcore权重,用于训练、推理、评估等任务。使用方法如下,请根据实际需要的TP/PP等切分策略和权重路径修改权重转换脚本。

脚本链接:https://gitcode.com/Ascend/MindSpeed-LLM/tree/master/examples/mcore/deepseek4_flash

复制代码
cd MindSpeed-LLM
bash examples/mcore/deepseek4_flash/ckpt_convert_deepseek4_flash_hf2mcore.sh # 转换时,请指定路径到反量化后的权重

03 数据预处理

MindSpeed LLM提供脚本进行数据集处理:

https://gitcode.com/Ascend/MindSpeed-LLM/blob/master/examples/mcore/deepseek4_flash

使用方法如下,请根据实际需要修改以下参数

复制代码
cd MindSpeed-LLM
bash examples/mcore/deepseek4_flash/data_convert_deepseek4_pretrain.sh

说明:

  • --input:数据集路径

  • --tokenizer-name-or-path:模型tokenizer目录

  • --output-prefix:数据集处理完的输出路径及前缀名

04 训练

MindSpeed LLM提供脚本进行模型训练:

https://gitcode.com/Ascend/MindSpeed-LLM/blob/master/examples/mcore/deepseek4_flash

复制代码
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:权重转换保存的权重路径,为初始加载的权重,如无初始权重则随机初始化

欢迎体验反馈

当前实现为preview版本,部分场景存在限制,后续MindSpeed LLM将持续完善并同步跟进 DeepSeek-V4 技术报告中的演进方向。欢迎各位开发者体验,如有任何问题,也可在该教程的代码仓提交issue,我们将及时查看解答。

https://modelers.cn/models/MindSpeed/DeepSeek4-Flash

相关推荐
北京盟通科技官方账号4 小时前
工业 PC 平台 EtherCAT 主站协议栈选型探讨:开源方案与商业级实时架构的工程落地对比
架构·机器人·开源·工控·ethercat·盟通科技·ec-master
传说故事4 小时前
【论文阅读】Code as Policies: Language Model Programs for Embodied Control
论文阅读·人工智能·具身智能
Jurio.4 小时前
AI Daily Paper Reader(ADPR):零服务器搭建个人/团队通用大模型API驱动的论文阅读与推荐平台
论文阅读·人工智能·ai
emfuture4 小时前
国产工控机选型实录:基于龙芯2K3000的中嵌科技EU-7500在边缘计算场景下的适配笔记
人工智能·笔记·边缘计算
IT_陈寒4 小时前
React状态更新后视图不刷新?我差点以为是灵异事件
前端·人工智能·后端
蓦然回首却已人去楼空4 小时前
深度学习进阶:自然语言处理|3.4 QA|共享权重与 `remove_duplicate` 详解
人工智能·深度学习·自然语言处理
searchforAI4 小时前
我用这款本土NotebookLM平替重构了知识库
人工智能·笔记·gpt·ai·音视频·知识图谱
不懂的浪漫4 小时前
01|从 Spring Boot 项目理解 RAG:ingest、query、rerank、trace 到 eval
java·人工智能·spring boot·后端·ai·rag
无心水4 小时前
【分布式利器:金融级】金融级分布式架构开源框架全景解读
人工智能·分布式·金融·架构·开源·wpf·金融级框架