今天小編分享的科學經驗:DeepSeek滿血微調秘籍開源!站在巨人肩膀打造私有模型,一手教程在此,歡迎閱讀。
DeepSeek 爆火甚至引發 API 低價内卷……
但是别忘了開源模型的最大好處是提供了" 巨人的肩膀 "啊!
微調 DeepSeek-V3/R1,低成本打造高質量私有模型、提高業務競争力,或許才是當下行業内更迫切的需求。
就在剛剛,已收獲近4 萬 GitHub StarColossal-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
6710 億參數規模的 DeepSeek-V3/R1 低成本微調,僅需以下幾步,即可快速完成。
數據集準備
該腳本接收 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 權重進行微調。
使用方法
在準備好數據集和模型權重後,可使用 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 也提供了解決方案,并利用小模型對算法進行了驗證。
通過強化學習微調蒸餾版 DeepSeek
Colossal-AI 團隊驗證并實現了 DeepSeek 論文中的GRPO 算法及 verifiable reward,使用 Qwen2.5-3B-Base 模型進行了實驗。其中,獎勵的設計如下:
獎勵 =0,如果格式是正确的;
獎勵 =1, 如果格式是正确的但是結果是錯誤的;
獎勵 =10,如果格式與結果都是正确的。
Colossal-AI 團隊以 Qwen2.5-3B-Base 模型為例,提供了用于驗證 GRPO 的對話模板及設定
(https://github.com/hpcaitech/ColossalAI/blob/main/applications/ColossalChat/conversation_template/Qwen_Qwen2.5-3B.json),通過配置以下 bash 檔案,即可一鍵啟動:
https://github.com/hpcaitech/ColossalAI/blob/main/applications/ColossalChat/examples/training_scripts/train_grpo.sh
同時,在 GRPO 章節,Colossal-AI 團隊還提供了驗證過程中的部分發現及各種參數的詳細描述,可供參考。
代碼中設計了可靈活配置獎勵函數的模板,因此,用戶可根據自己的具體情況設計自己的獎勵函數體系。
由下圖可以看到,即使是 3B 的模型,平均獎勵與模型回復長度随着時間逐步增長。
随着訓練的進行,我們可以看到一些有意思的例子。例如随着訓練迭代,模型開始了自我糾正:
Colossal-AI:最佳後訓練工具箱
Colossal-AI 在深耕大模型預訓練降本增效的基礎上,致力于進一步成為開發者開箱即用的最佳後訓練工具,幫助用戶基于開源模型,低成本快速構建私有模型。
開源地址:https://github.com/hpcaitech/ColossalAI
— 完 —
一鍵關注 點亮星标
科技前沿進展每日見
一鍵三連「點贊」「轉發」「小心心」
歡迎在評論區留下你的想法!