0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DeepSeek V3昇思MindSpore版本上线开源社区

华为数字中国 来源:华为数字中国 2025-02-18 10:12 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

近日,基于昇腾AI硬件与昇思MindSpore AI框架版本的DeepSeek-V3完成开发支持并上线昇思开源社区,面向开发者提供开箱即用的预训练和推理能力,并已成功在大规模集群上预训练和部署。

应用昇思MindSpore大模型使能套件,依托昇思多维混合分布式能力、自动并行、Dryrun集群内存仿真等技术,天级快速适配DeepSeek V3新增模型结构和分布式并行训练能力。同时,昇思MindSpore通过深度优化MLA、DeepSeekMoE等网络结构的推理,实现了高效的推理部署性能。

当前,通过获取昇思MindSpore版DeepSeek V3开源镜像,开发者可直接进行DeepSeek-V3的预训练和推理部署。

开源链接

昇思MindSpore开源社区训练代码:

https://gitee.com/mindspore/mindformers/tree/dev/research/deepseek3

魔乐社区推理代码:

https://modelers.cn/models/MindSpore-Lab/DeepSeek-V3

以下是完整的手把手教程,助力开发者开箱即用

预训练开箱流程

MindSpore Transformers支持对DeepSeek-V3进行预训练。仓库中提供了一份预训练配置文件供参考,该配置基于128台Atlas 800T A2 (64G),使用Wikitext-2数据集进行预训练,可参考多机教程进行使用:

https://gitee.com/mindspore/mindformers/tree/dev/research/deepseek3

便于开发者上手体验,本章节基于此配置进行修改,缩小了DeepSeek-V3模型参数量,使其能够在单台Atlas 800T A2 (64G)上拉起预训练流程。

01环境介绍

准备一台Atlas 800T A2 (64G)训练服务器。MindSpore Transformers的环境依赖如下:

9964bd04-ed2a-11ef-9310-92fbcf53809c.png

提供了DeepSeek-V3预训练专用Docker镜像,通过如下步骤进行使用。

1、下载Docker镜像

使用如下命令下载DeepSeek-V3预训练专用镜像:

docker pull swr.cn-central-221.ovaijisuan.com/mindformers/deepseek_v3_mindspore2.4.10-train:20250209

2、基于镜像创建容器

使用如下命令新建容器:

image_name=swr.cn-central-221.ovaijisuan.com/mindformers/deepseek_v3_mindspore2.4.10-train:20250209
docker_name=deepseek_v3
docker run -itd -u root 
--ipc=host --net=host 
--privileged 
--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/davinci_manager 
--device=/dev/devmm_svm 
--device=/dev/hisi_hdc 
-v /etc/localtime:/etc/localtime 
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver 
-v /usr/local/Ascend/driver/tools/hccn_tool:/usr/local/bin/hccn_tool 
-v /etc/ascend_install.info:/etc/ascend_install.info 
-v /var/log85npu-smi:/usr/local/bin/npu-smi 
-v /etc/hccn.conf:/etc/hccn.conf 
--name "$docker_name" 
"$image_name" 
/bin/bash

3、进入容器

使用如下命令进入容器,并进入代码目录:

docker exec -ti deepseek_v3 bash
cd /home/work/mindformers

02数据集准备

以Wikitext-2数据集为例,参考如下步骤将数据集处理成Megatron BIN格式文件。

1、下载数据集和分词模型文件

o数据集下载:WikiText2数据集

(https://ascend-repo-modelzoo.obs.cn-east-2.myhuaweicloud.com/MindFormers/dataset/wikitext-2/wikitext-2-v1.zip)

o分词模型下载:DeepSeek-V3的tokenizer.json(https://huggingface.co/deepseek-ai/DeepSeek-V3/resolve/main/tokenizer.json?download=true)

2、生成Megatron BIN格式文件

将数据集文件wiki.train.tokens和分词模型文件tokenizer.json放置在/home/work/dataset下。

使用以下命令将数据集文件转换为

cd /home/work/mindformers/research/deepseek3
python wikitext_to_bin.py 
--input /home/work/dataset/wiki.train.tokens 
--output-prefix /home/work/dataset/wiki_4096 
--vocab-file /home/work/dataset/tokenizer.json 
--seq-length 4096 
--worker1

03单机配置样例

基于预训练配置文件pretrain_deepseek3_671b.yaml按照如下步骤操作并保存为pretrain_deepseek3_1b.yaml。

1、修改模型配置

# model config
model:
 model_config:
  type: DeepseekV3Config
  auto_register: deepseek3_config.DeepseekV3Config
  seq_length: 4096
  hidden_size: 2048                # 修改为2048
  num_layers: &num_layers 3            # 修改为3
  num_heads: 8                  # 修改为8
  max_position_embeddings: 4096
  intermediate_size: 6144             # 修改为6144
  offset: 0                    # 修改为0
  ……

2、修改MoE配置

提供了DeepSeek-V3预训练专用Docker镜像,通过如下步骤进行使用。

#moe
moe_config:
 expert_num: &expert_num 16           # 修改为16
first_k_dense_replace:1#修改为1
 ……

3、修改并行配置

# parallel config for devices num=8
parallel_config:
 data_parallel: 2                  # 修改为2
 model_parallel: 2                 # 修改为2
 pipeline_stage: 2                 # 修改为2
 expert_parallel: 2                 # 修改为2
 micro_batch_num: µ_batch_num 4      # 修改为4
   parallel:
    parallel_optimizer_config:
     optimizer_weight_shard_size: 8         # 修改为8
……

4、修改学习率配置

# lr schedule
  lr_schedule:
   type: ConstantWarmUpLR
   warmup_steps: 20                  # 修改为20

5、修改数据集配置

配置数据集路径:

# dataset
  train_dataset: &train_dataset
   data_loader:
 type: BlendedMegatronDatasetDataLoader
    config:
     data_path:
      - 1
      - "/home/work/dataset/wiki_4096_text_document" # 修改此项为数据集路径
  ……

配置数据集并行通信配置路径:

# mindspore context init config
  context:
   ascend_config:
    parallel_speed_up_json_path: "/home/work/mindformers/research/deepseek3/parallel_speed_up.json" # 修改此项为数据集并行通信配置路径

04

拉起任务

进入代码根目录并执行以下命令拉起单台Atlas 800T A2(64G)预训练任务:

cd /home/work/mindformers
bash scripts/msrun_launcher.sh "run_mindformer.py 
--register_path research/deepseek3 
--configresearch/deepseek3/deepseek3_671b/pretrain_deepseek3_1b.yaml"

启动脚本执行完毕会在后台拉起任务,日志保存在/home/work/mindformers/output/msrun_log下,使用以下命令查看训练日志(由于开启了流水并行pipeline_stage: 2,loss只显示在最后一张卡的日志worker_7.log中,其他日志显示loss为0):

tail -f /home/work/mindformers/output/msrun_log/worker_7.log

训练loss的曲线图如下:

99710550-ed2a-11ef-9310-92fbcf53809c.png

训练过程中的权重checkpoint将会保存在/home/work/mindformers/output/checkpoint下。

推理部署开箱流程

采用BF16格式的模型权重文件,运行DeepSeek-V3推理服务,需要4台Atlas 800I A2(64G)服务器。为缩短开发部署周期,昇思MindSpore此次提供了docker容器镜像,供开发者快速体验。其主要操作步骤如下:

执行以下Shell命令,下载昇思MindSpore DeepSeek-V3推理容器镜像:

docker pull swr.cn-central-221.ovaijisuan.com/mindformers/deepseek_v3_mindspore2.5.0-infer:20250209

执行以下Shell命令,启动容器镜像,后续操作将均在容器内进行:

docker run -itd --privileged --name=deepseek-v3 --net=host 
  --shm-size 500g 
  --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/davinci_manager 
  --device=/dev/hisi_hdc 
  --device /dev/devmm_svm 
  -v /usr/local/Ascend/driver:/usr/local/Ascend/driver 
  -v /usr/local/Ascend/firmware:/usr/local/Ascend/firmware 
  -v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi 
  -v /usr/local/sbin:/usr/local/sbin 
  -v /etc/hccn.conf:/etc/hccn.conf 
  deepseek_v3_mindspore2.5.0-infer:20250209 
  bash

执行以下Shell命令,将用于下载存储DeepSeek-V3权重文件的路径(开箱示例中为./model_path),添加至白名单:

export HUB_WHITE_LIST_PATHS=./model_path

使用以下Python脚本,从魔乐社区下载昇思MindSpore版本的DeepSeek-V3权重文件至指定路径。完整的权重文件约1.4TB,请确保指定路径下有充足的可用磁盘空间:

from openmind_hub import snapshot_download
snapshot_download(
  repo_id="MindSpore-Lab/DeepSeek-V3",
  local_dir="./model_path",
  local_dir_use_symlink=False
)

将./model_path/examples/predict_deepseek3_671B.yaml文件中的load_checkpoint参数配置为权重文件夹绝对路径,并将tokenizer_file参数和vocab_file参数配置为tokenizer.json文件绝对路径。

在第1台至第4台服务器上,分别执行以下Shell命令,通过msrun_launcher.sh启动单次推理测试脚本run_deepseekv3_predict.py,完成后将显示“生抽和老抽的区别是什么?”的问题回复。其中,master_ip需修改设置为第1台服务器的实际IP地址。

# 第1台服务器(Node 0)
export PYTHONPATH=/root/mindformers/:$PYTHONPATH
export HCCL_OP_EXPANSION_MODE=AIV
export MS_ENABLE_LCCL=off 
master_ip=192.168.1.1
cd model_path/DeepSeek-V3/examples
bash msrun_launcher.sh "run_deepseekv3_predict.py" 32 8 $master_ip 8888 0 output/msrun_log False 300
# 第2台服务器(Node 1)
export PYTHONPATH=/root/mindformers/:$PYTHONPATH
export HCCL_OP_EXPANSION_MODE=AIV
export MS_ENABLE_LCCL=off 
master_ip=192.168.1.1
cd model_path/DeepSeek-V3/examples
bash msrun_launcher.sh "run_deepseekv3_predict.py" 32 8 $master_ip 8888 1 output/msrun_log False 300
# 第3台服务器(Node 2)
export PYTHONPATH=/root/mindformers/:$PYTHONPATH
export HCCL_OP_EXPANSION_MODE=AIV
export MS_ENABLE_LCCL=off 
master_ip=192.168.1.1
cd model_path/DeepSeek-V3/examples
bash msrun_launcher.sh "run_deepseekv3_predict.py" 32 8 $master_ip 8888 2 output/msrun_log False 300
# 第4台服务器(Node 3)
export PYTHONPATH=/root/mindformers/:$PYTHONPATH
export HCCL_OP_EXPANSION_MODE=AIV
export MS_ENABLE_LCCL=off 
master_ip=192.168.1.1
cd model_path/DeepSeek-V3/examples
bash msrun_launcher.sh "run_deepseekv3_predict.py" 32 8 $master_ip 8888 3 output/msrun_log False 300

此外,还可参考魔乐社区MindSpore-Lab/DeepSeek-V3模型仓的ReadMe指引,进行推理服务化部署,然后通过访问与OpenAI兼容的RESTful服务端口,体验多轮对话服务。

MindSpore支持DeepSeek V3增量模块的快速开发

DeepSeek V3的关键网络结构的支持:

MTP:在MTP模块中,MindSpore通过shard()接口对MTP入口处的激活融合结构配置了序列并行,消除不必要的通讯重排。通过set_pipeline_stage()接口实现了embedding矩阵在first_stage 和last_stage间的参数共享,即由first_stage负责维护embedding的参数更新,训练前向时发送给last_stage,训练反向时从last_stage回收梯度。

AuxFree Balance:MindSpore的MoE模块中已支持全局的Expert负载统计, AuxFree Balance机制的实现是在callback中新增了根据全局专家负载而更新专家偏置的逻辑,从而达到在每个train step结束后做一次负载均衡调整的目的。

MoE Sigmoid激活:在Router score后的激活函数部分新增了可配置项,用户可以通过yaml文件灵活选择softmax或sigmoid作为激活函数,支持开发者灵活选择。

MindSpore对于DeepSeek V3推理网络的实现和优化

MindSpore针对DeepSeek V3的网络结构特点,高效地实现和优化了更高效的推理网络,最大化地压缩算子下发耗时和提升网络推理性能。

MLA:将FC、MatMul等超过10个小算子,融合成单个InferAttention-MLA算子,然后将其与已有的PageAttention算子,组合实现MLA模块功能。同时,在InferAttention-MLA算子内,设计了Key-Value张量存储复用机制,减少存储资源占用。

9990a19e-ed2a-11ef-9310-92fbcf53809c.png

图1 MLA推理网络实现原理

DeepSeekMoE:MindSpore优化精简了MoE的推理代码实现,并新增实现MoeUnpermuteToken、MoeInitRouting等多个融合大算子,用于组合实现DeepSeek-V3的MoE单元,降低了单个MoE单元的推理时延。

99a66d26-ed2a-11ef-9310-92fbcf53809c.png

图2 DeepSeekMoE推理网络实现原理

图编译:MindSpore推理使用了图编译进行加速,通过对整图进行Pattern匹配,无需修改模型脚本,即可实现整图的通用融合。以DeepSeekV3为例,在图编译过程中实现了Add+RmsNorm、SplitWithSize+SiLU+Mul等众多Pattern的自动融合。

99b865f8-ed2a-11ef-9310-92fbcf53809c.png图3 图编译原理

MindSpore框架特性助力DeepSeek V3训练性能提升

DeepSeek V3的训推适配过程中,通过MindSpore的MoE模块优化、Dryrun仿真等技术,在优化MoE的训练流程的同时,还实现了更高效的多维混合并行。

MoE模块优化:在MoE模块中可支持多种主流结构可配置,如共享专家、路由专家个数、激活函数选择等,极大地提升了模型的灵活性。在MoE并行方面支持TP-extend-EP、路由序列并行、MoE计算通讯掩盖、分组AllToAll通讯等多种并行模式和并行优化,用户可在配置中更灵活地使用相关并行加速能力。

Dryrun集群内存仿真与自动负载均衡:MindSpore的Dryrun工具可以根据训练任务模拟出集群中每卡的内存占用情况,从而在不实际占用集群的情况下,为训练的分布式并行策略调优提供快捷反馈。自动负载均衡工具SAPP为DeepSeek V3通过精确建模内存和计算负载,在内存约束条件下,求解最优的流水线并行的各Stage层数与重计算量,分钟级开销内自动获得最优流水线配置。

下一步,昇思MindSpore开源社区将上线DeepSeek V3微调样例与R1版本镜像,为开发者提供开箱即用的模型。未来,昇思开源社区将依托丰富的技术能力,持续优化DeepSeek V3系列模型的性能,加速模型从训练到生产部署端到端的创新效率,为开源开发者进行大模型创新提供了高效易用的基础软件与技术生态,促进千行万业智能化转型升级。

在使用模型中,有任何疑问和建议,均可通过社区进行反馈。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 华为
    +关注

    关注

    218

    文章

    35806

    浏览量

    260852
  • 开源
    +关注

    关注

    3

    文章

    4049

    浏览量

    45596
  • 昇腾
    +关注

    关注

    1

    文章

    175

    浏览量

    7302
  • DeepSeek
    +关注

    关注

    2

    文章

    825

    浏览量

    2845

原文标题:训推全面支持、开箱即用!DeepSeek V3昇思MindSpore版本上线开源社区

文章出处:【微信号:HWS_yunfuwu,微信公众号:华为数字中国】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    加速解锁科学智能前沿,MindSpore铸就了一把“全能”钥匙

    MindSpore正在推动更多治学之士与AI加速拥抱,融入科学智能的时代洪流
    的头像 发表于 08-09 20:14 1487次阅读
    加速解锁科学智能前沿,<b class='flag-5'>昇</b><b class='flag-5'>思</b><b class='flag-5'>MindSpore</b>铸就了一把“全能”钥匙

    了解DeepSeek-V3DeepSeek-R1两个大模型的不同定位和应用选择

    DeepSeek-V3DeepSeek-R1 是深度求索公司(DeepSeek)推出的两个不同定位的大模型,其核心差异主要体现在目标场景、能力侧重和技术优化方向上。以下是二者的实质性
    发表于 02-14 02:08

    MindSpore全场景AI框架1.6版本的关键特性

    版本MindSpore全场景AI框架易用性不断改进,提升了开发效率,控制流性能提升并支持副作用训练,与此同时,
    的头像 发表于 03-14 13:06 3133次阅读
    <b class='flag-5'>昇</b><b class='flag-5'>思</b><b class='flag-5'>MindSpore</b>全场景AI框架1.6<b class='flag-5'>版本</b>的关键特性

    MindSpore TechDay直播倒计时

    1.6版本MindSpore全场景AI框架发布了高效易用的图学习框架
    的头像 发表于 03-26 08:55 1931次阅读

    全场景AI框架MindSpore获得国际认可

    近日,全场景AI框架MindSpore正式通过了全球第一独立认证机构欧洲SGS Brightsight实验室的安全评估,获得CC EAL2+证书。这是国际上首份人工智能框架获得的CC证书,标志着
    的头像 发表于 04-26 10:08 2138次阅读

    凌智电子LockzhinerAI V1.0与华为技术有限公司AI框架MindSpore完成兼容性测试

    凌智电子LockzhinerAI V1.0与华为技术有限公司AI框架MindSpore完成兼容性测试。  
    的头像 发表于 01-30 18:02 2641次阅读
    凌智电子LockzhinerAI <b class='flag-5'>V</b>1.0与华为技术有限公司AI框架<b class='flag-5'>昇</b><b class='flag-5'>思</b><b class='flag-5'>MindSpore</b>完成兼容性测试

    人工智能框架生态峰会2023丨软通动力成为MindSpore开源社区理事会首批成员单位

    6月16日,人工智能框架生态峰会2023在上海隆重召开,本届峰会由上海临港经济发展(集团)有限公司、上海人工智能研究院、MindSpore开源
    的头像 发表于 06-16 23:45 900次阅读

    凌智电子LockzhinerAI V1.0与华为技术有限公司AI框架MindSpore完成兼容性测试

    凌智电子LockzhinerAI V1.0与华为技术有限公司AI框架MindSpore完成兼容性测试
    的头像 发表于 02-02 10:37 1448次阅读
    凌智电子LockzhinerAI <b class='flag-5'>V</b>1.0与华为技术有限公司AI框架<b class='flag-5'>昇</b><b class='flag-5'>思</b><b class='flag-5'>MindSpore</b>完成兼容性测试

    软通动力受邀参加“MindSpore AI框架”主题论坛,持续探索大模型创新实践

    华为全联接大会2023期间,华为举办了“MindSpore AI框架:引领大模型科学智能原生创新”主题论坛,软通动力数字化创新服务线高级副总裁、数字基础设施与集成总经理谢睿,软通动力首席架构师
    的头像 发表于 09-21 21:20 1434次阅读

    香橙派与MindSpore合作提速,软硬结合助力开发者构建创新AI应用

    近日,MindSpore开源社区与香橙派合作成果加速落地,持续为开发者提供普惠的端侧算力与好用的AI框架,软硬结合助力高校AI课程建设,
    的头像 发表于 11-01 17:02 1637次阅读
    香橙派与<b class='flag-5'>昇</b><b class='flag-5'>思</b><b class='flag-5'>MindSpore</b>合作提速,软硬结合助力开发者构建创新AI应用

    MindSpore预测2024年中国AI框架市场份额将达30%

    MindSpore凭借其持续的技术创新和生态繁荣发展,已经在全球范围内赢得了广泛的关注和认可。目前,MindSpore已经成功孵化并支持了50多个国内外主流的大模型,这些模型在各个
    的头像 发表于 12-17 10:02 732次阅读

    迅龙软件受邀参加华为人工智能框架峰会,展示X香橙派的创新AI案例

    12月14日,人工智能框架峰会在北京中关村国际创新中心召开,本次大会以“创新源动力,框架新选择”为主题,由MindSpore
    的头像 发表于 12-17 18:02 1218次阅读
    迅龙软件受邀参加华为<b class='flag-5'>昇</b><b class='flag-5'>思</b>人工智能框架峰会,展示<b class='flag-5'>昇</b><b class='flag-5'>思</b>X香橙派的创新AI案例

    DeepSeek-R1全尺寸版本上线Gitee AI

    DeepSeek 全套蒸馏模型以及 V3 版本上线后,经过 Gitee AI 和沐曦团队两天紧锣密鼓的适配和机器筹备,DeepSeek-
    的头像 发表于 02-07 15:25 1859次阅读

    DeepSeek V3/R1满血版登陆华为云

    为云平台上已经完成了全面的优化和准备工作,正式满足了业务商用部署的需求。 据悉,DeepSeek是华为在人工智能领域的一项重要成果,其V3/R1版本更是凭借其强大的性能和广泛的应用场景,受到了业界的广泛关注。此次
    的头像 发表于 02-13 11:19 1246次阅读

    软通动力受邀出席MindSpore联席会

    在世界人工智能大会 2025(WAIC 2025)举办期间,软通动力高级副总裁谢睿、数字基础设施与集成战略生态部总监王伟佳受邀出席 MindSpore 开源
    的头像 发表于 08-01 15:13 1142次阅读