通用LLM壓縮算法,居然藏視頻編碼里!2.5bit實(shí)現(xiàn)4bit性能,硬件無縫支持
在大模型的發(fā)展歷程中,提升參數(shù)規(guī)模已被多次證明是提升模型智能的最有效手段之一。
然而,隨著模型參數(shù)量的增加,GPU內(nèi)存容量和互聯(lián)帶寬已成為限制未來更大規(guī)模模型訓(xùn)練和部署的主要瓶頸。
在有限的硬件資源下,如何更有效地訓(xùn)練和推理更大規(guī)模的模型,已成為一個(gè)備受關(guān)注且具有顯著經(jīng)濟(jì)價(jià)值的課題。
為應(yīng)對(duì)這一挑戰(zhàn),壓縮技術(shù)逐漸成為研究的重點(diǎn),尤其是在大模型的訓(xùn)練和推理過程中,內(nèi)存和通信帶寬已成為最關(guān)鍵的瓶頸。
壓縮技術(shù)通過減少數(shù)據(jù)量,直接緩解了系統(tǒng)瓶頸,使得壓縮率的提升往往能直接轉(zhuǎn)化為系統(tǒng)效能的增強(qiáng)。
模型壓縮的巨大潛力吸引了大量研究者探索多種方法,致力于壓縮大模型訓(xùn)練和推理過程中的各類張量,以提升整體效率。
來自杜克大學(xué)、卡耐基梅隆大學(xué)和香港科技大學(xué)的研究團(tuán)隊(duì)發(fā)現(xiàn),視頻編碼器本身就是一種有效的張量編碼器。

論文鏈接:https://arxiv.org/abs/2407.00467
代碼鏈接:https://github.com/Entropy-xcy/llm.265
更重要的是,視頻編解碼器具備許多對(duì)于大規(guī)模模型系統(tǒng)至關(guān)重要的特性。
靈活的碼率控制
傳統(tǒng)的量化壓縮方法通常局限于整數(shù)存儲(chǔ),這使得存儲(chǔ)空間只能以整數(shù)位來控制(例如3bit、4bit每個(gè)元素)。然而,視頻編解碼器能夠靈活控制碼率,支持任意實(shí)數(shù)的位數(shù)(例如每個(gè)元素平均3.1415bit),從而更加高效地利用存儲(chǔ)空間。
多種張量的壓縮
傳統(tǒng)的量化壓縮算法通常只針對(duì)少數(shù)幾種張量進(jìn)行壓縮。而LLM.265方法發(fā)現(xiàn),視頻編解碼器在處理模型參數(shù)、激活函數(shù)、KV緩存、參數(shù)梯度和反向傳播梯度等多個(gè)張量時(shí),具有卓越的壓縮效果。
通過使用統(tǒng)一的壓縮算法對(duì)整個(gè)系統(tǒng)中的大部分張量進(jìn)行壓縮,極大地降低了AI系統(tǒng)的復(fù)雜度。
硬件支持
現(xiàn)有的GPU已自帶視頻編解碼器,LLM.265可以直接利用現(xiàn)有GPU的硬件視頻編解碼單元加速?gòu)埩繅嚎s。
此外,視頻編解碼硬件的實(shí)現(xiàn)效率高且已有幾十年的成熟經(jīng)驗(yàn),因此直接利用或調(diào)整視頻編解碼器進(jìn)行張量壓縮,對(duì)于大模型加速器的設(shè)計(jì)與實(shí)現(xiàn)是一種切實(shí)可行的方案。
為什么是視頻編碼器?
視頻編解碼器是一個(gè)神奇的怪物。
時(shí)間x寬度x高度x色彩,最初在計(jì)算機(jī)上播放視頻的工程師一定想不到,這個(gè)龐大四維視頻張量,可以在幾十年后做到在8K,240fps的分辨率下,在手掌大小的移動(dòng)設(shè)備上通過無線網(wǎng)絡(luò)播放。
誠(chéng)然,摩爾定律提供了算力基石,然而除此之外更加難以置信的是,視頻編解碼器的發(fā)展,使得視頻矩陣可以在被壓縮幾千倍的情況下,讓人類視覺上幾乎看不出和原視頻的差別。
如今,在計(jì)算機(jī)體系結(jié)構(gòu)領(lǐng)域的頂會(huì)中,大模型加速器是毫無疑問的兵家必爭(zhēng)之地,是當(dāng)今時(shí)代毫無疑問的「殺手級(jí)應(yīng)用」。
殊不知,30年前體系結(jié)構(gòu)領(lǐng)域也有一個(gè)「殺手級(jí)應(yīng)用」,就是視頻編解碼!
可以說,30年前的視頻編解碼這個(gè)話題的卷的程度,絲毫不弱于當(dāng)今的大模型加速器。
然而在這卷的過程中,視頻編解碼器和其硬件實(shí)現(xiàn)也已經(jīng)被卷得優(yōu)化到了極致,讓今天做大模型加速和壓縮的研究者回頭望去,就好像歷史在重演,讓人不自覺的便要學(xué)習(xí)之前的經(jīng)驗(yàn)。
然而視頻編碼器正是這么一個(gè)具象的經(jīng)驗(yàn),在大模型壓縮領(lǐng)域的很多研究,都有意或無意的借鑒了許多視頻編碼器的工作流程,比如說DeepCompression的熵編碼,QuaRot和QUIP#的正交變換,和MXFP的分組量化。
然而縱使借鑒,卻未有人嘗試直接利用視頻編解碼器,LLM.265改變了這一「燈下黑」的現(xiàn)狀。
下面用兩個(gè)更具體的例子拋磚引玉,展示視頻編碼器可以高效壓縮張量的原理。

正交編碼均攤離群值(Outlier)的編碼壓力
在信息論領(lǐng)域,高效壓縮服從正態(tài)分布的數(shù)據(jù)早已涌現(xiàn)出眾多成熟方案。
然而,對(duì)現(xiàn)代大模型而言,無論是權(quán)重還是激活,往往呈現(xiàn)「正態(tài)主體+離群值」的混合分布(見圖a、c),既跨度大又要求對(duì)分布中心保持高分辨率。
這種「寬動(dòng)態(tài)范圍+高精細(xì)度」的雙重需求讓傳統(tǒng)壓縮/量化方法進(jìn)退維谷:不是浪費(fèi)大量比特覆蓋離群值,便是犧牲中心區(qū)域精度,或直接截?cái)嚯x群值,結(jié)果都難以令人滿意。
然而視頻編解碼器中的正交變化(如H.264中的DCT)為此提供了一條更為優(yōu)雅途徑。
有時(shí)候,模型參數(shù)中會(huì)出現(xiàn)一些特別大的數(shù)字,就像炒菜時(shí)放進(jìn)一大塊鹽,如果沒拌勻,整道菜就會(huì)忽咸忽淡。
而DCT(離散余弦變換)就像一把把鹽攪拌均勻的勺子,把「鹽味」分散到周圍,讓整鍋菜的味道更均衡、協(xié)調(diào)。如圖a→b所示,DCT先把含離群值的分布「整形」成更規(guī)整的近正太分布。
從具體例子來說,在圖c→d過程中,DCT可以將「128」這一極端值的能量分散到鄰近系數(shù),把原本集中的編碼壓力均勻攤薄。
最終,雖然整體幅值略有升高,但離群值被徹底吸收,后續(xù)的編碼管線的復(fù)雜度和存儲(chǔ)開銷都大可以大降低。

幀間預(yù)測(cè)+殘差編碼
談及視頻編碼,首先必須提到其靈魂技術(shù)——預(yù)測(cè)編碼。正是預(yù)測(cè)編碼,使得視頻壓縮效率達(dá)到了前所未有的水平。預(yù)測(cè)編碼的核心思想是「預(yù)測(cè)而非直接存儲(chǔ)」。
如果我們能夠依據(jù)已有信息對(duì)待編碼的數(shù)據(jù)塊進(jìn)行精準(zhǔn)預(yù)測(cè),那么該塊本身就無需再存儲(chǔ);即便預(yù)測(cè)并不完美,也無需擔(dān)心,只要能夠得到數(shù)據(jù)塊的大致輪廓,隨后計(jì)算出真實(shí)數(shù)據(jù)與預(yù)測(cè)之間的殘差,并僅保存能量更低的殘差信息即可。
相比直接保存完整數(shù)據(jù)塊,僅存殘差便能大幅縮減所需比特?cái)?shù)。
上圖概述了視頻編碼器在張量壓縮中的工作鏈路。編碼器首先對(duì)輸入幀進(jìn)行邊緣預(yù)測(cè)(見圖b):一旦判斷出存在連續(xù)邊緣,便直接記錄「從(x?,y?)到(x?,y?)的像素均為藍(lán)色」這類幾何描述,而非逐像素存儲(chǔ)。
憑借這種輪廓級(jí)表達(dá),數(shù)據(jù)體積驟減,壓縮比隨之倍增。類似地,LLM的權(quán)重、激活和梯度張量也蘊(yùn)含可視化意義上的「邊緣」。
這些張量通常呈軸向分布,即沿同一軸方向的數(shù)據(jù)整體偏高或偏低(見圖b)。
視頻編碼器可以把這類軸向結(jié)構(gòu)視作「可預(yù)測(cè)」的邊緣區(qū)域,先用預(yù)測(cè)值勾勒大致輪廓,再只編碼預(yù)測(cè)與真實(shí)之間的低能量殘差(見圖c)。
對(duì)殘差先進(jìn)行正交變換,再進(jìn)行量化后,其信息熵會(huì)進(jìn)一步降低(見圖d),于是需要傳輸或存儲(chǔ)的比特?cái)?shù)大幅減少,壓縮率顯著提升。
實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)結(jié)果表明,在幾乎所有模型壓縮的場(chǎng)景中,無論是推理還是訓(xùn)練,也不論是單卡還是分布式環(huán)境,使用視頻編解碼器對(duì)張量進(jìn)行壓縮都能取得顯著的效果。

針對(duì)權(quán)重壓縮的實(shí)驗(yàn),LLM.265將傳統(tǒng)的4?bit量化進(jìn)一步推進(jìn)至2.5?bit,在僅用2.5?bit的預(yù)算下仍能夠?qū)崿F(xiàn)與原來4?bit相當(dāng)?shù)男阅埽瑤缀跖c全精度基準(zhǔn)線持平,未出現(xiàn)可感知的精度下降。
在訓(xùn)練過程中,LLM.265將每參數(shù)的平均通信比特從之前的3.5?bit降至1.4?bit,通信量因此縮減約2.5倍,同時(shí)收斂速度也超過了此前的最先進(jìn)方法。這些結(jié)果充分說明視頻編解碼器在張量壓縮方面具備卓越的潛力。
關(guān)于未來加速卡設(shè)計(jì)、編碼器和LLM系統(tǒng)的思考
用更多計(jì)算換更小數(shù)據(jù)量會(huì)越來越劃算
隨著模型規(guī)模的持續(xù)擴(kuò)大,摩爾定律的效應(yīng)趨于衰減,計(jì)算能力的提升相對(duì)受限,而通信和內(nèi)存帶寬的瓶頸在硬件成本、能耗以及可擴(kuò)展性方面表現(xiàn)得尤為突出。
在此背景下,數(shù)據(jù)壓縮作為一種「用計(jì)算量換取更小數(shù)據(jù)規(guī)模」的技術(shù)手段,對(duì)緩解內(nèi)存和通信壓力具有重要意義。
研究結(jié)果發(fā)現(xiàn),視頻編碼模塊在芯片上占用的面積不足GPU面積的百分之一,這意味著在現(xiàn)有GPU上額外集成若干視頻編碼單元即可顯著提升系統(tǒng)級(jí)能效,降低整體成本;若進(jìn)一步研發(fā)專用于張量的編碼單元,效益將更加突出。
不再?gòu)?qiáng)求無損壓縮,有損有更高的自由度
過去的壓縮加速器研究大多聚焦于無損方案,而無損壓縮的理論上限通常不超過兩倍的壓縮率。
LLM.265的實(shí)驗(yàn)表明,在允許適度有損的前提下,只要在性能與精度之間進(jìn)行合理的權(quán)衡,就可以實(shí)現(xiàn)遠(yuǎn)高于無損的壓縮率,同時(shí)在訓(xùn)練和推理階段仍能保持模型效果和精度的可接受水平。
更重要的是,有損壓縮方案往往只需對(duì)現(xiàn)有硬件進(jìn)行少量改動(dòng),即可在需要時(shí)切換回?zé)o損模式,保持靈活性。
通用還是專用,that is the question
LLM.265的實(shí)驗(yàn)提示可以從兩條路徑進(jìn)行探索:
一是將現(xiàn)有視頻編碼器精細(xì)化為專門的張量編碼器,去除與張量無關(guān)的功能模塊,強(qiáng)化對(duì)張量有價(jià)值的部件,并加入針對(duì)張量特性的專用模塊,以追求極致性能;
二是將張量編碼的功能融入視頻編碼器之中,利用視頻、圖像以及通用文件壓縮流水線之間的高度相似性,實(shí)現(xiàn)硬件壓縮加速器的模塊共享。
若能夠構(gòu)建一個(gè)能夠服務(wù)多種壓縮場(chǎng)景的共享加速器,則有望在硬件資源利用率和系統(tǒng)整體效率上獲得更大收益。
結(jié)語(yǔ)
通用抑或?qū)S茫?jì)算體系結(jié)構(gòu)自誕生伊始便籠罩著激烈的爭(zhēng)論。千位架構(gòu)師、千種應(yīng)用,恰似千人千面、千個(gè)哈姆雷特,孕育出萬般設(shè)計(jì)。
正是這種無限的自由度,造就了體系結(jié)構(gòu)與架構(gòu)設(shè)計(jì)的獨(dú)特魅力,也促成了芯片史上無數(shù)大膽、瘋狂的創(chuàng)新。
然而,架構(gòu)師面對(duì)的并非舞臺(tái)上「文無第一」的妙語(yǔ)橫生,而是「武無第二」的沙場(chǎng)血戰(zhàn)。
在無數(shù)基準(zhǔn)測(cè)試的天平下,所有的架構(gòu)設(shè)計(jì)都高下立判。每一次架構(gòu)抉擇,都足以左右一個(gè)企業(yè)的興衰存亡——此為即決高下,也決生死。我想,這正是芯片架構(gòu)設(shè)計(jì)最令人著迷之所在。

































