- 視頻鏈接:微調一個模型需要多少GPU顯存? up 主頁:AI老兵
- tags: #GPU顯存 #模型微調 #LoRA #QLoRA #參數計算 本集視頻詳細介紹了在模型微調過程中 GPU
- 顯存需求的計算方法,包括全量微調和高效微調(如 LoRA)的情況。up 主通過具體示例,說明了如何估算不同規模模型和不同微調方法所需的 GPU 顯存大小。
1 全量微調的 GPU 顯存需求
1.1 主要顯存消耗模塊
- Model Weight: 模型本身的參數
- Gradient: 用于計算參數更新的梯度
- Optimizer State: 優化器狀態,取決于所使用的優化器類型
- 其他(如 Activation 等)
1.2 顯存需求計算示例(1B 模型,16bit 參數)
微調 1B 模型,16bit = 2byte
- Model Weight(模型參數): 2GB (10 億參數 * 2 byte/參數)
訓練模型時,通過一系列反向傳播的方法,來更新模型參數,涉及以下gradient?和optimizer states?參數。不斷計算梯度,以更新模型參數。
- Gradient(梯度): 2GB (通常與 Model Weight 相當)
- Optimizer State(優化器): 8GB(保守估計為 Model Weight 的 4 倍)
- 總計: 12GB(約6倍的model weight?顯存)
2 高效微調方法:LoRA
2.1 LoRA 微調原理
- 保持原有模型不變
- 學習更少量的參數(如原模型參數的 2.5%)
- 將學習結果與原模型結合形成新模型
2.2 LoRA 下的顯存需求(以 2.5%參數為例)
LORA只對部分參數進行學習,大幅減少顯存需求。顯存需求計算示例(假設 LoRA 模塊為原模型 2.5%):
- Model Weight(模型參數): 2GB(保持不變)
- Adapter Weight(適配器參數): 0.05GB (2GB * 2.5%)
- Gradient + Optimizer State(梯度+優化器): 0.25GB (10GB * 2.5%)
- 總計: 2.3GB
3 進一步優化:QLoRA
3.1 QLoRA 原理
- 通過量化(Quantization)方法進一步壓縮 Model Weight
- 可將 16bit 參數壓縮至 8bit 或 4bit
3.2 QLoRA 下的顯存需求
- Model Weight(模型參數): 可能降至 1GB 或 0.5GB
- 其他項目相應減少
4 實際項目中的其他考慮因素
- 單卡 vs 多卡訓練
- 單節點 vs 多節點訓練
- DeepSpeed 的 Zero3 或 Zero2 等優化策略
5 總結
模型微調所需的 GPU 顯存取決于多個因素,包括模型大小、微調方法和優化策略。全量微調需要較大顯存,而高效微調方法如 LoRA 和 QLoRA 可以顯著減少顯存需求。在實際項目中,還需考慮硬件配置和訓練策略等因素來更精確地估算 GPU 顯存需求。
參考資料
- 17 微調一個模型需要多少 GPU 顯存?
- 算法冷知識第3期-1B參數的大模型訓練需要多少顯存?