首頁 > AI資訊 > 最新資訊 > 匿名論文提出奇招!增強(qiáng)大模型長文本能力居然還能這么做

匿名論文提出奇招!增強(qiáng)大模型長文本能力居然還能這么做

新火種    2024-02-19

一提到提高大模型長文本能力,就想到長度外推或者上下文窗口擴(kuò)展?

不行,這些都太費(fèi)硬件資源了。

來看一個(gè)奇妙新解:

和長度外推等方法使用KV緩存的本質(zhì)不同,它用模型的參數(shù)來存儲大量上下文信息。

具體辦法就是建一個(gè)臨時(shí)Lora模塊,讓它僅在長文本生成過程中“流式更新”,也就是用先前生成的內(nèi)容不斷作為輸入來充當(dāng)訓(xùn)練數(shù)據(jù),以此保證知識被存進(jìn)模型參數(shù)中。

然后一旦推理完成,就丟掉它,保證不對模型參數(shù)產(chǎn)生長久影響。

這個(gè)方法可以讓我們不用擴(kuò)展上下文窗口的同時(shí),隨便存儲上下文信息,想存多少存多少。

實(shí)驗(yàn)證明,這種方法:

既可以顯著提高模型長文本任務(wù)質(zhì)量,實(shí)現(xiàn)困惑度下降29.6%,長文本翻譯質(zhì)量(BLUE得分)提高53.2%;還能兼容并增強(qiáng)現(xiàn)有大多數(shù)長文本生成方法。最重要的是,能大大降低計(jì)算成本。

在保證生成質(zhì)量小幅提升(困惑度降低3.8%)的同時(shí),推理所需的FLOPs降低70.5%、延遲降低51.5%!

具體情況,我們翻開論文來看。

建個(gè)臨時(shí)Lora模塊用完即丟

該方法名叫Temp-Lora,架構(gòu)圖如下:

其核心就是以自回歸的方式用先前生成的文本上逐步訓(xùn)練臨時(shí)Lora模塊。

該模塊適應(yīng)性很強(qiáng)可以不斷調(diào)整,因此對不同遠(yuǎn)近的上下文都能深入理解。

具體算法如下:

在生成過程中,token是逐塊生成的。每次生成塊時(shí),使用最新的Lxtoken作為輸入X生成后續(xù)token。

一旦生成的token數(shù)量達(dá)到預(yù)定義的區(qū)塊大小?,就使用最新的塊啟動(dòng)Temp-Lora模塊的訓(xùn)練,然后開始下一個(gè)塊生成。

在實(shí)驗(yàn)中,作者將?+Lx設(shè)置為W,以充分利用模型的上下文窗口大小。

對于Temp-Lora模塊的訓(xùn)練,如果在沒有任何條件的情況下,學(xué)習(xí)生成新的塊可能構(gòu)不成有效的訓(xùn)練目標(biāo),并導(dǎo)致嚴(yán)重的過擬合。

為了解決這個(gè)問題,作者將每個(gè)塊前面的LT標(biāo)記合并到訓(xùn)練過程中,將它們用作輸入,將塊用作輸出。

最后,作者還提出了一種稱為緩存重用(Cache Reuse)策略來實(shí)現(xiàn)更高效的推理。

一般來說,在標(biāo)準(zhǔn)框架中更新Temp-Loramo模塊后,我們需要使用更新的參數(shù)重新計(jì)算KV狀態(tài)。

或者,重用現(xiàn)有的緩存KV狀態(tài),同時(shí)使用更新的模型進(jìn)行后續(xù)的文本生成。

具體來說,只有當(dāng)模型生成最大長度(上下文窗口大小W)時(shí),我們才使用最新的Temp-Lora模塊重新計(jì)算KV狀態(tài)。

這樣的緩存重用方法就可以在不顯著影響生成質(zhì)量的情況下加快生成速度。

關(guān)于Temp-Lora方法的介紹就這么多,下面主要看測試。

文本越長,效果越好

作者在Llama2-7B-4K、Llama2-13B-4K、Llama2-7B-32K以及Yi-Chat-6B模型上上對Temp-Lora框架進(jìn)行了評估,并涵蓋生成和翻譯這兩類長文本任務(wù)。

測試數(shù)據(jù)集一個(gè)是長文本語言建模基準(zhǔn)PG19的子集,從中隨機(jī)抽取了40本書。

另一個(gè)是來自WMT 2023的國風(fēng)數(shù)據(jù)集的隨機(jī)抽樣子集,包含20部中文網(wǎng)絡(luò)小說,由專業(yè)人員翻譯成英文。

首先來看PG19上的結(jié)果。

下表顯示了PG19上帶有和不帶有Temp-Lora模塊的各種型號的PPL(困惑度,反映模型對于給定輸入的不確定性,越低越好)比較。將每個(gè)文檔劃分為0-100K到500K+token的片段。

可以看到,所有型號經(jīng)過Temp-Lora之后PPL都顯著下降,并且隨著片段越來越長,Temp-Lora的影響更加明顯(1-100K僅降低3.6%,500K+降低13.2%)。

因此,我們可以簡單地得出結(jié)論:文本越多,使用Temp-Lora的必要性就越強(qiáng)。

此外我們還能發(fā)現(xiàn),將塊大小從1024調(diào)整到2048和4096導(dǎo)致PPL略有增加。

這倒是不奇怪,畢竟Temp-Lora模塊是在之前塊的數(shù)據(jù)上訓(xùn)練的。

這個(gè)數(shù)據(jù)主要是告訴我們塊大小的選擇是生成質(zhì)量和計(jì)算效率之間的關(guān)鍵權(quán)衡(進(jìn)一步分析可以查閱論文)。

最后,我們還能從中發(fā)現(xiàn),緩存重復(fù)使用不會(huì)導(dǎo)致任何性能損失。

作者表示:這是一個(gè)非常令人鼓舞的消息。

下面是國風(fēng)數(shù)據(jù)集上的結(jié)果。

可以看到,Temp-Lora對長文本文學(xué)翻譯任務(wù)也有顯著影響。

與基礎(chǔ)模型相比,所有指標(biāo)都有顯著改進(jìn):PPL降低了-29.6%,BLEU得分(機(jī)器翻譯文本與高質(zhì)量參考翻譯的相似度)提高了+53.2%,COMET得分(也是一個(gè)質(zhì)量指標(biāo))提高了+8.4%。

最后,是計(jì)算效率和質(zhì)量方面的探索。

作者經(jīng)實(shí)驗(yàn)發(fā)現(xiàn),使用最“經(jīng)濟(jì)”的Temp-Lora配置(?=2K,W=4K),能將PPL降低3.8%的同時(shí),節(jié)省70.5%的FLOP和51.5%的延遲。

相反,如果我們完全忽略計(jì)算成本,使用最“豪華”的配置(?=1K和W=24K),也可以實(shí)現(xiàn)5.0%的PPL降低,并額外增加17%的FLOP和19.6%的延遲。

使用建議

總結(jié)以上結(jié)果,作者也給出了實(shí)際應(yīng)用Temp-Lora的三點(diǎn)建議:

1、對于需要最高級別長文本生成的應(yīng)用,在不更改任何參數(shù)的情況下,集成Temp-Lora到現(xiàn)有模型中,就能以相對適中的成本顯著提高性能。

2、對于看重最小延遲或內(nèi)存使用的應(yīng)用,可以通過減少輸入長度和在Temp-Lora中存儲的上下文信息來顯著降低計(jì)算成本。

在這種設(shè)置下,我們可以使用固定的短窗口大小(如2K或4K)來處理幾乎無限長的文本(在作者的實(shí)驗(yàn)中為500K+)。

3、最后,請注意,在不含大量文本的場景中,例如預(yù)訓(xùn)練中上下文比模型的窗口大小還小,Temp-Lora就是毫無用處的。

作者來自保密機(jī)構(gòu)

值得一提的是,發(fā)明這么簡單又創(chuàng)新的辦法,作者卻沒有留下太多出處信息:

機(jī)構(gòu)名稱直接落款“保密機(jī)構(gòu)”,三位作者的名字也只有完整的姓。

不過從郵箱信息來看,可能來自港城大、港中文等學(xué)校。

最最后,對于這個(gè)方法,你覺得怎么樣?

Tags:
相關(guān)推薦
免責(zé)聲明
本文所包含的觀點(diǎn)僅代表作者個(gè)人看法,不代表新火種的觀點(diǎn)。在新火種上獲取的所有信息均不應(yīng)被視為投資建議。新火種對本文可能提及或鏈接的任何項(xiàng)目不表示認(rèn)可。 交易和投資涉及高風(fēng)險(xiǎn),讀者在采取與本文內(nèi)容相關(guān)的任何行動(dòng)之前,請務(wù)必進(jìn)行充分的盡職調(diào)查。最終的決策應(yīng)該基于您自己的獨(dú)立判斷。新火種不對因依賴本文觀點(diǎn)而產(chǎn)生的任何金錢損失負(fù)任何責(zé)任。

熱門文章