近來,LLM以驚人的推理效果驚艷全世界,這得益于它巨大的參數(shù)量與計算任務。以GPT-175B模型為例,它擁有1750億參數(shù),至少需要320GB(以1024的倍數(shù)計算)的半精度(FP16)格式存儲空間。此外,為了有效管理操作,部署該模型進行推理至少需要五個A100 GPU,每個GPU配備80GB內(nèi)存。巨大的存儲與計算代價讓有效的模型壓縮成為一個亟待解決的難題。
來自中國科學院和人民大學的研究者們深入探討了基于LLM的模型壓縮研究進展并發(fā)表了該領(lǐng)域的首篇綜述《A Survey on Model Compression for Large Language Models》。

論文鏈接:https://arxiv.org/pdf/2308.07633.pdf
模型壓縮涉及將大型資源密集型模型轉(zhuǎn)化為適合在受限移動設備上存儲的緊湊版本。此外,它還可以優(yōu)化模型以實現(xiàn)更快的執(zhí)行速度和最小的延遲,或在這些目標之間取得平衡。
該綜述主要圍繞針對LLMs的模型壓縮技術(shù)的方法、指標與基準展開,并將相關(guān)研究內(nèi)容組成了一個新的分類,包括:
剪枝(Pruning)
知識蒸餾(Knowledge Distillation)
量化(Quantization)
低秩分解(Low-Rank Factorization)

圖1:針對大型語言模型的模型壓縮方法分類。
一、方法剪枝(pruning)剪枝指移除模型中不必要或多余的組件,比如參數(shù),以使模型更加高效。通過對模型中貢獻有限的冗余參數(shù)進行剪枝,在保證性能最低下降的同時,可以減小存儲需求、提高內(nèi)存和計算效率。論文將剪枝分為兩種主要類型:非結(jié)構(gòu)化剪枝和結(jié)構(gòu)化剪枝。 非結(jié)構(gòu)化剪枝:指移除個別參數(shù),而不考慮整體網(wǎng)絡結(jié)構(gòu)。這種方法通過將低于閾值的參數(shù)置零的方式對個別權(quán)重或神經(jīng)元進行處理。它會導致特定的參數(shù)被移除,模型出現(xiàn)不規(guī)則的稀疏結(jié)構(gòu)。并且這種不規(guī)則性需要專門的壓縮技術(shù)來存儲和計算被剪枝的模型。此外,非結(jié)構(gòu)化剪枝通常需要對LLM進行大量的再訓練以恢復準確性,這對于LLM來說尤其昂貴。SparseGPT [Frantar and Alistarh, 2023] 引入了一種一次性剪枝策略,無需重新訓練。該方法將剪枝視為一個廣泛的稀疏回歸問題,并使用近似稀疏回歸求解器來解決,實現(xiàn)了顯著的非結(jié)構(gòu)化稀疏性。LoRAPrune [Zhang等, 2023a] 將參數(shù)高效調(diào)整(PEFT)方法與剪枝相結(jié)合,以提高下游任務的性能。它引入了一種獨特的參數(shù)重要性標準,使用了來自Low-Rank Adaption(LoRA)的值和梯度。Wanda [Sun等, 2023]提出了一種新的剪枝度量。它根據(jù)每個權(quán)重的大小以及相應輸入激活的范數(shù)的乘積進行評估,這個乘積是通過使用一個小型校準數(shù)據(jù)集來近似計算的。這個度量用于線性層輸出內(nèi)的局部比較,使得可以從LLM中移除優(yōu)先級較低的權(quán)重。 結(jié)構(gòu)化剪枝:根據(jù)預定義規(guī)則移除連接或分層結(jié)構(gòu),同時保持整體網(wǎng)絡結(jié)構(gòu)。這種方法一次性地針對整組權(quán)重,優(yōu)勢在于降低模型復雜性和內(nèi)存使用,同時保持整體的LLM結(jié)構(gòu)完整。LLM-Pruner [Ma等, 2023] 采用了一種多功能的方法來壓縮LLMs,同時保護它們的多任務解決和語言生成能力。它引入了一個依賴檢測算法,以定位模型內(nèi)部的相互依賴結(jié)構(gòu)。它還實施了一種高效的重要性估計方法,考慮了一階信息和近似Hessian信息。
知識蒸餾(Knowledge Distillation,KD)
KD通過從一個復雜的模型(稱為教師模型)向一個簡化的模型(稱為學生模型)轉(zhuǎn)移知識來實現(xiàn)。在這一部分中,我們概述了使用LLM作為教師的蒸餾方法,并根據(jù)這些方法是否強調(diào)將LLM的涌現(xiàn)能力(EA)蒸餾到小型語言模型(SLM)中來進行分類,包括:Standard KD和EA-based KD。

圖2:對語言模型知識蒸餾的簡要分類。 Standard KD旨在使學生模型學習LLM所擁有的常見知識,如輸出分布和特征信息。這種方法類似于傳統(tǒng)的KD,但區(qū)別在于教師模型是LLM。
MINILLM [Gu等,2023] 深入研究了從白盒生成LLMs進行蒸餾的方法,并選擇最小化反向KLD,防止了學生過高估計教師分布中的低概率區(qū)域,從而提高了生成樣本的質(zhì)量。 GKD [Agarwal等,2023] 探索了從自回歸模型進行蒸餾的方法,其中白盒生成LLMs作為其中一個子集。它通過在訓練期間從學生模型中采樣輸出序列來處理分布不匹配問題,并通過優(yōu)化替代的散度,如反向KL散度,來解決模型不足的問題。 相比之下,EA-based KD不僅僅是將LLM的常見知識轉(zhuǎn)移到學生模型中,還涵蓋了蒸餾它們獨特的涌現(xiàn)能力。具體來說,EA-based KD又分為了上下文學習(ICL)、思維鏈(CoT)和指令跟隨(IF)。 ICL采用了一個結(jié)構(gòu)化的自然語言提示,其中包含任務描述和可能的一些演示示例。通過這些任務示例,LLM可以在不需要顯式梯度更新的情況下掌握和執(zhí)行新任務。黃等人的工作引入了ICL蒸餾,將LLMs的上下文少樣本學習和語言建模能力轉(zhuǎn)移到SLMs中。它將上下文學習目標與傳統(tǒng)的語言建模目標相結(jié)合,并在兩種少樣本學習范式下探索了ICL蒸餾,即Meta-ICT 和 Multitask-ICT。 CoT與ICL相比,在提示中加入了中間推理步驟,這些步驟可以導致最終的輸出,而不是使用簡單的輸入-輸出對。MT-COT [Li等, 2022]旨在利用LLMs產(chǎn)生的解釋來增強較小的推理器的訓練。它利用多任務學習框架,使較小的模型具備強大的推理能力以及生成解釋的能力。Fine-tune-CoT [Ho等, 2023]通過隨機采樣從LLMs生成多個推理解決方案。這種訓練數(shù)據(jù)的增加有助于學生模型的學習過程。傅等人發(fā)現(xiàn)了語言模型的多維能力之間的權(quán)衡,并提出了微調(diào)的指令調(diào)整模型。他們從大型教師模型中提取CoT推理路徑以改進分布外泛化。謝等人在多任務框架內(nèi)使用LLM原理作為額外的指導,訓練較小的模型。SOCRATIC CoT [Shridhar等, 2023]訓練了兩個蒸餾模型:問題分解器和子問題解決器。分解器將原始問題分解為一系列子問題,而子問題解決器則處理解決這些子問題。DISCO [Chen等, 2023]引入了一種基于LLMs的完全自動反事實知識蒸餾方法。它通過工程化的提示生成短語擾動,然后通過任務特定的教師模型將這些擾動數(shù)據(jù)過濾,以提取高質(zhì)量的反事實數(shù)據(jù)。SCOTT [Wang等, 2023a]采用對比解碼,將每個原理與答案聯(lián)系起來。它鼓勵從教師那里提取相關(guān)的原理。此外,指導學生進行反事實推理并基于導致不同答案的原理進行預測。 IF僅依賴于任務描述而不依賴于少量示例。通過使用一系列以指令形式表達的任務進行微調(diào),語言模型展現(xiàn)出能夠準確執(zhí)行以前未見過的指令描述的任務的能力。Lion等, 2023]利用LLMs的適應性來提升學生模型的性能。它促使LLM識別和生成“困難”指令,然后利用這些指令來增強學生模型的能力。

圖3:EA-based KD概述。a)上下文學習蒸餾,(b)思維鏈式蒸餾,(c)指令跟隨蒸餾。
量化(Quantization)
量化技術(shù)將傳統(tǒng)的表示方法中的浮點數(shù)轉(zhuǎn)換為整數(shù)或其他離散形式,以減輕深度學習模型的存儲和計算負擔。謹慎的量化技術(shù),可以在僅有輕微精度降低的情況下實現(xiàn)大規(guī)模的模型壓縮。依據(jù)應用量化壓縮模型的階段,可以分為以下三種方法:量化感知訓練(Quantization-Aware Training,QAT):在QAT中,量化目標無縫地集成到模型的訓練過程中。這種方法使LLM在訓練過程中適應低精度表示,增強其處理由量化引起的精度損失的能力。這種適應旨在保持在量化過程之后的更高性能。LLM-QAT [Liu等,2023] 利用預訓練模型生成的結(jié)果來實現(xiàn)無數(shù)據(jù)蒸餾。此外,LLM-QAT不僅量化權(quán)重和激活,還量化關(guān)鍵-值(KV)緩存。這個策略旨在增強吞吐量并支持更長的序列依賴。LLM-QAT能夠?qū)в辛炕瘷?quán)重和KV緩存的大型LLaMA模型蒸餾為僅有4位的模型。這一突破性的結(jié)果證明了制造準確的4位量化LLM的可行性。量化感知微調(diào)(Quantization-Aware Fine-tuning,QAF)QAF涉及在微調(diào)過程中對LLM進行量化。主要目標是確保經(jīng)過微調(diào)的LLM在量化為較低位寬后仍保持性能。通過將量化意識整合到微調(diào)中,LLM旨在在模型壓縮和保持性能之間取得平衡。PEQA [Kim等,2023]和QLORA [Dettmers等,2023a]都屬于量化感知參數(shù)高效微調(diào)(PEFT)技術(shù)的范疇。這些技術(shù)側(cè)重于促進模型壓縮和加速推理。PEQA采用了雙階段過程。在第一階段,每個全連接層的參數(shù)矩陣被量化為低位整數(shù)矩陣和標量向量。在第二階段,對每個特定下游任務的標量向量進行微調(diào)。QLORA引入了新的數(shù)據(jù)類型、雙重量化和分頁優(yōu)化器等創(chuàng)新概念。這些想法旨在在不影響性能的情況下節(jié)省內(nèi)存。QLORA使得大型模型可以在單個GPU上進行微調(diào),同時在Vicuna基準測試上實現(xiàn)了最先進的結(jié)果。訓練后量化(Post-Training Quantization,PTQ)PTQ涉及在LLM的訓練階段完成后對其參數(shù)進行量化。PTQ的主要目標是減少LLM的存儲和計算復雜性,而無需對LLM架構(gòu)進行修改或進行重新訓練。PTQ的主要優(yōu)勢在于其簡單性和高效性。然而,值得注意的是,PTQ可能會在量化過程中引入一定程度的精度損失。在PTQ中,某些方法專注于僅對LLM的權(quán)重進行量化,以提高效率并減少計算需求。LUT-GEMM [Park等,2022]通過僅對權(quán)重進行量化以及使用BCQ格式在LLM中優(yōu)化矩陣乘法,通過提高計算效率來增強延遲降低和性能。LLM.int8() [Dettmers等,2022]對LLM transformers中的矩陣乘法采用8位量化,在推理過程中有效地減少GPU內(nèi)存使用量,同時保持性能精度。該方法采用矢量量化和混合精度分解來處理異常值,以實現(xiàn)高效的推理。ZeroQuant [Yao等,2022]將硬件友好的量化方案、逐層知識蒸餾和優(yōu)化的量化支持整合在一起,將Transformer-based模型的權(quán)重和激活精度減少到最小的INT8,并且對準確性幾乎沒有影響。GPTQ [Frantar等,2022]提出了一種基于近似二階信息的新型分層量化技術(shù),使得每個權(quán)重的比特寬度減少到3或4位,與未壓縮版本相比,幾乎沒有準確性損失。Dettmers和Zettlemoyer通過分析推理縮放定律,深入探討了LLM中模型大小和位精度之間在零樣本性能方面的權(quán)衡。他們在各種LLM家族之間進行了廣泛的實驗,發(fā)現(xiàn)4位精度幾乎普遍是在總模型位數(shù)和零樣本準確性之間實現(xiàn)正確平衡的最佳選擇。AWQ [Lin等,2023]發(fā)現(xiàn)對于LLM的性能,權(quán)重并不是同等重要的,僅保護1%的顯著權(quán)重可以大大減少量化誤差。在此基礎(chǔ)上,AWQ采用了激活感知方法,考慮與較大激活幅度對應的權(quán)重通道的重要性,這在處理重要特征時起著關(guān)鍵作用。該方法采用逐通道縮放技術(shù)來確定最佳縮放因子,從而在量化所有權(quán)重的同時最小化量化誤差。OWQ [Lee等,2023]通過分析激活異常如何放大權(quán)重量化中的誤差,引入了混合精度量化方案,將更高的精度應用于易受激活異常影響的權(quán)重。SpQR [Dettmers等,2023b]確定并隔離了異常權(quán)重,將其存儲在更高的精度中,并將所有其他權(quán)重壓縮為3-4位。此外,許多PTQ中的工作嘗試對LLM的權(quán)重和激活進行量化。SmoothQuant [Xiao等,2022]解決了量化激活的挑戰(zhàn),這往往由于異常值的存在而變得更加復雜。SmoothQuant觀察到不同的標記在它們的通道上展示出類似的變化,引入了逐通道縮放變換,有效地平滑了幅度,使得模型更易于量化。鑒于量化LLM中激活的復雜性,RPTQ [Yuan等,2023]揭示了不同通道之間不均勻范圍的挑戰(zhàn),以及異常值的存在所帶來的問題。為了解決這個問題,RPTQ將通道策略性地分組為簇進行量化,有效地減輕了通道范圍的差異。此外,它將通道重排集成到層歸一化操作和線性層權(quán)重中,以最小化相關(guān)的開銷。OliVe [Guo等,2023]進一步采用了outlier-victim對(OVP)量化,并在低硬件開銷和高性能增益的情況下局部處理異常值,因為它發(fā)現(xiàn)異常值很重要,而其旁邊的正常值卻不重要。Outlier Suppression+ [Wei等,2023]通過確認激活中的有害異常呈現(xiàn)出不對稱分布,主要集中在特定通道中,引入了一種新的策略,涉及通道級的平移和縮放操作,以糾正異常的不對稱呈現(xiàn),并減輕問題通道的影響,并定量分析了平移和縮放的最佳值,同時考慮了異常的不對稱性以及下一層權(quán)重引起的量化誤差。ZeroQuant-FP [Wu等,2023]探索了浮點(FP)量化的適用性,特別關(guān)注FP8和FP4格式。研究揭示,對于LLM,F(xiàn)P8激活在性能上持續(xù)優(yōu)于INT8,而在權(quán)重量化方面,F(xiàn)P4在性能上與INT4相比具有可比性,甚至更優(yōu)越。為了解決由權(quán)重和激活之間的差異引起的挑戰(zhàn),ZeroQuant-FP要求所有縮放因子為2的冪,并將縮放因子限制在單個計算組內(nèi)。值得注意的是,ZeroQuant-FP還集成了Low Rank Compensation (LoRC) 策略,以進一步增強其量化方法的有效性。 此外,將相關(guān)工作根據(jù)LLM權(quán)重中的位數(shù)(精度)進行分類,又可以分為8位量化和低位量化。

圖4:對語言模型(LLM)的量化方法概述。我們將它們分為8位量化和低位量化兩類,根據(jù)LLM權(quán)重中的位數(shù)(即精度)來進行劃分。
低秩分解(Low-Rank Factorization)
低秩分解旨在通過將給定的權(quán)重矩陣分解成兩個或多個較小維度的矩陣,從而對其進行近似。低秩分解背后的核心思想是找到一個大的權(quán)重矩陣W的分解,得到兩個矩陣U和V,使得W≈U V,其中U是一個m×k矩陣,V是一個k×n矩陣,其中k遠小于m和n。U和V的乘積近似于原始的權(quán)重矩陣,從而大幅減少了參數(shù)數(shù)量和計算開銷。 在LLM研究的模型壓縮領(lǐng)域,研究人員通常將多種技術(shù)與低秩分解相結(jié)合,包括修剪、量化等,例如LoRAPrune [Zhang等,2023a]和ZeroQuant-FP [Wu等,2023],以實現(xiàn)更有效的壓縮同時保持性能。隨著這一領(lǐng)域的研究繼續(xù)進行,可能會在將低秩分解應用于壓縮LLM方面出現(xiàn)進一步的發(fā)展,但仍需要持續(xù)的探索和實驗來充分發(fā)揮其在LLM方面的潛力。
二、指標和基準指標Number of Parameters:LLM中可學習權(quán)重或變量的總數(shù),LLM在訓練期間需要優(yōu)化這些權(quán)重。 Model Size:指存儲整個LLM所需的磁盤空間或內(nèi)存占用,包括權(quán)重、偏置和其他必要組件。 Compression Ratio:未壓縮LLM的原始大小與壓縮LLM的大小之間的比率。 Inference time:衡量LLM在推理或預測期間處理輸入數(shù)據(jù)并生成響應所花費的時間。 Floating point operations (FLOPs):衡量LLM在處理輸入數(shù)據(jù)時執(zhí)行的涉及浮點數(shù)(通常是32位或16位)的算術(shù)操作數(shù)量。
基準
常見的NLP基準:GLUE、LAMBADA、LAMA、SQuAD;
HULK:全面評估了預訓練語言模型(PLMs)的能效;
ELUE:整合了六個NLP數(shù)據(jù)集,涵蓋了情感分析、自然語言推斷、相似性和改寫任務。
三、挑戰(zhàn)和未來方向
專用的基準。首先,模型壓縮的評估缺乏普遍接受的標準設置。其次,可能不是在移動設備上典型任務的最佳代表。并且,為預訓練模型設計的基準也可能不適用在移動設備上的常見任務。
性能與大小的權(quán)衡。當前的工作仍缺乏對這種權(quán)衡理論和實證的洞見。
動態(tài)LLM壓縮。目前壓縮方法仍然依賴于手動設計來確定LLMs的壓縮大小和結(jié)構(gòu),這種手動嘗試會在實際工作帶來阻礙。
可解釋性??山忉屝詨嚎s方法的整合應成為LLM壓縮應用進展的重要必要條件。采用可解釋性壓縮不僅針對解釋性問題,還簡化了壓縮模型的評估過程。反過來也增強了模型在生產(chǎn)階段的可靠性和可預測性。
-
模型
+關(guān)注
關(guān)注
1文章
3752瀏覽量
52101 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1236瀏覽量
26190 -
nlp
+關(guān)注
關(guān)注
1文章
491瀏覽量
23280 -
大模型
+關(guān)注
關(guān)注
2文章
3650瀏覽量
5179
原文標題:大模型壓縮首篇綜述來啦~~
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
模型壓縮技術(shù),加速AI大模型在終端側(cè)的應用
【大語言模型:原理與工程實踐】核心技術(shù)綜述
啃論文俱樂部 | 壓縮算法團隊:我們是如何開展對壓縮算法的學習
壓縮模型會加速推理嗎?
深度網(wǎng)絡模型壓縮綜述
基于無線傳感器網(wǎng)絡的簇首提取壓縮算法
深度學習模型壓縮與加速綜述
深度神經(jīng)網(wǎng)絡模型的壓縮和優(yōu)化綜述
大模型壓縮首篇綜述來啦
評論