国产成人午夜视频_精品999_久久精品久久精品_仙人掌旅馆在线观看_成人在线国产_国产99999

首頁 > 生活分享 > 免費教學 > 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 這樣的數據集,可以非常快速地啟動。
主站蜘蛛池模板: 久久国产精品网站 | 99在线免费观看 | av影音资源 | 欧美精品在线播放 | 亚洲精品视频播放 | 91av国产在线视频 | 成人欧美一区二区三区黑人孕妇 | 国产一区二区久久 | 久久九九免费 | 欧美不卡网站 | 99久久久久 | 在线观看成年人视频 | 亚洲精品久久久久国产 | 免费能直接在线观看黄的视频 | 国产精品一区二区日韩 | 色网在线观看 | 欧美二区在线 | 国产成年人小视频 | 日本福利视频 | 欧美在线一区二区三区 | 国产精品精品视频一区二区三区 | 欧美精产国品一二三区 | 亚洲免费大片 | 久久9999久久 | 欧美 日韩 国产 一区 | 91视频国产区 | 在线中文字幕国产 | 亚洲福利 | 国产高清在线 | 99亚洲精品 | 成人亚洲性情网站www在线观看 | 黄色大片免费网站 | 久久精品高清视频 | 国产人免费人成免费视频 | 国产xxxx在线 | 精品国产99 | 一级毛片在线播放 | 精品国产伦一区二区三区观看体验 | 久久大陆 | 欧美日韩亚洲视频 | 97caoporn国产免费人人 |