陳丹琦團(tuán)隊(duì)新作:Llama-2上下文擴(kuò)展至128k,10倍吞吐量?jī)H需1/6內(nèi)存
陳丹琦團(tuán)隊(duì)剛剛發(fā)布了一種新的LLM上下文窗口擴(kuò)展方法:
它僅用8k大小的token文檔進(jìn)行訓(xùn)練,就能將Llama-2窗口擴(kuò)展至128k。
最重要的是,在這個(gè)過(guò)程中,只需要原來(lái)1/6的內(nèi)存,模型就獲得了10倍吞吐量。
除此之外,它還能大大降低訓(xùn)練成本:
用該方法對(duì)7B大小的羊駝2進(jìn)行改造,只需要一塊A100就能搞定。
團(tuán)隊(duì)表示:
希望這個(gè)方法有用、好用,為未來(lái)的LLM們提供廉價(jià)又有效的長(zhǎng)上下文能力。
目前,模型和代碼都已在HuggingFace和GitHub上發(fā)布。
只需添加兩個(gè)組件
這個(gè)方法名叫CEPE,全稱“并行編碼上下文擴(kuò)展(Context Expansion with Parallel Encoding)”。
作為輕量級(jí)框架,它可用于擴(kuò)展任何預(yù)訓(xùn)練和指令微調(diào)模型的上下文窗口。
對(duì)于任何預(yù)訓(xùn)練的僅解碼器語(yǔ)言模型,CEPE通過(guò)添加兩個(gè)小組件來(lái)實(shí)現(xiàn)擴(kuò)展:
一個(gè)是小型編碼器,用于對(duì)長(zhǎng)上下文進(jìn)行塊編碼;
一個(gè)是交叉注意力模塊,插入到解碼器的每一層,用于關(guān)注編碼器表示。
完整架構(gòu)如下:
在這個(gè)示意圖中,編碼器模型并行編碼上下文的3個(gè)額外塊,并與最終隱藏表示進(jìn)行連接,然后作為解碼器交叉注意力層的輸入。
在此,交叉注意力層主要關(guān)注解碼器模型中自注意力層和前饋層之間的編碼器表示。
通過(guò)仔細(xì)選擇無(wú)需標(biāo)記的訓(xùn)練數(shù)據(jù),CEPE就幫助模型具備了長(zhǎng)上下文能力,并且也擅長(zhǎng)文檔檢索。
作者介紹,這樣的CEPE主要包含3大優(yōu)勢(shì):
(1)長(zhǎng)度可泛化
因?yàn)樗皇芪恢镁幋a的約束,相反,它的上下文是分段編碼的,每一段都有自己的位置編碼。
(2)效率高
使用小型編碼器和并行編碼來(lái)處理上下文可以降低計(jì)算成本。
同時(shí),由于交叉注意力僅關(guān)注編碼器最后一層的表示,而僅使用解碼器的語(yǔ)言模型則需要緩存每個(gè)層每個(gè)token的鍵-值對(duì),所以對(duì)比起來(lái),CEPE需要的內(nèi)存大大減少。
(3)降低訓(xùn)練成本
與完全微調(diào)方法不同,CEPE只調(diào)整編碼器和交叉注意力,同時(shí)保持大型解碼器模型凍結(jié)。
作者介紹,通過(guò)將7B解碼器擴(kuò)充為具有400M編碼器和交叉注意力層的模型(總計(jì)14億參數(shù)),用一塊80GB的A100 GPU就可以完成。
困惑度持續(xù)降低
團(tuán)隊(duì)將CEPE應(yīng)用于Llama-2,并在200億 token的RedPajama過(guò)濾版本上進(jìn)行訓(xùn)練(僅為L(zhǎng)lama-2預(yù)訓(xùn)練預(yù)算的1%)。
首先,與LLAMA2-32K和YARN-64K這兩種完全微調(diào)的模型相比,CEPE在所有數(shù)據(jù)集上都實(shí)現(xiàn)了更低或相當(dāng)?shù)?strong>困惑度,同時(shí)具有更低的內(nèi)存使用率和更高的吞吐量。
在將上下文提升到128k時(shí)(遠(yuǎn)超其8k訓(xùn)練長(zhǎng)度),CEPE的困惑度更是持續(xù)保持降低,同時(shí)保持低內(nèi)存狀態(tài)。
相比之下,Llama-2-32K和YARN-64K不僅不能推廣到其訓(xùn)練長(zhǎng)度之外,還伴隨著內(nèi)存成本顯著增加。
其次,檢索能力增強(qiáng)。
如下表所示:
通過(guò)使用檢索到的上下文,CEPE可以有效改善模型困惑度,性能優(yōu)于RePlug。
值得注意的是,即使讓段落k=50 (訓(xùn)練是60),CEPE仍會(huì)繼續(xù)改善困惑度。
這表明CEPE可以很好地轉(zhuǎn)移到檢索增強(qiáng)設(shè)置,而全上下文解碼器模型在這個(gè)能力上卻退化了。
第三,開放域問(wèn)答能力顯著超越。
如下圖所示,CEPE在所有數(shù)據(jù)集和段落k參數(shù)上都大幅優(yōu)于其他模型,且不像別的模型那樣,k值越來(lái)越大之后性能明顯下降。
這也表明,CEPE對(duì)大量冗余或不相關(guān)的段落并不敏感。
所以總結(jié)一下就是,與大多數(shù)其他解決辦法相比,CEPE在上述所有任務(wù)上都能以低得多的內(nèi)存和計(jì)算成本勝出。
最后,作者在這些基礎(chǔ)上,提出了專門用于指令調(diào)優(yōu)模型的CEPE-Distilled (CEPED)。
它僅使用未標(biāo)記的數(shù)據(jù)來(lái)擴(kuò)展模型的上下文窗口,通過(guò)輔助KL散度損失將原始指令調(diào)整模型的行為提煉為新架構(gòu),由此無(wú)需管理昂貴的長(zhǎng)上下文指令跟蹤數(shù)據(jù)。
最終,CEPED可以在保留指令理解能力的同時(shí),擴(kuò)展Llama-2的上下文窗口,提高模型長(zhǎng)文本性能。
團(tuán)隊(duì)介紹
CEPE一共3位作者。
一作為顏和光(Howard Yen),普林斯頓大學(xué)計(jì)算機(jī)科學(xué)專業(yè)碩士生在讀。
二作為高天宇,同校博士生在讀,清華本科畢業(yè)。
他們都是通訊作者陳丹琦的學(xué)生。
論文原文:https://arxiv.org/abs/2402.16617
參考鏈接:https://twitter.com/HowardYen1/status/1762474556101661158