本發(fā)明屬于模型壓縮,具體涉及一種可變內(nèi)存環(huán)境下細(xì)料度尺寸控制的大型語(yǔ)言模型壓縮方法。
背景技術(shù):
1、大型語(yǔ)言模型(llms)在各類(lèi)基準(zhǔn)測(cè)試中表現(xiàn)出卓越性能,并逐漸在日常生活中得到應(yīng)用,如通用語(yǔ)言助手、搜索引擎和代碼助手。隨著規(guī)模的擴(kuò)大,大型語(yǔ)言模型的部署從性能的提升逐漸轉(zhuǎn)向可用性的提升,例如內(nèi)存占用問(wèn)題成為瓶頸。加載大型模型需要顯著的內(nèi)存資源,這對(duì)低資源設(shè)備的部署構(gòu)成挑戰(zhàn)。
2、大型語(yǔ)言模型的壓縮方法主要包含量化、剪枝、知識(shí)蒸餾、權(quán)重分解四種。其中,量化、剪枝、知識(shí)蒸餾等傳統(tǒng)壓縮方法需要預(yù)設(shè)壓縮比,適配性有限,且壓縮步驟復(fù)雜,而先前的權(quán)重分解方法雖然能減小存儲(chǔ)空間需求,但高壓縮比下會(huì)顯著損害性能,難以適應(yīng)動(dòng)態(tài)內(nèi)存變化。
3、為了讓大型語(yǔ)言模型能夠惠及更多人,將模型部署在本地設(shè)備中逐漸成為一種強(qiáng)烈需求。而在本地設(shè)備上部署大型語(yǔ)言模型需要兼顧內(nèi)存和性能,而現(xiàn)有方法在可變內(nèi)存環(huán)境中難以實(shí)現(xiàn)動(dòng)態(tài)優(yōu)化?,F(xiàn)有的方法由于受到需要預(yù)設(shè)壓縮比的限制,難以適配本地設(shè)備中有限且快速變化的可用內(nèi)存容量,而切換不同壓縮比的壓縮模型會(huì)帶來(lái)很大的內(nèi)存加載時(shí)延及存儲(chǔ)負(fù)擔(dān)。因此,當(dāng)前需要提出一種能夠適應(yīng)可變內(nèi)存環(huán)境的模型壓縮方法,讓高效的模型本地部署成為可能。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明是為解決上述問(wèn)題而進(jìn)行的,目的在于提供一種能夠在可變內(nèi)存環(huán)境中實(shí)現(xiàn)動(dòng)態(tài)優(yōu)化的大型語(yǔ)言模型壓縮方法,本發(fā)明采用了如下技術(shù)方案:
2、本發(fā)明提供了一種可變內(nèi)存環(huán)境下細(xì)料度尺寸控制的大型語(yǔ)言模型壓縮方法,該方法具有這樣的技術(shù)特征在于,其包括以下步驟:步驟s1,通過(guò)預(yù)定的校準(zhǔn)數(shù)據(jù)集計(jì)算待壓縮的大型語(yǔ)言模型各個(gè)權(quán)重矩陣對(duì)應(yīng)的激活值,并基于所述激活值得到激活值感知的權(quán)重矩陣;步驟s2,將各個(gè)所述激活值感知的權(quán)重矩陣分解為其符號(hào)矩陣和絕對(duì)值矩陣,并對(duì)所述絕對(duì)值矩陣進(jìn)行迭代分解,基于符號(hào)矩陣和迭代分解結(jié)果得到多個(gè)殘差數(shù)據(jù)塊;步驟s3,對(duì)多個(gè)所述殘差數(shù)據(jù)塊進(jìn)行重要性評(píng)估和排序;步驟s4,根據(jù)當(dāng)前可用內(nèi)存容量的變化以及所述殘差數(shù)據(jù)塊的重要性,動(dòng)態(tài)加載或卸載所述殘差數(shù)據(jù)塊,得到與所述當(dāng)前可用內(nèi)存容量相適應(yīng)的壓縮模型。
3、本發(fā)明提供的可變內(nèi)存環(huán)境下細(xì)料度尺寸控制的大型語(yǔ)言模型壓縮方法,還可以具有這樣的技術(shù)特征,其中,在步驟s1中,基于所述激活值計(jì)算縮放因子,并用所述縮放因子對(duì)各個(gè)所述權(quán)重矩陣中對(duì)應(yīng)行進(jìn)行縮放,得到所述激活值感知的權(quán)重矩陣。
4、本發(fā)明提供的可變內(nèi)存環(huán)境下細(xì)料度尺寸控制的大型語(yǔ)言模型壓縮方法,還可以具有這樣的技術(shù)特征,其中,在步驟s1中,基于所述激活值得到激活值矩陣,統(tǒng)計(jì)所述激活值矩陣的l2范數(shù)作為所述縮放因子:
5、s=[||x1||2,||x2||2,…,|xn||2]
6、用所述縮放因子對(duì)各個(gè)所述權(quán)重矩陣中對(duì)應(yīng)行進(jìn)行縮放,得到所述激活值感知的權(quán)重矩陣:
7、xw=xdiag(1/s)diag(s)w=xdiag(1/s)wscaled
8、式中,xn為激活值矩陣各列的值,x為激活值矩陣,w為權(quán)重矩陣,wscaled為激活值感知的權(quán)重矩陣。
9、本發(fā)明提供的可變內(nèi)存環(huán)境下細(xì)料度尺寸控制的大型語(yǔ)言模型壓縮方法,還可以具有這樣的技術(shù)特征,其中,步驟s2包括以下子步驟:步驟s2-1,將所述激活值感知的權(quán)重矩陣分解為所述符號(hào)矩陣和所述絕對(duì)值矩陣的乘積;步驟s2-2,對(duì)待分解的所述絕對(duì)值矩陣進(jìn)行奇異值分解,并保留所述符號(hào)矩陣和通過(guò)奇異值分解得到的前k個(gè)奇異向量和奇異值,得到由所述符號(hào)矩陣和前k個(gè)所述奇異向量構(gòu)成的所述殘差數(shù)據(jù)塊;步驟s2-3,判斷是否到達(dá)預(yù)定的迭代次數(shù),在判斷為是時(shí)得到分解出的多個(gè)所述殘差數(shù)據(jù)塊;步驟s2-4,在步驟s2-3中判斷為否時(shí),基于待分解的所述絕對(duì)值矩陣和所述殘差數(shù)據(jù)塊計(jì)算近似殘差,得到的殘差絕對(duì)值矩陣;步驟s2-5,將所述殘差絕對(duì)值矩陣作為新的待分解的絕對(duì)值矩陣,并返回步驟s2-2,以繼續(xù)對(duì)所述殘差絕對(duì)值矩陣進(jìn)行分解。
10、本發(fā)明提供的可變內(nèi)存環(huán)境下細(xì)料度尺寸控制的大型語(yǔ)言模型壓縮方法,還可以具有這樣的技術(shù)特征,其中,在步驟s2-1中,對(duì)所述激活值感知的權(quán)重矩陣的分解表示為:
11、wscaled=wsign☉|w|
12、在步驟s2-2中,所述奇異值分解表示為:
13、
14、經(jīng)過(guò)n次迭代分解后得到的所述殘差數(shù)據(jù)塊表示為:
15、
16、式中,wsign為符號(hào)矩陣,|w|為絕對(duì)值矩陣,a’為左奇異矩陣,b’為右奇異矩陣,為殘差數(shù)據(jù)塊,為殘差數(shù)據(jù)塊的符號(hào)矩陣。
17、本發(fā)明提供的可變內(nèi)存環(huán)境下細(xì)料度尺寸控制的大型語(yǔ)言模型壓縮方法,還可以具有這樣的技術(shù)特征,其中,所述符號(hào)矩陣僅包含1和-1,將其打包為cpu支持的數(shù)據(jù)類(lèi)型進(jìn)行存儲(chǔ),其每個(gè)參數(shù)占用1bit內(nèi)存容量。
18、本發(fā)明提供的可變內(nèi)存環(huán)境下細(xì)料度尺寸控制的大型語(yǔ)言模型壓縮方法,還可以具有這樣的技術(shù)特征,其中,在步驟s3中,使用預(yù)定的校準(zhǔn)數(shù)據(jù)集計(jì)算加載不同的所述殘差數(shù)據(jù)塊情況下構(gòu)成的不同的所述壓縮模型的困惑度,從而評(píng)估不同的所述殘差數(shù)據(jù)塊的重要性,根據(jù)所述重要性對(duì)多個(gè)所述殘差數(shù)據(jù)塊進(jìn)行全局排序。
19、本發(fā)明提供的可變內(nèi)存環(huán)境下細(xì)料度尺寸控制的大型語(yǔ)言模型壓縮方法,還可以具有這樣的技術(shù)特征,其中,在步驟s4中,根據(jù)所述當(dāng)前可用內(nèi)存容量以及所述殘差數(shù)據(jù)塊的重要性,選擇重要性排序前m個(gè)所述殘差數(shù)據(jù)塊構(gòu)成所述壓縮模型。
20、本發(fā)明提供的可變內(nèi)存環(huán)境下細(xì)料度尺寸控制的大型語(yǔ)言模型壓縮方法,還可以具有這樣的技術(shù)特征,其中,在步驟s4中,在所述當(dāng)前可用內(nèi)存容量增加時(shí),根據(jù)增加量相應(yīng)地再向所述壓縮模型加載重要性排序第m+1個(gè)開(kāi)始的若干個(gè)所述殘差數(shù)據(jù)塊,構(gòu)成新的壓縮模型;在所述當(dāng)前可用內(nèi)存容量減少時(shí),根據(jù)減少量相應(yīng)地從所述壓縮模型中卸載重要性排序最靠后的若干個(gè)所述殘差數(shù)據(jù)塊,構(gòu)成新的壓縮模型。
21、發(fā)明的作用與效果
22、根據(jù)本發(fā)明提供的可變內(nèi)存環(huán)境下細(xì)料度尺寸控制的大型語(yǔ)言模型壓縮方法,包括計(jì)算激活值感知的權(quán)重矩陣的步驟、對(duì)其激活值感知的權(quán)重矩陣的絕對(duì)值矩陣進(jìn)行迭代分解的步驟、對(duì)迭代分解出的多個(gè)殘差數(shù)據(jù)塊進(jìn)行重要性評(píng)估和排序的步驟、以及根據(jù)可用內(nèi)容容量的變化以及重要性排序動(dòng)態(tài)加載殘差數(shù)據(jù)塊以構(gòu)成不同壓縮模型的步驟。通過(guò)這樣的方法,能夠使得壓縮模型很好地適應(yīng)可變內(nèi)存環(huán)境,從而能夠在本地設(shè)備中部署模型,并且由于優(yōu)先加載重要性更高的殘差數(shù)據(jù)塊,因此壓縮模型仍具有與原大型語(yǔ)言模型接近的優(yōu)秀性能,即使是在極端壓縮比的情況下也是如此,因此壓縮模型也無(wú)需再經(jīng)過(guò)訓(xùn)練,使得模型在本地設(shè)備中的部署更為方便和高效。
1.一種可變內(nèi)存環(huán)境下細(xì)料度尺寸控制的大型語(yǔ)言模型壓縮方法,其特征在于,包括以下步驟:
2.根據(jù)權(quán)利要求1所述的可變內(nèi)存環(huán)境下細(xì)料度尺寸控制的大型語(yǔ)言模型壓縮方法,其特征在于:
3.根據(jù)權(quán)利要求2所述的可變內(nèi)存環(huán)境下細(xì)料度尺寸控制的大型語(yǔ)言模型壓縮方法,其特征在于:
4.根據(jù)權(quán)利要求2所述的可變內(nèi)存環(huán)境下細(xì)料度尺寸控制的大型語(yǔ)言模型壓縮方法,其特征在于:
5.根據(jù)權(quán)利要求4所述的可變內(nèi)存環(huán)境下細(xì)料度尺寸控制的大型語(yǔ)言模型壓縮方法,其特征在于:
6.根據(jù)權(quán)利要求5所述的可變內(nèi)存環(huán)境下細(xì)料度尺寸控制的大型語(yǔ)言模型壓縮方法,其特征在于:
7.根據(jù)權(quán)利要求1所述的可變內(nèi)存環(huán)境下細(xì)料度尺寸控制的大型語(yǔ)言模型壓縮方法,其特征在于:
8.根據(jù)權(quán)利要求7所述的可變內(nèi)存環(huán)境下細(xì)料度尺寸控制的大型語(yǔ)言模型壓縮方法,其特征在于:
9.根據(jù)權(quán)利要求8所述的可變內(nèi)存環(huán)境下細(xì)料度尺寸控制的大型語(yǔ)言模型壓縮方法,其特征在于: