通过百舸平台微调满血版 DeepSeek-R1、DeepSeek-V3 模型
更新时间:2025-03-12
百舸异构计算平台AIAK-Training-LLM训练加速套件已经全面支持 DeepSeek-V3/R1 模型的微调,包含满血版 V3 和 R1 模型,以及基于 DeepSeek-R1 蒸馏后的六个小模型。您可以在平台分布式训练模块中,可一键发起全系列 DeepSeek 模型精调。
前置条件
算力和存储资源准备
算力资源
下表给出了不同模型在百舸默认参数和数据集的情况下,训练所依赖的最低配置:
模型名称 | 支持的训练方式 | 资源配置(以A800为例) | 备注 |
---|---|---|---|
DeepSeek-V3 | Post-Pretrain & SFT 全参更新 | A800: 32机256卡 | 当前仅支持BF16精度训练 |
DeepSeek-R1 | A800: 32机256卡 | 当前仅支持BF16精度训练 | |
DeepSeek-R1-Distill-Qwen-1.5B | A800: 1机8卡 | ||
DeepSeek-R1-Distill-Qwen-7B | A800: 2机16卡 | ||
DeepSeek-R1-Distill-Llama-8B | A800: 2机16卡 | ||
DeepSeek-R1-Distill-Qwen-14B | A800: 2机16卡 | ||
DeepSeek-R1-Distill-Qwen-32B | A800: 4机32卡 | ||
DeepSeek-R1-Distill-Llama-70B | A800: 4机32卡 |
存储资源
为保证训练的性能,推荐使用并行文件存储PFS。
模型文件和数据准备
模型下载
百舸AIAK-Training-LLM大模型加速套件支持对deepseek 模型提供训练加速能力,需要注意:
- AIAK-Training-LLM 是基于 Megatron 构建的大模型训练库, Megatron 模型权重格式和开源的格式(如 huggingface)存在区别,因此,当用户需基于开源权重进行再训练时,需要提前将模型权重格式进行转换为megatron core格式。详细请参考checkpoint格式转换。
- AIAK-Training-LLM 对于deepseek-R1/V3 671B参数的模型,当前仅支持bf16精度的训练,从开源下载的deepseek-R1/V3模型权重,默认权重精度为fp8,因此需要提前将 FP8转换为 FP16,可以采用官方转换脚本处理,详见:
https://github.com/deepseek-ai/DeepSeek-V3/blob/main/inference/fp8_cast_bf16.py
仅精调满血版V3/R1模型需要进行模型精度转换步骤,精调其他模型(例如 R1 Distill 系列模型)不需要进行模型精度转换
百舸预置模型下载(推荐)
百舸平台已经在对象存储BOS中,预置 deepseek-V3/R1模型原始权重文件以及转换后的megatron core格式,方便用户快速开始。您可以从对应地域的BOS路径中下载模型。
以deepseek-v3为例,模型权重地址如下
huggingface 的 bf16 版 checkpoint 文件:bos://cce-ai-datasets/cce-ai-datasets.bj.bcebos.com/deepseek-ai/DeepSeek-V3-bf16
mcore 的 bf16 版本 checkpoint 文件:bos://cce-ai-datasets/cce-ai-datasets.bj.bcebos.com/deepseek-ai/DeepSeek_V3_bf16_tp1pp32ep8
更多模型的权重文件,请联系您的服务支持同学获取
通过百舸平台从开源社区下载
- 登录百舸异构计算平台AIHC控制台。
- 在左侧导航中选择 数据下载
- 进入数据集/模型管理页面,点击 创建数据集/模型
- 创建内容选择模型,复制开源模型名称,即可一键从HuggingFace下载模型权重文件存储到BOS对象存储中。
- 转存成功后,可以将模型权重文件从对象存储BOS转存至您的并行文件存储PFS中
从Huggingface社区下载的模型权重文件为Huggingface格式,还需要转换为megatron core格式。详细请参考checkpoint格式转换。
数据准备
这里我们进行SFT全参微调,关于数据集的配置,详见SFT训练数据集配置和处理。
百舸平台已经在对象存储BOS中,预置训练数据集,方便用户快速开始。您可以从对应地域的BOS路径中下载数据。
bos:/ai-data/Congliu/Chinese-DeepSeek-R1-Distill-data-110k-SFT
进行训练
- 登录百舸异构计算平台AIHC控制台。
-
进入 分布式训练 列表页面,点击创建任务,填写任务配置信息:
-
基础信息
- 任务名称:输入您的自定义任务名称
- 资源池&队列:选择已创建的资源池和队列
- 优先级:默认 中 优先级,无需更改
- 训练框架:选择Pytorch
- 任务创建方式: 选择 基于AIAK训练加速模版创建 > Nvidia > AIAK-Training-LLM v2.0
- AIAK训练模版:支持deepseek-v3/r1全系模型,这里选择deepseek-v3 > deepseek-v3-bf16
-
环境配置
- 镜像地址:无需更改,AIAK-Training-LLM默认
- 执行命令:系统已经默认训练的启动参数,需要将
DATA_PATH
、CHECKPOINT_LOAD_PATH
、TOKENIZER_PATH
以及TENSORBOARD_PATH
替换成用户自定义路径 - 环境变量:无需更改
-
资源配置
- 实例数:这里我们选择的是deepseek-v3-bf16模型的微调,需要32台A800机器
- 加速芯片:这里选择提前准备的NVIDIA A800-SXM4-80G,单实例8卡
- 共享内存:默认10Gi,无需更改
- RDMA:默认开启,无需更改
-
设置数据源
- 存储类型:这里选择我们提前准备的PFS
- PFS源路径:PFS的挂载路径,默认根目录,按实际情况填写
- 挂载路径:容器内的挂载路径
-
高级设置:
- 开启tensorboard:开启,请确保这里填写的路径和代码中的Tensorboard日志路径一致
-
- 点击 完成,提交训练任务。
观察训练效果
任务提交后,您可以通过任务日志观察训练的迭代情况,也可以打开tensorboard ,可查看训练指标监控。