亚洲精品一区二三区在线观看_久久美_91妖精视频_成av人电影在线_久久久国产精品免费_久热亚洲

首頁 > 生活分享 > 免費教學 > DeepSeek用的GRPO占用大量內存?有人給出了些破解方法

DeepSeek用的GRPO占用大量內存?有人給出了些破解方法

發布時間:2025-02-07 19:15:56來源: 15210273549
RTX 3080 移動版能訓練哪種大模型?本文為那些 GPU 資源有限時使用 GRPO 訓練的開發者提供了寶貴的指導。
 
自 DeepSeek-R1 發布以來,群組相對策略優化(GRPO)因其有效性和易于訓練而成為大型語言模型強化學習的熱門話題。R1 論文展示了如何使用 GRPO 從遵循 LLM(DeepSeek-v3)的基本指令轉變為推理模型(DeepSeek-R1)。
 
GRPO 是一種在線學習算法(online learning algorithm),它通過使用訓練過程中由訓練模型自身生成的數據來進行迭代改進。GRPO 的目標是最大化生成補全(completions)的優勢函數(advantage),同時確保模型保持在參考策略(reference policy)附近。
 
 
本文的目的是幫你節省一些時間,讓你根據硬件預算選擇合適的模型大小。在開始微調時,你必須做出的重要決定是選擇模型大小,以及你是執行完全微調還是參數高效微調(PEFT)。
 
文章作者來自 AI 公司 Oxen.ai 的 CEO Greg Schoeninger。
 
 
原文鏈接:https://www.oxen.ai/blog/grpo-vram-requirements-for-the-gpu-poor
 
作者表示,他發現 trl 庫中已經有一個易于使用的 GRPO 實現,便立刻開始了訓練,使用的硬件是配備了 16GB 顯存的 Nvidia GeForce RTX 3080 的小型筆記本電腦。正如大家可能遇到的問題,作者發現示例代碼中的參數設置導致了一個巨大的顯存不足(OOM,out of memory )錯誤。
 
torch
.
OutOfMemoryError
:
CUDA
out
of memory
.
Tried
to allocate
1.90
 
GiB
.
GPU
0
has a total capacity of
15.73
 
GiB
of which
1.28
 
GiB
 
is
free
.
 
Including
non
-
PyTorch
memory
,
 
this
process has
14.43
 
GiB
memory
in
 
use
.
 
Of
the allocated memory
11.82
 
GiB
 
is
allocated
by
 
PyTorch
,
 
and
 
2.41
 
GiB
 
is
reserved
by
 
PyTorch
but unallocated
.
 
If
reserved but unallocated memory
is
large
try
setting PYTORCH_CUDA_ALLOC_CONF
=
expandable_segments
:
True
to avoid fragmentation
.
 
See
documentation
for
 
Memory
 
Management
 
(
https
:
//pytorch.org/docs/stable/notes/cuda.html#environment-variables)
實際使用情況
 
作者表示,他們進行了一系列實驗,以確定訓練各種大小的模型所需的顯存(VRAM)要求。參數數量從 5 億到 140 億不等,他們比較了權重的完全微調與參數高效微調(使用 LoRA),所有訓練運行都在英偉達 H100 上完成,因此這里的 OOM 意味著 >80GB 的 VRAM。
 
 
在表格中,你可以找到 GSM8K 數據集上訓練的前 100 步中的峰值內存使用情況。用于實驗的模型是:
 
 
所有實驗均使用 Shadeform 的 GPU 市場完成,因此每次實驗只需要花費幾美元 H100。
 
實驗結果表明,內存需求隨著模型大小和訓練方式的不同而顯著變化。例如,全參數微調比 PEFT 需要更多的內存。
 
為什么 GRPO 對內存需求較高
 
這要從 GRPO 的原理說起,這是它的流程圖。
 
 
GRPO 對內存需求較高的原因在于,其內部涉及多個模型,并且在訓練數據中每個查詢會產生多個輸出。上圖中的策略模型、參考模型和獎勵模型各自都是一個需要進行推理的 LLM。(盡管從技術上講,獎勵模型可能不需要參數化,可以只是一個 Python 函數或正則表達式,但不影響 GRPO 對內存的高需求。)
 
為什么 8-Bit 優化和梯度檢查點有助于減少內存占用?
 
通常來講,訓練一個大型語言模型需要在內存中存儲三種主要類型的信息:模型參數、模型學習所需的梯度、優化器的跟蹤數據。
 
對上述內容我們可以這樣理解:如果模型的參數占用了 X 的空間,那么梯度也會占用大約相同的空間。然后,像 AdamW 這樣的優化器需要更多的空間,因為它們就像一個記錄員,跟蹤最近的更新歷史,以便更好地決定未來的優化。
 
為了減輕這種內存負擔,通常采用兩種技術:
 
首先,可以使用像 AdamW 這樣的 8-bit 優化器版本,它們能更高效地存儲跟蹤數據,同時仍保持良好的性能 —— 類似于壓縮照片可以節省空間,同時保留大部分圖像質量;
其次,使用梯度檢查點技術,這就像在訓練過程中拍攝快照,而不是記錄所有內容。雖然這會使訓練速度減慢約 20-30%,但它顯著減少了內存使用。
結合這些技術,即使對 GPU 資源有限的人來說,也能夠訓練更大的模型。
 
代碼示例
 
像 trl 這樣的庫已經開始支持 GRPO,使得微調由 transformers 構成的 LLM 變得非常簡單。代碼也非常簡潔,只需將訓練器替換為 GRPOTrainer 并定義一些獎勵即可。GRPO 的最小代碼量大約只有 99 行,如果你使用的是像 meta-llama/Llama-3.2-1B-Instruct 這樣的小型模型和像 openai/GSM8K 這樣的數據集,可以非常快速地啟動。
主站蜘蛛池模板: 国产福利不卡 | 国产伦精品一区二区三区高清 | 日本午夜大片免费观看视频 | 精品国产视频在线观看 | 欧美日韩国产一区 | 亚洲国产一区视频 | 黄色综合网站 | 日本亚洲精品色婷婷在线影院 | 久久精品视在线观看2 | 综合久久亚洲 | 蜜桃av一区二区三区 | a视频免费| 欧美视频三区 | 中文字幕专区 | 91在线激情 | 国产精品一区二区在线观看 | 欧美日韩国产综合视频在线看 | 国产亚洲精品久久久久久久网站 | 亚洲国产精品日韩高清秒播 | 欧美网站www | 亚洲精品欧美一区二区三区 | 一级做a爰片久久毛片 | 国产精品美女久久久免费 | 日本高清一区二区三区不卡免费 | av午夜电影 | 日本一区免费 | 高清视频一区 | 国产aⅴ一区二区三区 | 日本成人在线网站 | 欧美精品久久久久久久久久 | 午夜久草| 国产福利视频一区 | 91在线免费视频 | 免费观看日韩大尺码观看 | 免费一级在线 | 亚洲欧美日韩精品久久奇米色影视 | 91青青草视频在线观看 | 91视频综合网 | 蜜桃av一区二区三区 | 欧美精品综合 | 一级成人毛片免费观看欧美 |