隨著大模型參數(shù)規(guī)模不斷膨脹,其高昂的計(jì)算資源需求和低效的運(yùn)行速度成為制約其廣泛應(yīng)用的瓶頸。本文將為您深入剖析大模型輕量化技術(shù),供大家參考。
當(dāng)前大模型如GPT-4已突破萬(wàn)億級(jí)別參數(shù)量、如DeepSeek-R1已突破千億級(jí)別參數(shù)量,這樣的參數(shù)規(guī)模使得大模型的運(yùn)行需要占用巨大的計(jì)算資源,同時(shí)訓(xùn)練和推理的效率低下。
以GPT-4的1.8萬(wàn)億參數(shù)為例,模型參數(shù)FP32全精度對(duì)應(yīng)的理論顯存占用是7.2TB,需至少90張NVIDIAH10080GBGPU,而一塊H100的GPU單價(jià)在$20,000-$40,000。若不考慮大模型輕量化及訓(xùn)練推理加速技術(shù),單次生成1ktokens的推理延遲約為10秒,單次推理成本約為$0.5。
大模型的資源消耗量級(jí)是遠(yuǎn)超移動(dòng)設(shè)備與邊緣計(jì)算硬件的承載極限的,比如常見(jiàn)的智能手機(jī)通常僅有12-24GB內(nèi)存。大模型對(duì)資源的需求和端側(cè)設(shè)備只能提供有限算力的矛盾,催生了一批輕量化的技術(shù)手段。這里的輕量化是指,對(duì)大模型施加參數(shù)調(diào)整、訓(xùn)練優(yōu)化等手段,在精度可接受的前提下,實(shí)現(xiàn)大模型的存儲(chǔ)需求降低和運(yùn)行效率提升。這是大模型走進(jìn)手機(jī)、汽車(chē)、機(jī)器人等端側(cè)設(shè)備的必經(jīng)之路。
本文將通俗介紹大模型的四種輕量化技術(shù),分別是蒸餾、剪枝、低秩分解和量化。
一、蒸餾
蒸餾的本質(zhì)是讓小型的學(xué)生模型(StudentModel)模仿大型的教師模型(TeacherModel)的決策邏輯,從而使得學(xué)生模型在保持較小規(guī)模的前提下逼近教師模型的推理能力。
傳統(tǒng)的蒸餾機(jī)制在于引入軟標(biāo)簽(SoftLabels)作為學(xué)生模型的訓(xùn)練目標(biāo)。這里簡(jiǎn)要解釋下軟標(biāo)簽,如果模型直接判別輸入圖像是“貓/狗”,這類(lèi)非0即1的輸出可以看作是硬標(biāo)簽(HardLabels),比如模型輸出的的硬標(biāo)簽是[0,1],代表模型判別輸入圖像是貓。軟標(biāo)簽是模型輸出的概率分布,當(dāng)讓模型判別一只老虎時(shí),模型可能輸出在貓、狗兩個(gè)類(lèi)別的概率值,此時(shí)軟標(biāo)簽是[0.3,0.7],這種軟標(biāo)簽隱含了類(lèi)別間的相似性知識(shí),比如老虎更接近貓的相貌,同時(shí)接近狗的體格。
在訓(xùn)練學(xué)生模型時(shí),構(gòu)造的訓(xùn)練目標(biāo)函數(shù)是學(xué)生模型預(yù)測(cè)概率分布與教師模型預(yù)測(cè)概率分布的KL散度。在訓(xùn)練過(guò)程中,通過(guò)不斷降低KL散度,讓學(xué)生模型預(yù)測(cè)的概率分布逼近于教師模型預(yù)測(cè)的概率分布,從而確保學(xué)生模型逐步學(xué)習(xí)到教師模型的知識(shí)。
實(shí)際在大模型蒸餾過(guò)程中,學(xué)生模型還可以通過(guò)數(shù)據(jù)蒸餾的方式學(xué)習(xí)教師模型的推理能力。比如在論文《DeepSeek-R1:IncentivizingReasoningCapabilityinLLMsviaReinforcementLearning》中,首先使用DeepSeek-R1作為教師模型,生成包含推理過(guò)程(CoT)和答案的高質(zhì)量訓(xùn)練數(shù)據(jù)(共80萬(wàn)條樣本),然后通過(guò)有監(jiān)督微調(diào)的手段對(duì)Qwen2.5、Llama3等基礎(chǔ)模型進(jìn)行蒸餾。如下圖所示,蒸餾之后的Qwen2.5、Llama3在數(shù)學(xué)推理和編碼任務(wù)取得了很好的表現(xiàn),說(shuō)明了小模型性能是可以通過(guò)蒸餾手段提升的。
二、剪枝
剪枝的靈感源于神經(jīng)科學(xué)。人類(lèi)在嬰兒期會(huì)產(chǎn)生大量的突觸連接,但是在成長(zhǎng)過(guò)程中低頻的突觸連接會(huì)逐漸退化,而高頻的突觸連接會(huì)保留下來(lái)。在大模型的深度神經(jīng)網(wǎng)絡(luò)架構(gòu)中,我們可以刪除模型中某些結(jié)構(gòu)或者冗余參數(shù)來(lái)達(dá)到給大模型“瘦身的效果”,相應(yīng)的有結(jié)構(gòu)化剪枝、非結(jié)構(gòu)化剪枝兩種技術(shù)手段:
非結(jié)構(gòu)化剪枝:隨機(jī)刪除單個(gè)權(quán)重,比如小于某個(gè)閾值的權(quán)重。由于不改變模型的整體結(jié)構(gòu),剪枝之后會(huì)造成參數(shù)矩陣的稀疏性(一部分權(quán)重為0),這種稀疏性會(huì)導(dǎo)致普通GPU/CPU難以高效計(jì)算,需要用到專門(mén)的硬件比如NVIDIAA100TensorCoreGPU來(lái)保證性能發(fā)揮。非結(jié)構(gòu)化剪枝更適用于壓縮率要求較高,但硬件可控的場(chǎng)景,比如在數(shù)據(jù)中心內(nèi)部部署大模型,并且搭配專用加速卡。
結(jié)構(gòu)化剪枝:刪除“結(jié)構(gòu)化單元”,比如整個(gè)卷積核、注意力頭、通道、甚至整個(gè)網(wǎng)絡(luò)層。結(jié)構(gòu)化剪枝后的模型結(jié)構(gòu)規(guī)則與原始模型架構(gòu)是兼容的,無(wú)需專用的硬件即可在普通GPU/CPU上運(yùn)行。但是結(jié)構(gòu)化剪枝的問(wèn)題是可能導(dǎo)致大模型的部分功能失效,比如刪除一個(gè)注意力機(jī)制模塊可能丟失一部分的語(yǔ)義理解能力。因此,需要通過(guò)評(píng)估不同結(jié)構(gòu)化單元的重要性來(lái)判斷哪些結(jié)構(gòu)可剪。結(jié)構(gòu)化剪枝更適用于手機(jī)、汽車(chē)等端側(cè)設(shè)備,支持實(shí)時(shí)目標(biāo)檢測(cè)、語(yǔ)音交互等任務(wù)。
三、低秩分解
大模型的參數(shù)矩陣往往是高維度的稠密矩陣,而低秩分解的思路就是通過(guò)用一些更低維度的矩陣來(lái)表達(dá)稠密矩陣,從而在損失少量精度的前提下,大幅度降低參數(shù)總量。
舉例來(lái)說(shuō),假設(shè)大模型的原始參數(shù)矩陣W的維度是m*n,通過(guò)線性代數(shù)的分解方法,將W分解為兩個(gè)低秩矩陣的乘積,即W=U*V。其中U的維度是m*r,V的維度是r*n,注意r是遠(yuǎn)小于m也遠(yuǎn)小于n的,此時(shí)矩陣的參數(shù)總量就從m*n下降到(m*r+r*n)。
四、量化
我們都知道大模型內(nèi)部有很多參數(shù),而這些參數(shù)的數(shù)值格式會(huì)影響到存儲(chǔ)和計(jì)算資源的效率。量化技術(shù)就是將傳統(tǒng)的32位浮點(diǎn)數(shù)(FP32)參數(shù),替換為更低位數(shù)的數(shù)值格式,比如8位整數(shù)、4位整數(shù)、二進(jìn)制等,從而減少內(nèi)存占用、降低計(jì)算量,并且適配硬件的低精度指令集。
舉例來(lái)說(shuō),一個(gè)FP32的參數(shù)需要4字節(jié)存儲(chǔ),而INT8僅需1字節(jié),理論上可實(shí)現(xiàn)4倍壓縮;若進(jìn)一步量化到INT4,則可實(shí)現(xiàn)8倍壓縮。同時(shí),低精度計(jì)算的硬件效率遠(yuǎn)高于FP32精度的計(jì)算,因此量化不僅能給大模型“瘦身”,還能直接提升推理速度。以DeepSeekR3為例,模型采用FP8量化方案,并且通過(guò)混合訓(xùn)練方案來(lái)確保模型的精度。
從云端到邊緣,從萬(wàn)億參數(shù)到百萬(wàn)參數(shù),大模型的輕量化技術(shù)正在加速AI的落地應(yīng)用。當(dāng)大模型能以0.5秒速度在千元手機(jī)完成醫(yī)學(xué)影像分析,以22ms延遲在汽車(chē)芯片規(guī)避碰撞風(fēng)險(xiǎn),以3W功耗驅(qū)動(dòng)礦山機(jī)器人自主巡檢——這些場(chǎng)景的實(shí)現(xiàn),意味著AI技術(shù)的應(yīng)用門(mén)檻持續(xù)降低,其實(shí)際價(jià)值將在更廣泛的領(lǐng)域中逐步顯現(xiàn)。