【新智元导读】
全网首发!DeepSeek V3/R1满血版低成本监督微调秘籍来了,让高达6710亿参数AI巨兽释放最强性能。
DeepSeek V3/ R1火爆全网,基于原始模型的解决方案和API服务已随处可见,陷入低价和免费内卷。
如何站在巨人肩膀上,通过后训练(post-training)结合专业领域数据,低成本打造高质量私有模型,提升业务竞争力与价值?
已收获近
4万GitHub Star
的Colossal-AI,发布
开源大模型后训练工具箱
,包含:
-
DeepSeek V3/ R1满血671B LoRA低成本SFT微调
-
完整的强化学习工具链 PPO,GRPO,DPO,SimPO等
-
无缝适配DeepSeek系列蒸馏模型在内的HuggingFace开源模型
-
兼容支持英伟达GPU、华为昇腾NPU等多种硬件
-
支持混合精度训练,gradient checkpoint等训练加速降低成本
-
灵活的训练配置接口,支持自定义奖励函数、损失函数等
-
提供灵活的并行策略配置接口,包括数据并行、模型并行、专家并行、ZeRO和Offload等,以适应不同硬件规模
开源地址:https://github.com/hpcaitech/ColossalAI
低成本监督微调满血版DeepSeek V3/R1 671B
DeepSeek V3/R1满血版参数高达6710亿,如何低成本进行低成本微调呢?仅需以下几个步骤,即可快速完成。
数据集准备
该脚本接收JSONL格式的文件作为输入数据集,例如:
https://github.com/hpcaitech/ColossalAI/blob/main/applications/ColossalChat/examples/training_scripts/lora_sft_data.jsonl
数据集的每一行应为一个聊天对话列表。例如:
[{"role": "user", "content": "你好,最近怎么样?"}, {"role": "assistant", "content": "我很好。今天有什么可以帮你的吗?"}]
[{"role": "user", "content": "火烧赤壁 曹操为何不拨打119求救?"}, {"role": "assistant", "content": "因为在三国时期,还没有电话和现代的消防系统,所以曹操无法拨打119求救。"}]
该数据格式,兼容Huggingface chat template,支持自定义system prompt,因此可灵活按需配置。
模型权重准备
为保证更好的微调效果,使用BF16权重进行微调。
如果已下载了FP8的DeepSeek V3/R1权重,可以使用DeepSeek官方脚本
https://github.com/deepseek-ai/DeepSeek-V3/blob/main/inference/fp8_cast_bf16.py
通过GPU将权重转换为BF16。
对于使用国产华为昇腾算力,可以下载
https://gitee.com/ascend/ModelZoo-PyTorch/blob/master/MindIE/LLM/DeepSeek/DeepSeek-V2/NPU_inference/fp8_cast_bf16.py
脚本转换权重。
使用方法
在准备好数据集和模型权重后,可使用Colossal-AI提供的一键启动脚本:
https://github.com/hpcaitech/ColossalAI/blob/main/applications/ColossalChat/examples/training_scripts/lora_finetune.py
该脚本与常见SFT脚本类似,且完全兼容HuggingFace PEFT,启动命令:
colossalai run --hostfile path-to-host-file --nproc_per_node 8 lora_finetune.py --pretrained path-to-DeepSeek-R1-bf16 --dataset path-to-dataset.jsonl --plugin moe --lr 2e-5 --max_length 256 -g --ep 8 --pp 3 --batch_size 24 --lora_rank 8 --lora_alpha 16 --num_epochs 2 --warmup_steps 8 --tensorboard_dir logs --save_dir DeepSeek-R1-bf16-lora
有关每个参数的更多详细信息,可以运行
python lora_finetune.py --help
查看。
该脚本可通过tensorboard记录学习率、loss、grad norm信息,方便对训练进行监控。
使用LoRA优化硬件资源消耗
通过使用LoRA等优化,示例命令已将SFT DeepSeek V3/R1 671B
最低硬件要求降低近10倍
,可使用32个Ascend 910B NPU 64GB(使用
ep=8,pp=4
)或24个H100/H800 GPU(使用
ep=8,pp=3
)。
如果你通过
--zero_cpu_offload
启用CPU offload,硬件要求可以进一步降低,但会损失一定的训练速度。
如下图验证,在SFT DeepSeek V3/R1 671B时,Loss可以顺利降低。
对于资金充裕的开发团队,也可以使用上述脚本,
将并行度高效扩展至数百及数千卡
,快速完成DeepSeek V3/R1 671B全参微调或并行加速。
对于预算有限,又想借助强化学习构建自己的类DeepSeek R1模型, Colossal-AI也提供了解决方案,并利用小模型对算法进行了验证。