黑科技來了!開源LLM微調神器Unsloth近期更新,將GRPO訓練的記憶體使用減少了80%!只需7GB VRAM,本地就能體驗AI「啊哈時刻」。
李飛飛團隊僅用16張H100訓了26分鐘,訓出的模型就超越了o1-preview,震動業內。
可以說,DeepSeek-R1已經讓全球AI模型走向了推理新時代。
甚至利用其訓練方法GRPO,AI開源界開始了競賽:看誰能用最少的成本,復現AI的「啊哈時刻」。
而就在剛剛,DeepSeek-R1的推理成本徹底被打下來了!
開放原始碼專案Unsloth AI帶來了好消息,不用雲服務,本地也能體驗「Aha」 時刻:
現在可以在本地裝置上復現DeepSeek-R1的推理!
只需7GB VRAM,你就能體驗到「Aha」時刻。
Unsloth把GRPO訓練需要的記憶體減少了80%。
15GB VRAM就可以把Llama-3.1(8B)和Phi-4(14B)轉變為推理模型。
沒有看錯:只需7GB VRAM的GPU,AI模型在本地就能體驗「啊哈時刻」。
什麼是AI的「啊哈時刻」?有什麼作用?
熟悉AI的都知道,對人類很簡單的問題,對AI可能很難。比如:
9.11和9.9相比,那個大?
但體驗過「Aha」時刻後,AI模型Phi-4就能完成這類問題:從無推理能力的模型,化身為DeepSeek-R1同款推理模式,帶有原始思維鏈、展示推理過程的那種!
總之,如果現在你已經有輸入和輸出資料(比如問題和答案),但沒有CoT或推理過程,那就可以見證GRPO創造的奇蹟了——
它能為你建立推理過程,甚至做出更多!
現在,這個方法已經在AI社區爆火,討論的聲浪越來越高了。
Unsloth推出推理功能
DeepSeek的R1研究揭示了「Aha」時刻,通過群體相對策略最佳化(Group Relative Policy Optimization,GRPO),在沒有人類反饋的情況下,R1-Zero自動學會了如何分配更多的思考時間。
Unsloth對整個GRPO過程進行了增強,相比Hugging Face+FA2,VRAM使用減少了80%。
這意味著只需7GB VRAM,使用Qwen2.5(1.5B)就能重現R1-Zero的「Aha」時刻。
對於包含其他模型的GRPO,參閱下列文件。
此次,unsloth更新主要增強了對DeepSeek-R1-Zero強化學習訓練方法的GRPO支援,減少了對記憶體的佔用。
主要亮點如下:
GRPO帶來的「Aha」時刻
在使用純粹的強化學習(RL)訓練R1-Zero時,DeepSeek觀察到了神奇的「啊哈時刻」——
在沒有任何人類的指導或預定義的指令的情況下,模型竟開始重新評估其初始方法,學會了延長思考時間。
即便只使用GRPO對Phi-4做100步的訓練,結果也一目瞭然:未使用GRPO的模型沒有思考token,使用GRPO訓練後的模型則具有思考token,而且得出了正確答案!
這種「啊哈時刻」表明,GRPO不僅幫助模型提升推理能力,還能讓模型在沒有外部提示的情況下,學會自我反思和調整,從而提高問題解決的質量。
回到「9.11和9.9那個大?」的問題,沒有GRPO訓練前,Phi-4介紹了如何從左到右按位比較小數,堅持認為雖然十分位上1<9,但百分位上1>0,而9.9可以寫作9.90, 所以:「9.11比9.90大」。
經過GRPO訓練,Phi-4已經能正確分析回答此問題了,而且推理過程清晰,嚴絲合縫——
在推理過程中的第2步,基於十分位的比較,已經得出了正確答案;在第3步,依然比較了9.11和9.90的百分位,但這次AI模型發現比較百分位並不影響在第2步得出的結果。
Phi-4在GRPO訓練前後比較,提示為:「Which is bigger? 9.11 or 9.9?」
這就是GRPO的「魔力」。
GRPO是一種強化學習(RL)演算法,與近端策略最佳化(Proximal Policy Optimization,PPO)不同,它不依賴值函數,能夠更高效地最佳化模型的回答質量。
在項目的Notebook中,使用GRPO訓練模型,能夠自主發展出自我驗證(self-verification)和搜尋能力,從而創造出一個迷你「Aha 時刻」。
GRPO的大致流程如下:
1 模型生成多組回答
2 根據正確性或其他設定的獎勵函數,對回答進行評分(不同於使用LLM作為獎勵模型)
3 計算該組回答的平均得分
4 將每個回答的得分與組內平均得分進行比較
5 增強模型對高分回答的偏好
舉例來說,假設要模型解決下列問題:
What is 1+1? >> Chain of thought/working out >> The answer is 2.
What is 2+2? >> Chain of thought/working out >> The answer is 4.
最初,必須收集大量資料來填充工作/思維鏈。
但是,GRPO(DeepSeek使用的演算法)以及其他RL演算法可以引導模型自動表現出推理能力,並建立推理軌跡。
RL不需要資料,相反需要精心設計的獎勵函數或驗證器。例如,如果它得到了正確答案,就給它打1分;如果有些單詞拼寫錯誤,就減0.1分。以此類推。
強強聯合:在Unsloth中使用GRPO
如果在本地使用GRPO進行訓練,請先安裝必要的依賴項:pip install diffusers。
訓練提示:耐心等待至少300步才能看到獎勵分數的明顯提升;為了確保最佳相容性,請使用最新版本的vLLM。
Colab示例僅訓練了1小時,結果較一般,要獲得高品質結果,建議訓練至少12小時(但可以隨時停止)。
較小的模型可能無法生成思考token,建議至少使用1.5B參數的模型,正確生成「思考token」(thinking tokens)。
如果使用基礎模型,請確保載入正確的Chat範本(避免格式問題)。
Unsloth現已內建GRPO訓練損失跟蹤功能,無需再使用外部工具(如wandb)。
除了新增GRPO支援,還增加了對Online DPO(線上直接偏好最佳化)、PPO(近端策略最佳化)和RLOO(強化學習偏好最佳化)的支援!
電腦工程專業的碩士生Keith Truongcao,在Unsolth中實現了Online DPO演算法。
在TLDR資料集 ,他使用GPT 4o-mini作為判斷模型,與原始模型(下圖用綠色表示)相比,微調後的AI模型勝率都有所提升:Online DPO模型(下圖用紫色表示)的勝率顯著高於原始模型,並且比SFT模型(下圖用紅色表示)高出12%,充分證明了強化學習訓練方法的有效性。
借助Unsloth的最佳化,線上DPO(Direct Preference Optimization微調的視訊記憶體需求大幅降低。當batch size為1且使用梯度累積時,所需視訊記憶體僅為20GB。
相比之下,標準的Llama 3.2(10億參數模型) 需要50GB視訊記憶體,但在嘗試額外分配2GB視訊記憶體時,會發生OOM(記憶體溢出)錯誤。更令人驚訝的是,即使在配備48GB視訊記憶體的A40 GPU上,標準Llama也會直接崩潰。
更多詳情,請參閱Keith的下列文章,其中包括如何讓線上DPO正常工作更多細節。
另一位活躍的開源貢獻者Joey,在X上也詳細介紹了自己如何在Google Colab上實現GRPO變更的方法。
Unsloth x vLLM:更高吞吐量和更少VRAM消耗
現在,在微調流程中,可以直接使用vLLM,這使得模型的吞吐量大幅提升,並且可以同時進行微調和推理。
在1x A100 40GB GPU上,使用Unsloth動態4bit量化的Llama 3.2 3B Instruct,吞吐量大約為4000 tokens/s。
在16GB Tesla T4(免費Colab GPU)上,吞吐量大約為300 tokens/s。
而且,因為Unsloth還神奇地去除了vLLM和Unsloth一起載入時的雙重記憶體使用,因此讓Llama 3.1 8B節省了約5GB VRAM,讓Llama 3.2 3B節約了3GB VRAM。
載入模型時不再需要額外的記憶體開銷。
Unsloth可以在單張48GB GPU上微調Llama 3.3 70B Instruct,其中Llama 3.3 70B的權重佔用40GB VRAM。
這是Unsloth的原創功能。
而如果不最佳化記憶體管理,同時載入Unsloth和vLLM,會導致VRAM雙倍佔用,從而需要至少80GB VRAM才能運行。
而且上手非常快,只要兩步:
1. 現在,vLLM可以載入Unsloth Dynamic 4-位元量化。就像Unsloth的1.58位元動態R1 GGUF一樣,發現將某些層動態量化為4位元,將某些層動態量化為16位元,在減小模型規模的同時,顯著提高精確度。
2. 對於RAM、VRAM效率和最大吞吐量(如分塊預填充標記數、最大序列數等)等設定,還可以自動選擇多個參數。在vLLM中默認啟用-O3並啟用前綴快取。發現老GPU上的Flashinfer實際上要慢10%。FP8 KV快取會讓速度慢10%,但吞吐量會翻倍。
3. 在vLLM中通過解析狀態字典,允許載入LoRA,而不是從磁碟載入——可以讓GRPO訓練運行速度提高1.5倍。在vLLM中直接編輯LoRA介面卡,相關研究是否活躍。這可以大大提高速度,因為目前版本的演算法還做了不必要的GPU資料移動。
4. vLLM會詭異地出現隨機VRAM峰值,尤其是在批次生成時。為此在unsloth中,加入了批次生成功能,以減少記憶體峰值。
Unsloth團隊介紹
另外值得一提的是,Unsloth目前在Github上有2萬多星,但核心團隊Unsloth AI,只有兩兄弟。
Daniel Han,Unsloth AI的CTO,2021年畢業於雪梨科技大學。2022-2023年,在雪梨的MoonShot AI擔任開源開發者。
Michael Han,Unsloth AI的CEO,2019年畢業於新南威爾士大學(The University of New South Wales,UNSW)。在實習期間,他曾提高了多個演算法實現的速度。
參考資料:
https://unsloth.ai/blog/r1-reasoning
https://x.com/UnslothAI/status/1887562753126408210 ( 新智元 )