自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

【LLM】對(duì)大語言模型微調(diào)優(yōu)化的研究

發(fā)布于 2024-6-13 12:05
瀏覽
0收藏

一、結(jié)論寫在前面

論文來自Microsoft。

微調(diào)大語言模型是用戶嘗試將其適應(yīng)特定應(yīng)用的流行選擇。然而,微調(diào)這些模型是一項(xiàng)艱巨的任務(wù),因?yàn)橛脩舯仨毧紤]多種因素,如資源預(yù)算、運(yùn)行時(shí)間、模型大小和上下文長度等。一個(gè)具體挑戰(zhàn)是微調(diào)過程對(duì)內(nèi)存的需求很大,這限制了所需的硬件內(nèi)存和能夠處理的訓(xùn)練數(shù)據(jù)上下文長度。

論文分享了針對(duì)不同微調(diào)場景的各種微調(diào)優(yōu)化的詳細(xì)研究。特別是,論文評(píng)估了梯度檢查點(diǎn)(Gradient Checkpointing)、低秩適應(yīng)(Low Rank Adaptation)、DeepSpeed的ZeRO冗余優(yōu)化器(ZeRO Redundancy Optimizer)和Flash Attention。

  • 論文專注于內(nèi)存和運(yùn)行時(shí)間,研究了不同優(yōu)化組合在微調(diào)階段對(duì)GPU內(nèi)存使用和執(zhí)行運(yùn)行時(shí)的影響。
  • 論文提供了針對(duì)不同模型大小平衡內(nèi)存和運(yùn)行時(shí)的最佳默認(rèn)優(yōu)化建議。論文分享了有效策略,用于微調(diào)擁有數(shù)十億或數(shù)百億參數(shù)的非常大型模型,并在微調(diào)過程中實(shí)現(xiàn)大型上下文長度。
  • 此外,論文提出了在GPU資源限制下進(jìn)行微調(diào)的適當(dāng)優(yōu)化組合。

論文的結(jié)果表明:

  • ZeRO-2 + LoRA是一個(gè)可靠的優(yōu)化默認(rèn)選項(xiàng),通常能提供內(nèi)存使用和微調(diào)運(yùn)行時(shí)之間的最佳平衡。
  • 通過使用正確的優(yōu)化組合,如ZeRO-3 + LoRA + GC,論文成功微調(diào)了高達(dá)Falcon-180B的模型。
  • 鑒于在GPU受限環(huán)境下微調(diào)LLM的需求,論文引入了跨模型大小x上下文長度的優(yōu)化矩陣。該優(yōu)化矩陣可以指導(dǎo)用戶選擇適合特定用例的正確優(yōu)化組合。
  • 論文得出結(jié)論,像DeepSpeed ZeRO這樣的優(yōu)化對(duì)于微調(diào)數(shù)十億參數(shù)模型至關(guān)重要,因?yàn)樗鼈冎С謹(jǐn)?shù)據(jù)和模型并行,以及CPU卸載。
  • 結(jié)合DeepSpeed ZeRO,選擇額外的優(yōu)化以避免內(nèi)存不足失敗同時(shí)平衡微調(diào)運(yùn)行時(shí)變得必要。

二、論文的簡單介紹

2.1 論文的背景

遷移學(xué)習(xí)為專化大型語言模型(LLMs)到特定任務(wù)或領(lǐng)域提供了一種非常有效的方法。在微調(diào)過程中,預(yù)訓(xùn)練的LLMs通常在任務(wù)特定的數(shù)據(jù)集上進(jìn)一步訓(xùn)練,使其知識(shí)適應(yīng)特定任務(wù)。盡管這是一種強(qiáng)大的技術(shù),但由于其巨大的內(nèi)存需求,微調(diào)具有數(shù)十億可訓(xùn)練參數(shù)的LLMs仍然具有挑戰(zhàn)性。例如,在全浮點(diǎn)精度(32位)下微調(diào)一個(gè)10億參數(shù)模型,每個(gè)GPU大約需要24GB的高帶寬內(nèi)存(HBM)。因此,在沒有任何內(nèi)存優(yōu)化的情況下,LLM微調(diào)過程中經(jīng)常會(huì)遇到內(nèi)存不足的失敗。

近年來,為優(yōu)化GPU內(nèi)存使用,提出了若干關(guān)鍵技術(shù)。然而,這些技術(shù)對(duì)許多用戶來說理解復(fù)雜,且其應(yīng)用往往需要通過實(shí)驗(yàn)來找到避免內(nèi)存溢出錯(cuò)誤的正確組合。這不僅需要人力資源(用于研究和實(shí)施這些優(yōu)化),還需要計(jì)算資源(大量的GPU小時(shí))來為特定任務(wù)選擇合適的優(yōu)化策略。

為了簡化用戶的微調(diào)過程,諸如Azure Machine Learning等平臺(tái)提供了先進(jìn)的GPU內(nèi)存優(yōu)化技術(shù),使得即使使用少量GPU也能進(jìn)行大型語言模型(LLM)的微調(diào)。

論文詳細(xì)介紹了流行的LLM微調(diào)優(yōu)化技術(shù),深入探討了內(nèi)存與運(yùn)行時(shí)間的權(quán)衡,提供了選擇最佳優(yōu)化配置的指導(dǎo),并分享了論文的實(shí)驗(yàn)結(jié)果,這些結(jié)果可用于校準(zhǔn)優(yōu)化默認(rèn)設(shè)置。

2.2 優(yōu)化技術(shù)概述

論文簡要概述了四種優(yōu)化技術(shù),這些技術(shù)可用于減少微調(diào)過程中的內(nèi)存瓶頸。所有這些優(yōu)化技術(shù)都可以被用戶在其微調(diào)任務(wù)中,如Azure Machine學(xué)習(xí)和Hugging Face等平臺(tái)上使用。

2.2.1 Gradient Checkpointing

梯度檢查點(diǎn)(GC)(Chen et al., 2016)通過不在深度神經(jīng)網(wǎng)絡(luò)(DNN)前向傳播(FP)過程中保留所有計(jì)算出的激活來審慎地利用GPU內(nèi)存。相反,它在反向傳播過程中重新計(jì)算許多激活,這有助于節(jié)省GPU內(nèi)存。最節(jié)省內(nèi)存的策略是在每n步保存檢查點(diǎn),其中n是DNN的層數(shù)(深度)。這種策略確保計(jì)算時(shí)間仍與DNN的深度成線性關(guān)系,同時(shí)將GPU內(nèi)存需求從線性減少到DNN深度的平方根。因此,梯度檢查點(diǎn)使得能夠微調(diào)比僅增加20%-30%微調(diào)時(shí)間更大的LLMs。

2.2.2 LoRA

低秩適應(yīng)(LoRA)通過減少可訓(xùn)練參數(shù)的數(shù)量,從而降低微調(diào)過程中對(duì)GPU內(nèi)存的需求。它通過凍結(jié)預(yù)訓(xùn)練模型的權(quán)重,并在Transformer架構(gòu)的每個(gè)選定層中注入可訓(xùn)練的秩分解矩陣來實(shí)現(xiàn)這一目標(biāo)??捎?xùn)練參數(shù)的數(shù)量減少了幾個(gè)數(shù)量級(jí),降低了微調(diào)的成本,同時(shí)保持了結(jié)果的質(zhì)量。例如,使用LoRA進(jìn)行微調(diào),將秩設(shè)置為64,一個(gè)700億參數(shù)模型的可訓(xùn)練參數(shù)數(shù)量減少到約1.31億參數(shù)(-0.19%的原始模型大小)。

2.2.3 DeepSpeed

DeepSpeed的ZeRO冗余優(yōu)化器(ZeRO)是一種內(nèi)存優(yōu)化技術(shù),它提供了模型和數(shù)據(jù)并行性的好處,同時(shí)緩解了兩者的局限性。ZeRO驅(qū)動(dòng)的數(shù)據(jù)并行性(Zero-DP)將模型狀態(tài)——參數(shù)、梯度和優(yōu)化器狀態(tài)——跨數(shù)據(jù)并行進(jìn)程進(jìn)行分區(qū),并使用動(dòng)態(tài)通信調(diào)度在進(jìn)程之間共享必要的模型狀態(tài)。

ZeRO-DP提供了三個(gè)優(yōu)化階段,這些階段相繼提供越來越大的內(nèi)存減少,同時(shí)產(chǎn)生一些運(yùn)行時(shí)開銷?;赯eRO-DP的微調(diào)可以分別實(shí)現(xiàn)第1階段和第2階段的4到8倍的內(nèi)存減少,而對(duì)于第3階段(假設(shè)有大量GPU)則可以達(dá)到線性內(nèi)存減少。這確實(shí)是以運(yùn)行時(shí)為代價(jià)的,尤其是對(duì)于ZeRO-DP第3階段。

ZeRO優(yōu)化通過包含ZeRO-Offload和ZeRO-Infinity(得到進(jìn)一步增強(qiáng),它們分別將優(yōu)化器狀態(tài)和模型參數(shù)卸載到CPU。雖然ZeRO-Offload在所有三個(gè)ZeRO-DP階段都可用,但ZeRO-infinity僅適用于第3階段。如果不使用DeepSpeed ZeRO這樣的優(yōu)化,許多大型模型(數(shù)十億參數(shù))實(shí)際上不可能僅使用少數(shù)幾個(gè)V100或A100 GPU進(jìn)行訓(xùn)練。    

2.2.4 快速注意力(Flash Attention)

快速注意力幫助實(shí)現(xiàn)注意力計(jì)算的復(fù)雜度從與序列/上下文長度相關(guān)的二次復(fù)雜度降為線性復(fù)雜度。它利用分塊和重計(jì)算技術(shù)顯著加速注意力計(jì)算。它明智地使用靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM),這是GPU中最昂貴但容量最小的存儲(chǔ)單元,最小化SRAM與高帶寬存儲(chǔ)器(HBM)之間的讀寫操作。在快速注意力版本2中,進(jìn)一步優(yōu)化了減少較慢的非矩陣乘法操作,并沿著序列長度維度(除了批次和頭數(shù)維度外)并行化前向和后向傳播。

這些優(yōu)化中的一個(gè)關(guān)鍵特點(diǎn)是它們彼此正交。因此,它們可以組合起來為用戶帶來漸增的內(nèi)存和運(yùn)行時(shí)效益。

2.3 理論分析GPU內(nèi)存需求

本節(jié)的目標(biāo)是幫助讀者對(duì)影響訓(xùn)練過程中GPU內(nèi)存消耗的計(jì)算有一個(gè)基本的理解。以下三個(gè)變量主要影響訓(xùn)練期間的GPU內(nèi)存:

A. 模型狀態(tài) - 包括模型參數(shù)、梯度和優(yōu)化器狀態(tài)

B. 激活 - 表示中間計(jì)算結(jié)果

C. 臨時(shí)緩沖區(qū)和碎片

模型狀態(tài)內(nèi)存:論文使用Rajbhandari等人(2020)中的模型狀態(tài)內(nèi)存計(jì)算來估計(jì)(A)。這里論文簡要討論圖1中所示的模型狀態(tài)內(nèi)存計(jì)算。在混合精度訓(xùn)練中使用Adam優(yōu)化器時(shí),可訓(xùn)練參數(shù)、動(dòng)量和方差以全精度(32位)保持。假設(shè)有0個(gè)參數(shù),內(nèi)存總計(jì)為(0 + 0 + 0) x 4 = 120字節(jié)。因此,K-12是Adam優(yōu)化器特有的常數(shù)優(yōu)化器狀態(tài):可訓(xùn)練參數(shù) + 動(dòng)量 + 方差梯度模型參數(shù)    

【LLM】對(duì)大語言模型微調(diào)優(yōu)化的研究-AI.x社區(qū)

圖1:使用Adam優(yōu)化器在混合精度設(shè)置下微調(diào)0參數(shù)模型時(shí)的模型狀態(tài)內(nèi)存。模型狀態(tài)包括優(yōu)化器狀態(tài)、梯度和模型參數(shù)。在未啟用任何優(yōu)化的情況下,總模型狀態(tài)內(nèi)存總計(jì)達(dá)到160字節(jié)

在內(nèi)存計(jì)算中使用的乘數(shù)項(xiàng)。此外,在前向和后向傳播過程中,參數(shù)和梯度以半精度維護(hù),這導(dǎo)致額外的內(nèi)存需求為20 + 20 = 40字節(jié)。ZeRO-DP階段決定了哪些模型狀態(tài)(參數(shù)、梯度、優(yōu)化器狀態(tài))在GPU之間分區(qū),從而節(jié)省內(nèi)存。

激活內(nèi)存:在沒有模型并行性的情況下,每個(gè)transformer層的激活內(nèi)存可以使用論文第4節(jié)中的公式1(Korthikanti等人,2022)進(jìn)行估計(jì)。論文依賴相同的計(jì)算來確定(B)激活內(nèi)存需求的近似上限。每層的激活內(nèi)存可以表示為:

【LLM】對(duì)大語言模型微調(diào)優(yōu)化的研究-AI.x社區(qū)

其中,s是序列長度,b是微批次大小,h是隱藏維度,a是注意力頭的數(shù)量??偧せ顑?nèi)存計(jì)算為transformer層數(shù) × 每層激活內(nèi)存。

【LLM】對(duì)大語言模型微調(diào)優(yōu)化的研究-AI.x社區(qū)

表1:ZeRO-DP三個(gè)階段理論與實(shí)測GPU內(nèi)存分配(以GB為單位)的比較。微調(diào)模型為LLaMA-2-7B,使用8個(gè)A100 GPU(每個(gè)具有80 GB HBM)。理論估計(jì)可用于在運(yùn)行微調(diào)作業(yè)之前近似實(shí)測內(nèi)存需求    

表 【LLM】對(duì)大語言模型微調(diào)優(yōu)化的研究-AI.x社區(qū)

 展示了論文在比較理論上預(yù)期的和經(jīng)驗(yàn)上分配給LLaMA-2-7B微調(diào)的GPU內(nèi)存方面的結(jié)果,涉及ZeRO-DP的不

同階段。論文使用ZeRO-1、ZeRO-2和ZeRO-3分別表示ZeRO-DP的第1、2和3階段。理論內(nèi)存是通過匯總模型狀態(tài)和激活的內(nèi)存來計(jì)算的。論文使用以下模型默認(rèn)參數(shù):transformer層數(shù)=32,隱藏維度大小h=4096,注意力頭數(shù)a-32,理論上計(jì)算出總激活內(nèi)存為1.48 GB。經(jīng)驗(yàn)GPU內(nèi)存指的是微調(diào)過程中分配的峰值GPU內(nèi)存。論文展示了有無CPU卸載優(yōu)化器狀態(tài)的經(jīng)驗(yàn)內(nèi)存。

論文的結(jié)果表明,理論計(jì)算可以作為微調(diào)過程中GPU內(nèi)存消耗(無CPU卸載)的粗略估計(jì)。在運(yùn)行微調(diào)任務(wù)之前計(jì)算這一估計(jì)有助于預(yù)測內(nèi)存需求并有效規(guī)劃資源分配。論文注意到,啟用CPU卸載優(yōu)化器狀態(tài)可以將內(nèi)存使用量減少至不啟用卸載時(shí)的四分之一。因此,CPU卸載可以允許對(duì)具有數(shù)十億參數(shù)的模型進(jìn)行微調(diào)時(shí),對(duì)GPU和CPU資源進(jìn)行高效利用,這是一個(gè)內(nèi)存密集型過程。

需要注意的是,在沒有ZeRO-DP優(yōu)化的情況下,使用傳統(tǒng)數(shù)據(jù)并行性對(duì)70億參數(shù)模型進(jìn)行完全微調(diào)將需要超過112(16 x 7)GB的GPU內(nèi)存。這樣的內(nèi)存需求遠(yuǎn)遠(yuǎn)超過了A100s提供的80 GB GPU HBM。

2.4 實(shí)驗(yàn)

論文首先分析微調(diào)優(yōu)化對(duì)內(nèi)存和運(yùn)行時(shí)的影響。論文的分析結(jié)果用于推薦一組優(yōu)化,這些優(yōu)化可以作為平衡默認(rèn)值,以優(yōu)化微調(diào)期間的內(nèi)存和運(yùn)行時(shí)。隨后,論文深入研究大型模型(具有數(shù)十億參數(shù))的微調(diào),并探索使這種微調(diào)成為可能的優(yōu)化。接著,論文檢查Flash Attention 2在LLMs微調(diào)長上下文數(shù)據(jù)中的作用。最后,論文研究在資源受限的GPU(特別是V100s)上進(jìn)行微調(diào)的具體情況。論文的目標(biāo)是識(shí)別能夠在各種模型大小和上下文長度下,甚至在有限資源下實(shí)現(xiàn)高效微調(diào)的優(yōu)化。

2.4.1 設(shè)置

論文在Causal Language Modeling任務(wù)上對(duì)LLaMA-2(7B、13B、70B)和Falcon(180B)系列的模型進(jìn)行微調(diào)。以下是論文的實(shí)驗(yàn)設(shè)置的詳細(xì)信息:

  • 數(shù)據(jù):所有實(shí)驗(yàn)中使用了Sampled Samsum數(shù)據(jù)集(Gli et al., 2019)進(jìn)行微調(diào)。
  • 計(jì)算:使用了標(biāo)準(zhǔn)ND4Ors v2(8xV100)(Azure, 2022)和標(biāo)準(zhǔn)ND96amsr A100 v4(8xA100)(Azure, 2024)作為GPU計(jì)算資源。
  • 優(yōu)化器:所有實(shí)驗(yàn)使用混合精度設(shè)置和AdamW優(yōu)化器(β1=0.9,β2=0.99),配合線性調(diào)度器和學(xué)習(xí)率4e-4。
  • 序列長度、批次大小和周期:序列長度通常設(shè)置為256。在探索序列長度影響的研究中,通過填充擴(kuò)展輸入序列的長度。所有實(shí)驗(yàn)中使用的有效批次大小為8。注意,可以通過梯度累積來增加有效批次大小,同時(shí)實(shí)現(xiàn)對(duì)可用GPU內(nèi)存的高效利用。所有模型都進(jìn)行單周期微調(diào)。
  • LoRA:在使用LoRA的實(shí)驗(yàn)中,LoRA的rank設(shè)置為64,alpha設(shè)置為32。
  • CPU卸載:除非明確指出,論文使用ZeRO-Offload在微調(diào)過程中將優(yōu)化器狀態(tài)和計(jì)算卸載到CPU。這有助于使用可用的GPU和CPU的計(jì)算及內(nèi)存資源訓(xùn)練數(shù)十億參數(shù)的模型。

在論文的實(shí)驗(yàn)中,GPU內(nèi)存使用量通過微調(diào)過程中所有使用的GPU上分配的峰值GPU內(nèi)存來衡量。

2.4.2 最佳默認(rèn)優(yōu)化以平衡內(nèi)存和運(yùn)行時(shí)間

論文已經(jīng)確定,對(duì)于相對(duì)較小的7B參數(shù)模型,即使使用A100,不進(jìn)行任何優(yōu)化進(jìn)行微調(diào)也是不可行的。因此,論文使用DeepSpeed ZeRO,它提供了模型和數(shù)據(jù)并行性。論文檢查了在微調(diào)框架中應(yīng)默認(rèn)啟用的微調(diào)優(yōu)化集合。論文選擇這些優(yōu)化的標(biāo)準(zhǔn)是基于它們?cè)赯eRO-DP結(jié)合下,能夠在內(nèi)存使用和運(yùn)行時(shí)間之間達(dá)到最佳平衡的能力。

論文在一個(gè)節(jié)點(diǎn)(8x A100 GPU)上對(duì)LLaMA-2-7B進(jìn)行了五種不同配置的微調(diào):(a) 未啟用優(yōu)化 (b) 啟用梯度檢查點(diǎn) (c) 啟用LoRA (d) 啟用Flash Attention 2 (e) 未啟用CPU卸載。每種配置都啟用了所有三個(gè)ZeRO-DP階段。論文選擇A100 GPU進(jìn)行這些實(shí)驗(yàn),因?yàn)樗鼈兙哂?0 GB的大內(nèi)存容量。這種充足的內(nèi)存使論文能夠通過開啟和關(guān)閉各種優(yōu)化來靈活地進(jìn)行實(shí)驗(yàn),同時(shí)避免內(nèi)存不足的失敗。    

【LLM】對(duì)大語言模型微調(diào)優(yōu)化的研究-AI.x社區(qū)

圖2:LLaMA-2 7B在不同優(yōu)化配置下,使用ZeRO-1、ZeRO-2和ZeRO-3時(shí)的GPU內(nèi)存使用情況和微調(diào)運(yùn)行時(shí)間。使用ZeRO-2結(jié)合LoRA提供了最佳的內(nèi)存使用與運(yùn)行時(shí)間平衡

圖2展示了每種配置和ZeRO-DP階段下的GPU內(nèi)存使用和運(yùn)行時(shí)間。根據(jù)結(jié)果,論文得出以下結(jié)論:

1.從運(yùn)行時(shí)間和內(nèi)存使用的角度來看,最佳的優(yōu)化組合是配置(c),即ZeRO-DP + LoRA。由于LoRA減少了總的可訓(xùn)練參數(shù),它節(jié)省了內(nèi)存并縮短了運(yùn)行時(shí)間。在Zero-DP + LoRA配置中,ZeRO-1和ZeRO-2階段的內(nèi)存使用及運(yùn)行時(shí)間大致相似。當(dāng)使用LoRA(rank=64)時(shí),可訓(xùn)練參數(shù)減少到約3360萬個(gè),對(duì)于7B模型而言。優(yōu)化器狀態(tài)和可訓(xùn)練參數(shù)的梯度占據(jù)了GPU內(nèi)存的極小部分。在ZeRO-1和ZeRO-2中,內(nèi)存消耗主要由總模型參數(shù)(70億)主導(dǎo),這些參數(shù)在半精度下占用14GB內(nèi)存。

1.配置(a)和(d)在ZeRO-DP階段的表現(xiàn)符合預(yù)期,即從階段1到2到3,內(nèi)存消耗下降,運(yùn)行時(shí)間增加。對(duì)于配置(b)和(e),ZeRO-1的運(yùn)行時(shí)間略高于ZeRO-2,內(nèi)存使用遵循隨著Zero-DP階段增加而減少的預(yù)期趨勢。

2.在(e)中禁用CPU卸載提供了最快的運(yùn)行時(shí)間,但需要2-4倍更多的GPU內(nèi)存。

論文得出結(jié)論,ZeRO-2與LoRA的結(jié)合是維持內(nèi)存使用和運(yùn)行時(shí)間平衡的優(yōu)秀默認(rèn)選擇。此外,ZeRO-2能處理比ZeRO-1更大的模型,這有助于支持更廣泛的模型尺寸范圍。對(duì)于某些用例,如復(fù)雜的問答任務(wù)或構(gòu)建聊天機(jī)器人,用戶可能更喜歡完全微調(diào)模型。因此,是否使用LoRA由用戶自行決定。因此,論文建議在微調(diào)過程中默認(rèn)激活ZeRO-2。    

2.4.3 大型模型的微調(diào)

微調(diào)大型模型如LLaMA-2 70B或Falcon 180B時(shí),如果沒有啟用正確的優(yōu)化設(shè)置,常常會(huì)遇到內(nèi)存不足(OOM)錯(cuò)誤。在這種情況下,啟用ZeRO-3是一個(gè)可行的替代方案,盡管它會(huì)增加運(yùn)行時(shí)間。論文來檢查在ZeRO-3中,經(jīng)過【LLM】對(duì)大語言模型微調(diào)優(yōu)化的研究-AI.x社區(qū)個(gè)節(jié)點(diǎn)和每個(gè)節(jié)點(diǎn)【LLM】對(duì)大語言模型微調(diào)優(yōu)化的研究-AI.x社區(qū)個(gè)GPU微調(diào)后的模型狀態(tài)內(nèi)存項(xiàng):

【LLM】對(duì)大語言模型微調(diào)優(yōu)化的研究-AI.x社區(qū)

這里,【LLM】對(duì)大語言模型微調(diào)優(yōu)化的研究-AI.x社區(qū)表示總可訓(xùn)練參數(shù)(以十億計(jì))。假設(shè)一個(gè)標(biāo)準(zhǔn)的配置,每個(gè)節(jié)點(diǎn)有【LLM】對(duì)大語言模型微調(diào)優(yōu)化的研究-AI.x社區(qū)

個(gè)GPU,這將隨著模型尺寸的增加而增加。例如,在【LLM】對(duì)大語言模型微調(diào)優(yōu)化的研究-AI.x社區(qū)個(gè)節(jié)點(diǎn)上完全微調(diào)一個(gè)

【LLM】對(duì)大語言模型微調(diào)優(yōu)化的研究-AI.x社區(qū)億參數(shù)的模型,將占用40GB的模型狀態(tài)內(nèi)存,這可以在具有80GB HBM的A100上容納。在實(shí)踐中,具有數(shù)百億參數(shù)的大型模型通常與LoRA一起微調(diào),并使用ZeRO-3與CPU卸載。這進(jìn)一步降低了內(nèi)存需求,使其達(dá)到可管理的規(guī)模。             

論文能夠在單個(gè)節(jié)點(diǎn)上使用8xV100 GPU(32 GB HBM)結(jié)合ZeRO-3 + LoRA對(duì)LLaMA-2 70B進(jìn)行微調(diào)。表【LLM】對(duì)大語言模型微調(diào)優(yōu)化的研究-AI.x社區(qū)顯示,在論文的實(shí)驗(yàn)中,70B模型的實(shí)際GPU內(nèi)存消耗約為15.54 GB。此外,可以看出,對(duì)于LLaMA-2 7B和13B這樣的較小模型,使用ZeRO-3 + LoRA會(huì)導(dǎo)致GPU內(nèi)存未充分利用。因此,論文的研究表明,對(duì)于微調(diào)具有數(shù)十億或數(shù)百億參數(shù)的大型模型,啟用ZeRO-3是必不可少的。此外,當(dāng)與LoRA結(jié)合使用時(shí),實(shí)際的總體內(nèi)存需求顯著減少。

【LLM】對(duì)大語言模型微調(diào)優(yōu)化的研究-AI.x社區(qū)

表2:在8xV100 GPU上使用ZeRO-3 + LoRA對(duì)LLaMA-2模型進(jìn)行微調(diào)的GPU內(nèi)存使用量和時(shí)間

對(duì)于較小模型,ZeRO-3 + LoRA顯然過于冗余,因?yàn)樗赡軐?dǎo)致GPU未充分利用以及運(yùn)行時(shí)間增加。    

2.4.4 長上下文微調(diào)

【LLM】對(duì)大語言模型微調(diào)優(yōu)化的研究-AI.x社區(qū)

              圖3:LLaMA-2 70B在不同上下文長度下,使用和不使用Flash-Attention 2對(duì)GPU內(nèi)存使用和微調(diào)時(shí)間的影響。在A100上啟用Flash-Attention 2顯著降低了較大上下文長度(如4096)的內(nèi)存消耗和運(yùn)行時(shí)間

上下文長度是微調(diào)LLMs時(shí)的關(guān)鍵因素。特別是在使用包含非常長文本序列的數(shù)據(jù)集進(jìn)行微調(diào)時(shí)尤為如此。沒有Flash-Attention 2(FA2),注意力計(jì)算隨著序列長度的平方增長而增加。由于V100 GPU不支持FA2,因此在使用較長上下文長度時(shí),對(duì)GPU內(nèi)存消耗的影響可能很大。為了研究在微調(diào)過程中長上下文長度的影響,論文繪制了在A100(啟用和未啟用FA2)和V100(未啟用FA2)上不同上下文長度的內(nèi)存和運(yùn)行時(shí)間。

具體來說,論文在8xV100和8xA100 GPU上分別使用1024、2048和4096的上下文長度對(duì)LLaMA-2 70B模型進(jìn)行微調(diào)。在微調(diào)過程中啟用了LoRA和梯度檢查點(diǎn)技術(shù),并基于ZeRO-3進(jìn)行優(yōu)化。

圖3展示了Flash-Attention 2對(duì)GPU內(nèi)存和運(yùn)行時(shí)間的影響。論文的結(jié)果顯示,隨著上下文長度增加,至4096時(shí),使用Flash-Attention 2相比于不使用,GPU內(nèi)存使用和運(yùn)行時(shí)間有顯著減少。如圖3所示,在兩塊A100 GPU上或分別在A100和V100 GPU上比較使用和不使用Flash-Attention 2的運(yùn)行時(shí),這一趨勢是一致的。

論文的結(jié)論如下:高性能GPU如A100,由于其更大的HBM,可以在沒有Flash-Attention 2的情況下支持相對(duì)較長的上下文微調(diào)。然而,在兼容的GPU架構(gòu)上激活Flash-Attention 2是最優(yōu)的,因?yàn)樗试S額外的內(nèi)存節(jié)省和減少運(yùn)行時(shí)間。當(dāng)使用允許較大上下文長度微調(diào)的模型訓(xùn)練長文本數(shù)據(jù)時(shí),這一點(diǎn)變得尤為重要。    

2.4.5 在GPU資源限制下的微調(diào)

【LLM】對(duì)大語言模型微調(diào)優(yōu)化的研究-AI.x社區(qū)

圖4:使用V100 GPU時(shí),不同大小LLMs微調(diào)的最佳配置。所有LLaMA-2實(shí)驗(yàn)均使用8x V100進(jìn)行,而Falcon-180B需要16xV100。由于V100不支持Flash-Attention 2,因此未包含在內(nèi)

本節(jié)討論在資源有限的情況下對(duì)LLMs(參數(shù)范圍從7B到180B)進(jìn)行微調(diào)。論文將資源限制定義如下:

?可用的低資源GPU具有有限的HBM。

?可用的GPU數(shù)量較少。

論文對(duì)LLaMA-2 7B、13B、70B和Falcon-180B模型在五種不同的上下文長度上進(jìn)行了微調(diào)。遵循資源約束規(guī)范,論文的實(shí)驗(yàn)在一臺(tái)標(biāo)準(zhǔn)ND4Ors v2(8xV100 GPU)上進(jìn)行,配備32 GB HBM。唯一例外的是Falcon-180B模型,由于其龐大的規(guī)模,論文在微調(diào)過程中使用了兩個(gè)節(jié)點(diǎn)(16x V100 GPU)。圖4展示了為滿足GPU內(nèi)存需求同時(shí)優(yōu)化運(yùn)行時(shí)間應(yīng)啟用的首選優(yōu)化集合。

需要注意的是,雖然可能存在其他允許成功微調(diào)的組合,但論文選擇了那些最小化微調(diào)時(shí)間的組合。例如,用戶可以選擇啟用所有優(yōu)化,但通常并非所有優(yōu)化都是必要的,且可能會(huì)不必要地增加微調(diào)時(shí)間。

論文的結(jié)果中的關(guān)鍵見解包括:

  • 即使是為了在有限數(shù)量的GPU上適配像7B參數(shù)這樣的小型模型,結(jié)合模型和數(shù)據(jù)并行是先決條件,除非論文利用量化技術(shù)。
  • 隨著上下文長度或模型大小的增加,轉(zhuǎn)向更高階段的ZeRO-DP(零冗余優(yōu)化器-數(shù)據(jù)并行)以促進(jìn)微調(diào)變得重要。這一趨勢在表格中清晰可見,從左到右或從上到下的移動(dòng)對(duì)應(yīng)于更高階段的ZeRO-DP。
  • 梯度檢查點(diǎn)(GC)是一種有效的內(nèi)存節(jié)省優(yōu)化技術(shù),尤其適用于大型模型。如圖4所示,為LLaMA-2 13B和70B啟用GC使得支持的上下文長度從512擴(kuò)展到4096,否則這是不可能的。類似地,GC對(duì)于在論文檢查的所有上下文長度上啟用Falcon-180B的微調(diào)至關(guān)重要。
  • 盡管Flash-Attention 2在V100 GPU上不支持,但論文的實(shí)驗(yàn)結(jié)果表明,在支持的架構(gòu)上應(yīng)始終啟用它。值得一提的是,圖中概述的配置可用于在具有比V100更高HBM的GPU上進(jìn)行微調(diào)。雖然這些配置可能不是所有GPU的最佳選擇,但論文的發(fā)現(xiàn)可以通過進(jìn)一步的研究擴(kuò)展到其他GPU。

     

論文標(biāo)題:A Study of Optimizations for Fine-tuning Large Language Models

論文鏈接:???https://arxiv.org/pdf/2406.02290??    

本文轉(zhuǎn)載自 ??AI帝國??,作者: 無影寺

收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦