本發(fā)明涉及一種基于周期延拓的大模型長(zhǎng)文本外推方法及系統(tǒng),屬于大模型的長(zhǎng)文本。
背景技術(shù):
1、近些年,基于transformer結(jié)構(gòu)的大語(yǔ)言模型(llm)技術(shù)快速發(fā)展,其強(qiáng)大的推理能力在nlp領(lǐng)域以及圖像領(lǐng)域發(fā)揮了非常顯著的作用。然而,當(dāng)使用大模型對(duì)較長(zhǎng)的文本輸入進(jìn)行推理時(shí),發(fā)現(xiàn)模型在長(zhǎng)文本上的推理性能急劇下降。然而,實(shí)際應(yīng)用場(chǎng)景中迫切地需要提升大模型處理長(zhǎng)文本輸入的能力。尤其是隨著大模型推理與rag技術(shù)的結(jié)合,模型的輸入文本中需要含有大量檢索信息,這使得模型輸入文本長(zhǎng)度倍增。因此,大模型針對(duì)長(zhǎng)文本輸入進(jìn)行推理時(shí)面臨重大挑戰(zhàn),典型問題是大模型長(zhǎng)文本推理時(shí)位置編碼分布的ood(out-of-distribution)。調(diào)研發(fā)現(xiàn):針對(duì)ood問題,通過調(diào)整transformer模型架構(gòu)中的位置編碼模塊可以有效改善。位置編碼是transformer結(jié)構(gòu)中的重要組成部分,對(duì)于增強(qiáng)語(yǔ)言模型的上下文理解能力有重要的價(jià)值。目前,旋轉(zhuǎn)位置編碼(rope)已經(jīng)成為大模型的主流位置編碼方式,也是本發(fā)明方法的理論基礎(chǔ)。rope的表達(dá)形式如下所示,
2、
3、其中,m其在transformer的attention層完成相對(duì)位置信息的嵌入,即r(mθ)q"、r(mθ)k$。rope將高維空間(d維)切分為兩兩一組的二維子空間,高維空間被切分為d/2個(gè)子空間。rope為每個(gè)子空間設(shè)定相互獨(dú)立的旋轉(zhuǎn)頻率,即θ=(θ0,θ1,…,θd/2-1),且隨著子空間維度升高,旋轉(zhuǎn)頻率呈指數(shù)型衰減。
4、rope編碼方式理論上具備長(zhǎng)文本外推特性,但實(shí)際測(cè)試發(fā)現(xiàn):當(dāng)上下文長(zhǎng)度超過訓(xùn)練文本長(zhǎng)度后,使用rope直接外推的方式未能達(dá)到預(yù)期的效果。因此,如何提升大語(yǔ)言模型的長(zhǎng)文本外推能力成為一個(gè)重點(diǎn)研究方向。
5、當(dāng)前,許多基于rope的長(zhǎng)文本外推的研究工作被提出。比如positionalinterpolation和ntk-aware?scaled?rope。之后,三種關(guān)于對(duì)“ntk-aware”改進(jìn)的方法被提出,分別是dynamic?ntk、ntk-by-parts以及yarn。其中,yarn對(duì)ntk-by-parts方法進(jìn)一步優(yōu)化,引入attention?score的調(diào)整因子。目前,yarn是在長(zhǎng)文本外推方面表現(xiàn)最好的一種長(zhǎng)文本外推方式。其中,positional?interpolation方法是對(duì)長(zhǎng)文本序列的絕對(duì)位置索引進(jìn)行線性壓縮,使得超出模型輸入窗口的位置索引被壓縮到窗口長(zhǎng)度以內(nèi),從而避免ood的問題。ntk-series方法(當(dāng)前主流大模型的解決方案)是通過增大rope中的旋轉(zhuǎn)周期,使得模型具有良好的外推能力。除此之外,也有研究者采取隨機(jī)位置編碼的方法,通過在更長(zhǎng)的位置索引序列上進(jìn)行隨機(jī)且有序的間隔采樣,拓寬模型在訓(xùn)練階段對(duì)位置編碼的感知視野。另外,有研究者在調(diào)整rope的旋轉(zhuǎn)周期時(shí),采取了與ntk-series方法截然相反的方式。它通過不斷縮小旋轉(zhuǎn)周期,從而讓高維子空間內(nèi)的位置編碼分布,在有限的訓(xùn)練長(zhǎng)度范圍內(nèi)盡量學(xué)習(xí)更泛的位置編碼分布,并且這種方式在長(zhǎng)文本外推ppl評(píng)測(cè)方面同樣表現(xiàn)不錯(cuò)。然而,這種縮小rope旋轉(zhuǎn)周期的方式,存在比較明顯的弊端,雖然其使得模型在ppl評(píng)測(cè)任務(wù)上表現(xiàn)得到改善,但該方法使得模型的注意力在短距離內(nèi)被衰減,從而導(dǎo)致模型在綜合任務(wù)評(píng)測(cè)上表現(xiàn)變差。
6、綜合分析以上研究,在通過改良位置編碼策略提升大模型的長(zhǎng)文本外推能力方面,當(dāng)前主流的長(zhǎng)文本外推方式,包括positional?interpolation、ntk-series方法,本質(zhì)上都屬于一種內(nèi)插型的長(zhǎng)文本外推方式。這些方式都會(huì)使得相鄰兩個(gè)token之間分布更加緊湊,從而影響模型的注意力機(jī)制。
技術(shù)實(shí)現(xiàn)思路
1、針對(duì)現(xiàn)有技術(shù)的不足,為了避免在模型訓(xùn)練窗口長(zhǎng)度之內(nèi)對(duì)模型的注意力產(chǎn)生影響,本發(fā)明提出一種基于周期延拓的大模型長(zhǎng)文本外推方法。并且據(jù)調(diào)研發(fā)現(xiàn),這是第一個(gè)提出通過外展型的處理方式實(shí)現(xiàn)長(zhǎng)文本外推的技術(shù)。這種方式被稱為基于周期延拓的長(zhǎng)文本外推方法(extra-pe)。
2、本發(fā)明基于大模型的主流位置編碼方式rope,設(shè)計(jì)一種新型的長(zhǎng)文本外推策略,能夠有效提升大模型的長(zhǎng)文本外推能力,解決長(zhǎng)文本外推時(shí)的ood(out-of-distribution)問題。并且,在實(shí)現(xiàn)長(zhǎng)文本外推能力的前提下,同時(shí)保證不破壞大模型訓(xùn)練窗口長(zhǎng)度范圍內(nèi)的注意力,這一點(diǎn)是當(dāng)前已有的長(zhǎng)文本外推方式所不具備的。本發(fā)明的次要技術(shù)是提出一種關(guān)于長(zhǎng)文本外推ood問題的新理論分析視角,如圖1所示。
3、術(shù)語(yǔ)解釋:
4、1.ood:位置編碼的ood問題,即當(dāng)模型推理文本的長(zhǎng)度超出模型訓(xùn)練階段輸入文本的最大長(zhǎng)度時(shí),導(dǎo)致模型對(duì)超出輸入窗口大小的文本進(jìn)行位置編碼時(shí),其位置編碼分布越界的情況。
5、2.ppl:ppl是當(dāng)前評(píng)估大模型處理長(zhǎng)文本能力的通用評(píng)測(cè)方法。隨著輸入文本長(zhǎng)度的增加,模型在ppl上的表現(xiàn)會(huì)逐漸變差(ppl值越來越大),當(dāng)輸入文本長(zhǎng)度超過模型的推理能力范疇時(shí),ppl會(huì)呈現(xiàn)爆炸性的增長(zhǎng)。
6、3.維度子空間:首先,位置編碼是一個(gè)高維向量,因此,其分布空間是一個(gè)高維空間。在rope位置編碼策略中,將該高維空間進(jìn)行切分,每相鄰兩個(gè)維度構(gòu)成一個(gè)二維平面子空間,即維度子空間。將位置編碼向量的低維度構(gòu)建的子空間稱作低維子空間,反之,將高維度構(gòu)建的子空間稱作高維子空間。rope通過對(duì)所有維度子空間設(shè)定不同頻率的旋轉(zhuǎn)速度,增大位置編碼分布的表征空間。
7、4.旋轉(zhuǎn)基數(shù)base:由于rope對(duì)每個(gè)維度子空間設(shè)定了獨(dú)立的旋轉(zhuǎn)頻率,我們稱第i個(gè)子空間內(nèi)的旋轉(zhuǎn)頻率為θi,其取值可以表示為:其中,d代表位置編碼的總維度,base稱為旋轉(zhuǎn)基數(shù),rope將base值設(shè)定為10000。結(jié)合前面綜述,ntk-series方法則是通過增大base值的方式使得模型長(zhǎng)文本外推能力變強(qiáng)。
8、5.transformer架構(gòu):transformer架構(gòu)是一種用于自然語(yǔ)言處理(nlp)和其他序列到序列(sequence-to-sequence)任務(wù)的深度學(xué)習(xí)模型架構(gòu)。架構(gòu)主要由輸入部分、多層編碼器、多層解碼器以及輸出部分組成,編碼器和解碼器的核心組件包括多頭自注意力機(jī)制以及位置編碼。
9、6.rope位置編碼:是一種應(yīng)用于transformer模型中的位置編碼策略,核心思想是將上下文token表示與僅與位置相關(guān)的旋轉(zhuǎn)矩陣相乘,從而將位置信息融入到模型的表示中。這種編碼方式巧妙地結(jié)合了絕對(duì)位置編碼和相對(duì)位置編碼的優(yōu)勢(shì),使得模型在處理長(zhǎng)文本時(shí)能夠保持較好的性能。
10、7.llama模型:llama(large?language?model?family)是由meta?ai發(fā)布的一個(gè)大型預(yù)訓(xùn)練語(yǔ)言模型家族,涵蓋了從7b到65b參數(shù)規(guī)模的多個(gè)模型。它基于transformer架構(gòu),并進(jìn)行了多項(xiàng)改進(jìn),如使用gpt3的預(yù)標(biāo)準(zhǔn)化、swiglu激活函數(shù)替換relu、添加旋轉(zhuǎn)位置嵌入(rope)等。
11、8.chatglm模型:chatglm是由智譜ai公司研發(fā)的一款大型預(yù)訓(xùn)練語(yǔ)言模型,它基于glm(general?language?model)基礎(chǔ)架構(gòu),采用了transformer架構(gòu),并通過大規(guī)模的無監(jiān)督學(xué)習(xí)進(jìn)行優(yōu)化。chatglm專門針對(duì)對(duì)話任務(wù)進(jìn)行了優(yōu)化,在中文處理方面表現(xiàn)出色,能夠更好地適應(yīng)中文語(yǔ)境和習(xí)慣,具備出色的語(yǔ)言理解和生成能力。
12、9.baichuan模型:baichuan是百川智能研發(fā)的大語(yǔ)言模型。它包括多個(gè)不同參數(shù)規(guī)模的版本,如baichuan-7b、baichuan-13b和baichuan-53b等。其中,baichuan-7b和baichuan-13b是開源版本,分別擁有70億和130億參數(shù),它們?cè)谥杏⑽耐ㄓ冒駟?、垂直領(lǐng)域以及跨語(yǔ)言能力上都取得了優(yōu)異的表現(xiàn)。
13、10.qwen模型:qwen是由阿里巴巴集團(tuán)達(dá)摩院開發(fā)的一個(gè)開源大語(yǔ)言模型系列,包括qwen-7b、qwen-14b等多個(gè)版本,分別適用于不同的計(jì)算資源和應(yīng)用場(chǎng)景。qwen模型經(jīng)過廣泛的訓(xùn)練,能夠處理文本生成、問答、對(duì)話、翻譯、文本分類等多種自然語(yǔ)言任務(wù),并具有很強(qiáng)的泛化能力。
14、本發(fā)明的技術(shù)方案為:
15、一種基于周期延拓的大模型長(zhǎng)文本外推方法,適用于基于rope位置編碼的transformer架構(gòu)模型;包括:
16、1)rope策略的適應(yīng)性改造;首先,需要定位transformer架構(gòu)模型源碼中rope編碼策略;其次,使用extra-pe策略更新rope編碼策略;具體取代過程如下:
17、初始化參數(shù),包括rope編碼策略訓(xùn)練窗口的最大長(zhǎng)度、當(dāng)前輸入文本長(zhǎng)度、位置編碼總維度、位置索引序列及旋轉(zhuǎn)頻率序列;
18、定義臨界維度dexrta,其中,base為旋轉(zhuǎn)基數(shù),ltrain是transformer架構(gòu)模型訓(xùn)練過程中的最大輸入文本長(zhǎng)度,linf是transformer架構(gòu)模型推理階段的最大輸入長(zhǎng)度,二者的比值當(dāng)s>1時(shí),則產(chǎn)生長(zhǎng)文本外推問題;
19、判斷transformer架構(gòu)模型當(dāng)前輸入文本長(zhǎng)度是否大于transformer架構(gòu)模型訓(xùn)練時(shí)文本窗口最大長(zhǎng)度:如果transformer架構(gòu)模型當(dāng)前輸入文本長(zhǎng)度大于訓(xùn)練時(shí)文本窗口最大長(zhǎng)度,則對(duì)rope策略進(jìn)行適應(yīng)性改造;否則,不改變transformer架構(gòu)模型原有的位置編碼策略,進(jìn)行直接外推;
20、根據(jù)公式計(jì)算得到臨界維度dextra,判斷臨界維度dextra和總維度dim、1之間的大小關(guān)系,當(dāng)dextra不小于dim時(shí),則進(jìn)行直接外推;當(dāng)dextra<=1,則對(duì)所有維度編碼進(jìn)行全量周期延拓;當(dāng)1<dextra<dim,則采取高維周期延拓,低維直接外推的策略,具體如下:
21、當(dāng)位置編碼的維度d>dextra時(shí),則認(rèn)為該維度子空間內(nèi)的位置編碼分布是不完整的,此時(shí),通過一種非內(nèi)插型的長(zhǎng)文本外推方法,即基于周期延拓的方法;通過對(duì)高維子空間內(nèi)周期不完整的位置編碼分布進(jìn)行周期性的延拓;否則,則認(rèn)為該維度子空間內(nèi)的位置編碼分布是完整的,不需要對(duì)其位置編碼進(jìn)行改造處理。
22、2)對(duì)transformer架構(gòu)模型進(jìn)行微調(diào)訓(xùn)練;
23、3)通過訓(xùn)練后的transformer架構(gòu)模型進(jìn)行推理。
24、根據(jù)本發(fā)明優(yōu)選的,對(duì)transformer架構(gòu)模型進(jìn)行微調(diào)訓(xùn)練;包括:
25、準(zhǔn)備長(zhǎng)文本數(shù)據(jù)集;長(zhǎng)文本數(shù)據(jù)集中的長(zhǎng)文本的長(zhǎng)度為transformer架構(gòu)模型訓(xùn)練時(shí)文本長(zhǎng)度的3-4倍;
26、全量微調(diào);使用準(zhǔn)備好的長(zhǎng)文本數(shù)據(jù)集對(duì)transformer架構(gòu)模型進(jìn)行全量微調(diào)。根據(jù)本發(fā)明優(yōu)選的,通過訓(xùn)練后的transformer架構(gòu)模型進(jìn)行推理;包括:
27、推理過程的rope改造;包括調(diào)整推理代碼中的位置編碼部分;
28、長(zhǎng)文本推理測(cè)試;使用長(zhǎng)文本數(shù)據(jù)集進(jìn)行推理測(cè)試。
29、根據(jù)本發(fā)明優(yōu)選的,通過對(duì)高維子空間內(nèi)周期不完整的位置編碼分布進(jìn)行周期性的延拓;是指:通過extra-pe的公式,對(duì)rope的位置索引序列和旋轉(zhuǎn)頻率序列進(jìn)行改造更新,完成位置編碼的適應(yīng)性改造過程;
30、以一個(gè)高維子空間i為研究對(duì)象,對(duì)需要進(jìn)行周期延拓的位置編碼,定義延拓周期為textra;定義transformer架構(gòu)模型訓(xùn)練階段的最大文本長(zhǎng)度為ltrain,當(dāng)前輸入文本的長(zhǎng)度為current_seq_len,子空間i的旋轉(zhuǎn)頻率為θi,在位置m處的旋轉(zhuǎn)變換表示為:r(mθi),更新后的旋轉(zhuǎn)變化表示為:r′(mθi);extra-pe的公式表示:
31、textra=ltrainθi???????????????????????????????(2)
32、
33、其中,mod為取模計(jì)算,為對(duì)進(jìn)行向下取整。通過extra-pe的公式,即對(duì)高維子空間i的位置編碼實(shí)現(xiàn)周期延拓的改造。
34、根據(jù)本發(fā)明優(yōu)選的,本發(fā)明方法具備高度的普適性,可廣泛應(yīng)用于所有基于rope位置編碼的transformer架構(gòu)模型。transformer架構(gòu)模型包括llama、chatglm、baichuan、qwen等當(dāng)前主流且廣泛使用的開源模型。因此,在選擇模型時(shí),具有極大的靈活性和多樣性,可根據(jù)具體應(yīng)用場(chǎng)景和需求,選擇最適合的基礎(chǔ)模型。
35、一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器和處理器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)基于周期延拓的大模型長(zhǎng)文本外推方法的步驟。
36、一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)基于周期延拓的大模型長(zhǎng)文本外推方法的步驟。
37、一種基于周期延拓的大模型長(zhǎng)文本外推系統(tǒng),包括:
38、rope策略的適應(yīng)性改造模塊,被配置為:首先,需要定位transformer架構(gòu)模型源碼中rope編碼策略;其次,使用extra-pe策略更新rope編碼策略;具體取代過程如下:
39、初始化參數(shù),包括rope編碼策略訓(xùn)練窗口的最大長(zhǎng)度、當(dāng)前輸入文本長(zhǎng)度、位置編碼總維度、位置索引序列及旋轉(zhuǎn)頻率序列;
40、定義臨界維度dextra,其中,base為旋轉(zhuǎn)基數(shù),ltrain是transformer架構(gòu)模型訓(xùn)練過程中的最大輸入文本長(zhǎng)度,linf是transformer架構(gòu)模型推理階段的最大輸入長(zhǎng)度,二者的比值當(dāng)s>1時(shí),則產(chǎn)生長(zhǎng)文本外推問題;
41、判斷transformer架構(gòu)模型當(dāng)前輸入文本長(zhǎng)度是否大于transformer架構(gòu)模型訓(xùn)練時(shí)文本窗口最大長(zhǎng)度:如果transformer架構(gòu)模型當(dāng)前輸入文本長(zhǎng)度大于訓(xùn)練時(shí)文本窗口最大長(zhǎng)度,則對(duì)rope策略進(jìn)行適應(yīng)性改造;否則,不改變transformer架構(gòu)模型原有的位置編碼策略,進(jìn)行直接外推;
42、根據(jù)公式計(jì)算得到臨界維度dextra,判斷臨界維度dextra和總維度dim、1之間的大小關(guān)系,當(dāng)dextra不小于dim時(shí),則進(jìn)行直接外推;當(dāng)dextra<=1,則對(duì)所有維度編碼進(jìn)行全量周期延拓;當(dāng)1<dextra<dim,則采取高維周期延拓,低維直接外推的策略,具體如下:
43、當(dāng)位置編碼的維度d>dextra時(shí),則認(rèn)為該維度子空間內(nèi)的位置編碼分布是不完整的,此時(shí),通過一種非內(nèi)插型的長(zhǎng)文本外推方法,即基于周期延拓的方法;通過對(duì)高維子空間內(nèi)周期不完整的位置編碼分布進(jìn)行周期性的延拓;否則,則認(rèn)為該維度子空間內(nèi)的位置編碼分布是完整的,不需要對(duì)其位置編碼進(jìn)行改造處理;
44、微調(diào)訓(xùn)練模塊,被配置為:對(duì)transformer架構(gòu)模型進(jìn)行微調(diào)訓(xùn)練;
45、推理模塊,被配置為:通過訓(xùn)練后的transformer架構(gòu)模型進(jìn)行推理。
46、本發(fā)明的有益效果為:
47、1、本發(fā)明方法采取與之前的大模型長(zhǎng)文本外推方法完全不同的思路,通過收斂高維子空間內(nèi)的位置編碼分布域?qū)崿F(xiàn)大模型的長(zhǎng)文本外推能力。
48、2、本發(fā)明方法的訓(xùn)練時(shí)間成本更低,實(shí)驗(yàn)研究發(fā)現(xiàn)本發(fā)明方法只需要微調(diào)100步就可以達(dá)到明顯的長(zhǎng)文本外推效果。
49、3、本發(fā)明方法能夠保證不破壞模型在訓(xùn)練長(zhǎng)度窗口內(nèi)的注意力分布,這是目前已有的長(zhǎng)文本外推方法不具備的。