近期,由
中国科学院自动化研究所
与
中科闻歌
联合推出的 DeepSeek-V3/R1 671B 全参数微调开源方案正式发布!该项目完整公开了从模型训练到推理的全流程代码与脚本,并附带了实际训练中的经验总结与优化建议,为大模型开发者提供了一套可直接落地实战的解决方案。
一、项目亮点
1、完整训练逻辑代码:
基于DeepSeek-V3论文,并结合DeepSeek-V2代码,该项目实现了包含训练核心逻辑的
modeling_deepseek.py
文件,确保与官方架构兼容。
2、高效并行训练策略:
支持
数据并行(DeepSpeed ZeRO)
与
序列并行(SP)
,在32台H100服务器集群上完成671B模型的满血版模型全参数微调。
3、训练实战经验总结:
提供多组实验配置对比(如不同超参数、并行策略选择下的显存占用),推荐最优训练参数,助开发者少走弯路。
二、项目意义
技术角度:
通过全参数微调,DeepSeek 模型能更好地训练并拟合目标任务模式和数据分布,整体训练效果优于 LoRA 等低资源微调方案。
应用角度:
针对模型在预训练阶段已具备基础知识的领域,全参数微调能够挖掘模型在特定垂直领域(如社会计算、媒体领域等)各种下游任务的性能潜力。
三、硬件配置
单台服务器配置如下表,集群共有 32 台相同配置的机器,共享 100TB 存储空间,挂载路径为
/nfs
。机器操作系统为 Ubuntu 22.04,机器之间使用 IB 网络进行通信,GPU 之间通过 NVLink 通信,CUDA 版本为 12.6。
四、环境配置
本项目基于 xtuner 框架进行扩展和改进,使其支持 Deepseek V3/R1(即
DeepseekV3ForCausalLM
模型架构)的全参数微调,支持数据并行(DeepSpeed ZeRO based DP)和序列并行(Sequence Parallel, SP)。安装 Python 环境,可根据项目中
requirements.txt
安装依赖包,并将
./code/xtuner
与
DeepseekV3ForCausalLM
训练相关的核心代码覆盖原始 xtuner package 的对应代码即可。
conda create -n ds_env python=3.10
conda activate ds_env
pip install -r requirements.txt
YOUR_ENV_PATH='/nfs/miniconda3/envs/ds_env/lib/python3.10/site-packages'
cp -r ./code/xtuner $YOUR_ENV_PATH
五、数据准备
该项目基于 OpenAI 标准数据格式进行扩展以兼容 reasoning 数据,每条原始训练数据格式如下。如果有思考过程,则 assistant 角色的 reasoning_content 字段非空。
{
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "用户问题"},
{"role": "assistant", "content": "最终回答", "reasoning_content": "思考过程"}
]