大模型微調中顯存占用和訓練時間的影響因素

BatchSize

顯存占用:與batch_size呈線性關系,可理解為 M t o t a l = M f i x e d + B a t c h S i z e ? M p e r ? s a m p l e M_{total}=M_{fixed}+BatchSize*M_{per-sample} Mtotal?=Mfixed?+BatchSize?Mper?sample?,其中 M f i x e d M_{fixed} Mfixed?指的是模型本身固定占用的顯存(由參數數量決定)和優化器狀態(也由參數數量決定)

總訓練時間:理論上與BatchSize無關(總數不變,單步訓練時間增加,總步數減少),但實際中隨BatchSize越大,總時間可能減少(硬件并行效率提升),直到顯存或硬件并行能力達到瓶頸。

截斷長度(輸入序列分詞后的最大長度,即每條樣本被大模型讀取的最大長度)

1. 顯存占用

在大型語言模型(如 Transformer)中,顯存占用主要與模型的激活值(Activations)有關,而激活值的大小受到輸入序列長度(即截斷長度)的直接影響。以下是逐步分析:

激活值的定義

激活值是指模型在正向傳播過程中每一層計算出的中間結果,通常存儲在顯存中,以便反向傳播時計算梯度。對于 Transformer 模型,激活值主要與注意力機制(Self-Attention)和前饋網絡(Feed-Forward Network, FFN)的計算相關。

顯存占用的組成

顯存占用主要包括:

  • 模型參數(權重和偏置):與模型規模(層數、隱藏維度)相關,與截斷長度無關。
  • 激活值:與輸入序列長度(截斷長度 L L L)、批次大小(batch size B B B)、隱藏維度(hidden size H H H)和層數( N N N)成正比。
  • 梯度(訓練時):與參數量和激活值大小相關。

對于激活值部分,顯存占用主要來源于:

  1. 注意力機制:計算 Q ? K T Q \cdot K^T Q?KT的注意力分數矩陣,尺寸為 ( B , L , L ) (B, L, L) (B,L,L),每層需要存儲。
  2. 中間張量:如 V V V的加權和、前饋層的輸出等。
數學表達式

假設: L L L:截斷長度(序列長度), B B B:批次大小, H H H:隱藏維度, N N N:模型層數, P P P:浮點數精度(如 FP32 為 4 字節,FP16 為 2 字節)

激活值的顯存占用近似為:
顯存 激活值 ≈ N ? B ? L ? H ? P + N ? B ? L 2 ? P \text{顯存}_{\text{激活值}} \approx N \cdot B \cdot L \cdot H \cdot P + N \cdot B \cdot L^2 \cdot P 顯存激活值?N?B?L?H?P+N?B?L2?P

  • 第一項 N ? B ? L ? H ? P N \cdot B \cdot L \cdot H \cdot P N?B?L?H?P:表示每層的線性張量(如 Q , K , V Q, K, V Q,K,V或 FFN 輸出)的顯存占用。
  • 第二項 N ? B ? L 2 ? P N \cdot B \cdot L^2 \cdot P N?B?L2?P:表示注意力分數矩陣的顯存占用(僅在標準注意力機制中顯著,若使用優化如 FlashAttention,則可能減少)。

結論:顯存占用與截斷長度 L L L呈線性( O ( L ) O(L) O(L))到二次方( O ( L 2 ) O(L^2) O(L2))的關系,具體取決于注意力機制的實現方式。


2. 訓練時間

訓練時間主要與計算量(FLOPs,浮點運算次數)和硬件并行能力有關,而截斷長度會影響計算量。

計算量的組成
  1. 注意力機制:每層的計算量與 L 2 L^2 L2相關,因為需要計算 L × L L \times L L×L的注意力矩陣。
  2. 前饋網絡:每層的計算量與 L L L線性相關,因為對每個 token 獨立計算。

總計算量(FLOPs)近似為:
FLOPs ≈ N ? B ? ( 2 ? L 2 ? H + 4 ? L ? H 2 ) \text{FLOPs} \approx N \cdot B \cdot (2 \cdot L^2 \cdot H + 4 \cdot L \cdot H^2) FLOPsN?B?(2?L2?H+4?L?H2)

  • 2 ? L 2 ? H 2 \cdot L^2 \cdot H 2?L2?H:注意力機制的矩陣乘法(如 Q ? K T Q \cdot K^T Q?KT softmax ? V \text{softmax} \cdot V softmax?V),
  • 4 ? L ? H 2 4 \cdot L \cdot H^2 4?L?H2:前饋網絡的計算(假設 FFN 隱藏層維度為 4 H 4H 4H)。
訓練時間

訓練時間與 FLOPs 成正比,同時受硬件并行能力(如 GPU 的計算核心數)影響。假設每秒浮點運算能力為 F GPU F_{\text{GPU}} FGPU?(單位:FLOPs/s),則單次前向+反向傳播的訓練時間為:
時間 ≈ FLOPs F GPU ≈ N ? B ? ( 2 ? L 2 ? H + 4 ? L ? H 2 ) F GPU \text{時間} \approx \frac{\text{FLOPs}}{F_{\text{GPU}}} \approx \frac{N \cdot B \cdot (2 \cdot L^2 \cdot H + 4 \cdot L \cdot H^2)}{F_{\text{GPU}}} 時間FGPU?FLOPs?FGPU?N?B?(2?L2?H+4?L?H2)?

結論:訓練時間與截斷長度 L L L呈線性( O ( L ) O(L) O(L))到二次方( O ( L 2 ) O(L^2) O(L2))的關系,具體取決于注意力機制的計算占比。


3. 總結

  • 顯存占用:與 L L L O ( L ) O(L) O(L) O ( L 2 ) O(L^2) O(L2)關系,取決于是否存儲完整的注意力矩陣。
  • 訓練時間:與 L L L O ( L ) O(L) O(L) O ( L 2 ) O(L^2) O(L2)關系,注意力機制的二次項通常更顯著。

1

假設某模型大小為5GB,推理所需顯存也為5GB,普通Lora微調(FP16)所需顯存為5GB*2=10GB,8bit的QLora量化為5GB/2=2.5GB,4bit的QLora量化為5GB/4=1.25GB

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/72393.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/72393.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/72393.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【排序算法對比】快速排序、歸并排序、堆排序

排序算法對比:快速排序、歸并排序、堆排序 1. 快速排序(Quick Sort) 原理 快速排序采用 分治法(Divide and Conquer),通過選取基準值(pivot),將數組劃分為 小于基準值…

PentestGPT 下載

PentestGPT 下載 PentestGPT 介紹 PentestGPT(Penetration Testing GPT)是一個基于大語言模型(LLM)的智能滲透測試助手。它結合了 ChatGPT(或其他 GPT 模型)與滲透測試工具,幫助安全研究人員自…

防火墻虛擬系統實驗

一實驗拓撲 二實驗過程 配置資源 創建虛擬系統 配置管理員 創建安全策略

代碼隨想錄算法訓練營第31天 | 56. 合并區間 738.單調遞增的數字 968.監控二叉樹

56. 合并區間 代碼隨想錄 56. 合并區間 - 力扣&#xff08;LeetCode&#xff09; class Solution {public int[][] merge(int[][] intervals) {Arrays.sort(intervals,(a,b)->{if(a[0] b[0])return a[1] - b[1];return a[0] - b[0];});List<int[]> result new Arra…

Go語言對于MySQL的基本操作

一.下載依賴 終端中輸入&#xff1a; go get -u github.com/go-sql-driver/mysql 導入包 import ("database/sql"_ "github.com/go-sql-driver/mysql" ) 二.案例 package main//go get-u github.com/go-sql-driver/mysql 獲取驅動 import ("databa…

Linux與深入HTTP序列化和反序列化

深入HTTP序列化和反序列化 本篇介紹 在上一節已經完成了客戶端和服務端基本的HTTP通信&#xff0c;但是前面的傳遞并沒有完全體現出HTTP的序列化和反序列化&#xff0c;為了更好得理解其工作流程&#xff0c;在本節會以更加具體的方式分析到HTTP序列化和反序列化 本節會在介紹…

基于Python+SQLite實現(Web)驗室設備管理系統

實驗室設備管理系統 應用背景 為方便實驗室進行設備管理&#xff0c;某大學擬開發實驗室設備管理系統 來管理所有實驗室里的各種設備。系統可實現管理員登錄&#xff0c;查看現有的所有設備&#xff0c; 增加設備等功能。 開發環境 Mac OSPyCharm IDEPython3Flask&#xff…

深拷貝and淺拷貝!

一、什么是拷貝&#xff1f;什么是深拷貝和淺拷貝&#xff1f; &#xff08;1&#xff09;拷貝&#xff1a;拷貝就是為了復用原對象的部分or全部數據&#xff0c;在原對象的基礎上通過復制的方式創建一個新的對象。 拷貝對象可以分為三種類型&#xff1a;直接賦值、淺拷貝和深拷…

高頻面試題(含筆試高頻算法整理)基本總結回顧43

干貨分享&#xff0c;感謝您的閱讀&#xff01; &#xff08;暫存篇---后續會刪除&#xff0c;完整版和持續更新見高頻面試題基本總結回顧&#xff08;含筆試高頻算法整理&#xff09;&#xff09; 備注&#xff1a;引用請標注出處&#xff0c;同時存在的問題請在相關博客留言…

《靈珠覺醒:從零到算法金仙的C++修煉》卷三·天劫試煉(34)混元金斗裝萬物 - 0-1背包問題(二維DP)

《靈珠覺醒:從零到算法金仙的C++修煉》卷三天劫試煉(34)混元金斗裝萬物 - 0-1背包問題(二維DP) 哪吒在數據修仙界中繼續他的修煉之旅。這一次,他來到了一片神秘的混元谷,谷中有一座巨大的混元金斗,斗身閃爍著神秘的光芒。谷口有一塊巨大的石碑,上面刻著一行文字:“欲…

網絡爬蟲【簡介】

我叫補三補四&#xff0c;很高興見到大家&#xff0c;歡迎一起學習交流和進步 今天來講一講視圖 一、網絡爬蟲的定義 網絡爬蟲&#xff08;Web Crawler&#xff09;&#xff0c;又稱為網絡蜘蛛、網絡機器人等&#xff0c;是一種按照一定規則自動抓取互聯網信息的程序或腳本。它…

?AI時代到來,對電商來說是效率躍升,還是溫水煮青蛙

?凌晨三點的義烏商貿城&#xff0c;95后創業者小王&#xff0c;靜靜地盯著屏幕上的AI工具&#xff0c;竟露出了笑容。這個月他的跨境玩具店銷量提升了不少&#xff0c;從之前的狀態翻了3倍&#xff1b;而且團隊人數有所變化&#xff0c;從5人縮減到了2人&#xff08;其中包括他…

PDF文件密碼保護破解:安全解密的步驟與技巧

PDF文件加密后&#xff0c;需要特定的密碼才能訪問內容。以下是一些常見的方法來解密PDF文件&#xff1a; 方法一&#xff1a;使用Adobe Acrobat 如果你有Adobe Acrobat Pro&#xff0c;可以使用它來解密PDF文件。 打開Adobe Acrobat Pro&#xff1a; 啟動Adobe Acrobat Pro…

qt 自帶虛擬鍵盤的編譯使用記錄

一、windows 下編譯 使用vs 命令窗口&#xff0c;分別執行&#xff1a; qmake CONFIG"lang-en_GB lang-zh_CN" nmake nmake install 如果事先沒有 指定需要使用的輸入法語言就進行過編譯&#xff0c;則需要先 執行 nmake distclean 清理后執行 qmake 才能生效。 …

Java開發之數據庫應用:記一次醫療系統數據庫遷移引發的異常:從MySQL到PostgreSQL的“dual“表陷阱與突圍之路

記一次醫療系統數據庫遷移引發的異常&#xff1a;從MySQL到PostgreSQL的"dual"表陷阱與突圍之路 一、驚魂時刻&#xff1a;數據庫切換引發的系統雪崩 某醫療影像系統在進行國產化改造過程中&#xff0c;將原MySQL數據庫遷移至PostgreSQL。遷移完成后&#xff0c;系…

C++刷題(二):棧 + 隊列

&#x1f4dd;前言說明&#xff1a; 本專欄主要記錄本人的基礎算法學習以及刷題記錄&#xff0c;使用語言為C。 每道題我會給出LeetCode上的題號&#xff08;如果有題號&#xff09;&#xff0c;題目&#xff0c;以及最后通過的代碼。沒有題號的題目大多來自牛客網。對于題目的…

精通游戲測試筆記(持續更新)

第一章、游戲測試的兩條規則 不要恐慌 不要將這次發布當作最后一次發布 不要相信任何人 把每次發布當作最后一次發布 第二章&#xff1a;成為一名游戲測試工程師

Windows功能之FTP服務器搭建

一、創作背景 之前有用linux系統搭建過ftp服務器&#xff0c;最近想著用windows系統也順便搭建一個&#xff0c;看網上有第三方服務軟件一鍵部署&#xff0c;記得windows可以不借助第三方軟件就可以搭建&#xff0c;就想順便操作試試&#xff0c;結果老是連接不上&#xff0c;費…

星型組網模塊的兩種交互方式優缺點解析

星型組網模塊簡介 星型組網模塊工作在433MHz頻段&#xff1b;星型組網模塊集主機&#xff08;協調器&#xff09;、終端為一體&#xff0c;星型組網模塊具有長距離、高速率兩種傳輸模式&#xff0c;一個主機&#xff08;協調器&#xff09;支持多達200個節點與其通訊&#xff0…

二分+前綴和——森林的最大美麗值

森林的最大美麗值(二分差分數組) 題目分析 求最小值的最大值&#xff0c;聯想到二分。 第一階段二段性分析 對于所有樹的高度都可以大于等于mid&#xff0c;那么我們可以確定高度小于mid的值一定也可以&#xff0c;但是此時我需要找的是最大的高度&#xff0c;那么mid一定比…