最新亚洲人成无码网站,夜夜操夜夜操夜夜爽,中文字日产幕乱五区,在线成人看片黄a免费看,亚洲自偷自拍另类11p

首頁 >> 今日更新 >

英偉達玩轉(zhuǎn)剪枝、蒸餾:把Llama 3.1 8B參數(shù)減半,性能同尺寸更強

2024-08-17 12:00:02 來源: 用戶: 

相信很多大家對英偉達玩轉(zhuǎn)剪枝、蒸餾:把Llama 3.1 8B參數(shù)減半,性能同尺寸更強還不知道吧,今天菲菲就帶你們一起去了解一下~.~!

上個月,Meta 發(fā)布了 Llama3.1系列模型,其中包括 Meta 迄今為止最大的405B 模型,以及兩個較小的模型,參數(shù)量分別為700億和80億。

Llama3.1被認為是引領了開源新時代。然而,新一代的模型雖然性能強大,但部署時仍需要大量計算資源。

因此,業(yè)界出現(xiàn)了另一種趨勢,即開發(fā)小型語言模型 (SLM),這種模型在許多語言任務中表現(xiàn)足夠出色,部署起來也非常便宜。

最近,英偉達研究表明,結(jié)構(gòu)化權重剪枝與知識蒸餾相結(jié)合,可以從初始較大的模型中逐步獲得較小的語言模型。

圖靈獎得主、Meta 首席 AI 科學家 Yann LeCun 也點贊轉(zhuǎn)帖了該研究。

經(jīng)過剪枝和蒸餾,英偉達研究團隊將 Llama3.18B 提煉為 Llama-3.1-Minitron4B 開源了出來。這是英偉達在 Llama3.1開源系列中的第一個作品。

Llama-3.1-Minitron4B 的表現(xiàn)優(yōu)于類似大小的最先進的開源模型,包括 Minitron4B、Phi-22.7B、Gemma22.6B 和 Qwen2-1.5B。

這項研究的相關論文早在上個月已經(jīng)放出了。

論文鏈接:https://www.arxiv.org/pdf/2407.14679

論文標題:Compact Language Models via Pruning and Knowledge Distillation

剪枝和蒸餾

剪枝使模型變得更小、更精簡,可以通過刪除層(深度剪枝)或刪除神經(jīng)元和注意力頭以及嵌入通道(寬度剪枝)來實現(xiàn)。剪枝通常伴隨著一定程度的再訓練,以恢復準確率。

模型蒸餾是一種將知識從大型復雜模型(通常稱為教師模型)遷移到較小、較簡單的學生模型的技術。目標是創(chuàng)建一個更高效的模型,該模型保留了原始較大模型的大部分預測能力,同時運行速度更快且資源消耗更少。

蒸餾方式主要包括兩種:SDG 微調(diào)與經(jīng)典知識蒸餾,這兩種蒸餾方式互補。本文主要關注經(jīng)典知識蒸餾方法。

英偉達采用將剪枝與經(jīng)典知識蒸餾相結(jié)合的方式來構(gòu)造大模型,下圖展示了單個模型的剪枝和蒸餾過程(上)以及模型剪枝和蒸餾的鏈條(下)。具體過程如下:

1. 英偉達從15B 模型開始,評估每個組件(層、神經(jīng)元、頭和嵌入通道)的重要性,然后對模型進行排序和剪枝,使其達到目標大小:8B 模型。

2. 接著使用模型蒸餾進行了輕度再訓練,原始模型作為老師,剪枝后的模型作為學生。

3. 訓練結(jié)束后,以小模型(8B)為起點,剪枝和蒸餾為更小的4B 模型。

從15B 模型進行剪枝與蒸餾的過程。

需要注意的點是,在對模型剪枝之前,需要先了解模型的哪部分是重要的。英偉達提出了一種基于激活的純重要性評估策略,該策略可以同時計算所有相關維度(深度、神經(jīng)元、頭和嵌入通道)的信息,使用一個包含1024個樣本的小型校準數(shù)據(jù)集,并且只需要前向傳播。這種方法相比依賴梯度信息并需要反向傳播的策略更加簡單且具有成本效益。

在剪枝過程中,你可以針對給定軸或軸組合在剪枝和重要性估計之間進行迭代交替。實證研究顯示,使用單次重要性估計就足夠了,迭代估計不會帶來額外的好處。

利用經(jīng)典知識蒸餾進行重新訓練

下圖2展示了蒸餾過程,其中 N 層學生模型(剪枝后的模型)是從 M 層教師模型中(原始未剪枝模型)蒸餾而來。學生模型通過最小化嵌入輸出損失、logit 損失以及映射到學生塊 S 和教師塊 T 的 Transformer 編碼器特定損失組合來學習。

圖2:蒸餾訓練損失。

剪枝和蒸餾最佳實踐

英偉達基于緊湊語言模型中剪枝和知識蒸餾的廣泛消融研究,將自己的學習成果總結(jié)為以下幾種結(jié)構(gòu)化壓縮最佳實踐。

一是調(diào)整大小。

要訓練一組 LLM,首先訓練最大的一個,然后迭代地剪枝和蒸餾以獲得較小的 LLM。

如果使用多階段訓練策略來訓練最大的模型,最好剪枝并對訓練最后階段獲得的模型進行重新訓練。

對最接近目標大小的可用源模型進行剪枝。

二是剪枝。

優(yōu)先考慮寬度剪枝而不是深度剪枝,這對于15B 參數(shù)規(guī)模以下的模型效果很好。

使用單樣本(single-shot)重要性估計,因為迭代重要性估計沒有任何好處。

三是重新訓練。

僅使用蒸餾損失進行重新訓練,而不是常規(guī)訓練。

當深度明顯減少時,使用 logit、中間狀態(tài)和嵌入蒸餾。

當深度沒有明顯減少時,使用 logit-only 蒸餾。

Llama-3.1-Minitron:將最佳實踐付諸應用

Meta 最近推出了功能強大的 Llama3.1開源模型系列,在許多基準測試中可與閉源模型相媲美。Llama3.1的參數(shù)范圍從巨大的405B 到70B、8B。

憑借 Nemotron 蒸餾的經(jīng)驗,英偉達著手將 Llama3.18B 模型蒸餾為更小、更高效的4B 模型,采取以下措施:

教師微調(diào)

Depth-only 剪枝

Width-only 剪枝

準確率基準

性能基準

教師微調(diào)

為了糾正模型訓練所基于的原始數(shù)據(jù)集的分布偏差,英偉達首先在他們的數(shù)據(jù)集上(94B token)對未剪枝的8B 模型進行了微調(diào)。實驗表明,如果不糾正分布偏差,教師模型在蒸餾時會為數(shù)據(jù)集提供次優(yōu)指導。

Depth-only 剪枝

為了從8B 降到4B,英偉達剪枝了16層(50%)。他們首先通過從模型中刪除每個層或連續(xù)子層組來評估它們的重要性,并觀察下游任務中 LM 損失的增加或準確率的降低。

下圖5顯示了刪除1、2、8或16層后驗證集上的 LM 損失值。例如,第16層的紅色圖表示如果刪除前16層,則出現(xiàn) LM 損失。第17層表示如果保留第一層并刪除第2至第17層,也出現(xiàn) LM 損失。英偉達觀察到:開始和結(jié)束的層是最重要的。

圖5:depth-only 剪枝中層的重要性。

然而,英偉達觀察到,這種 LM 損失不一定與下游性能直接相關。

下圖6顯示了每個剪枝模型的 Winogrande 準確率,它表明最好刪除第16到第31層,其中第31層是倒數(shù)第二層,剪枝模型的5-shot 準確率明顯高于隨機準確率 (0.5)。英偉達采納了這一見解,刪除了第16到第31層。

圖6:當刪除16層時,在 Winogrande 任務上的準確率。

Width-only 剪枝

英偉達沿寬度軸剪枝了嵌入(隱藏)和 MLP 中間維,以壓縮 Llama3.18B。具體來說,他們使用前面描述的基于激活的策略來計算每個注意頭、嵌入通道和 MLP 隱藏維度的重要性分數(shù)。

在重要性估計之后,英偉達選擇

將 MLP 中間維從14336剪枝到9216。

將隱藏大小從4096剪枝到3072。

重新訓練注意頭數(shù)量和層數(shù)。

值得一提的是,在單樣本剪枝之后,寬度剪枝的 LM 損失高于深度剪枝。然而,經(jīng)過短暫的重新訓練后,趨勢發(fā)生了逆轉(zhuǎn)。

準確率基準

英偉達使用以下參數(shù)對模型進行蒸餾

峰值學習率 =1e-4

最小學習率 =1e-5

40步線性預熱

余弦衰減計劃

全局批量大小 =1152

下表1顯示了 Llama-3.1-Minitron4B 模型變體(寬度剪枝和深度剪枝)與原始 Llama3.18B 模型、其他類似大小的模型在跨多個領域的基準測試中的性能比較??傮w而言,英偉達再次證實了寬度剪枝策略相較于遵循最佳實踐的深度剪枝的有效性。

表1:Minitron4B base 模型相較于類似規(guī)模 base 模型的準確率比較。

為了驗證蒸餾后的模型是否可以成為強大的指令模型,英偉達使用 NeMo-Aligner 對 Llama-3.1-Minitron4B 模型進行了微調(diào)。

他們使用了 Nemotron-4340B 的訓練數(shù)據(jù),在 IFEval、MT-Bench、ChatRAG-Bench 和 Berkeley Function Calling Leaderboard (BFCL) 上進行了評估,以測試指令遵循、角色扮演、RAG 和函數(shù)調(diào)用功能。最后確認 Llama-3.1-Minitron4B 模型可以成為可靠的指令模型,其表現(xiàn)優(yōu)于其他基線 SLM。

表2:對齊 Minitron4B base 模型與類似規(guī)模的對齊模型的準確率比較。

性能基準

英偉達利用 NVIDIA TensorRT-LLM(一種用于優(yōu)化 LLM 推理的開源工具包)優(yōu)化了 Llama3.18B 和 Llama-3.1-Minitron4B 模型。

下兩張圖顯示了不同模型在不同用例下以 FP8和 FP16精度每秒的吞吐量請求,表示為8B 模型的 batch size 為32的輸入序列長度 / 輸出序列長度 (ISL/OSL) 組合以及4B 模型的 batch size 為64的輸入序列長度 / 輸出序列長度 (ISL/OSL) 組合,這要歸功于在一塊英偉達 H10080GB GPU 上,較小的權重允許較大的 batch size。

Llama-3.1-Minitron-4B-Depth-Base 變體是最快的,平均吞吐量約為 Llama3.18B 的2.7倍,而 Llama-3.1-Minitron-4B-Width-Base 變體的平均吞吐量約為 Llama3.18B 的1.8倍。與 BF16相比,在 FP8中部署還可使這三種型號的性能提高約1.3倍。

圖8:組合:Llama3.18B 為 BS=32,Llama-3.1-Minitron4B 型號為 BS=64。1x H10080GB GPU。

結(jié)論

剪枝和經(jīng)典知識提煉是一種非常經(jīng)濟高效的方法,可以逐步獲得更小尺寸的 LLM,與在所有領域從頭開始訓練相比,可實現(xiàn)更高的準確性。與合成數(shù)據(jù)式微調(diào)或從頭開始預訓練相比,這是一種更有效且數(shù)據(jù)效率更高的方法。

Llama-3.1-Minitron4B 是英偉達首次嘗試使用最先進的開源 Llama3.1系列完成的探索。要在 NVIDIA NeMo 中使用 Llama-3.1的 SDG 微調(diào),可參閱 GitHub 上的 /sdg-law-title-generation 部分。

有關更多信息,請參閱以下資源:

https://arxiv.org/abs/2407.14679

https://github.com/NVlabs/Minitron

https://huggingface.co/nvidia/Llama-3.1-Minitron-4B-Width-Base

https://huggingface.co/nvidia/Llama-3.1-Minitron-4B-Depth-Base

以上就是關于【英偉達玩轉(zhuǎn)剪枝、蒸餾:把Llama 3.1 8B參數(shù)減半,性能同尺寸更強】的相關內(nèi)容,希望對大家有幫助!

  免責聲明:本文由用戶上傳,與本網(wǎng)站立場無關。財經(jīng)信息僅供讀者參考,并不構(gòu)成投資建議。投資者據(jù)此操作,風險自擔。 如有侵權請聯(lián)系刪除!

 
分享:
最新文章