4k窗口長度就能讀長文,陳丹琦高徒聯(lián)手Meta推出大模型記憶力增強新方法
只有4k窗口長度的大模型,也能閱讀大段文本了!
普林斯頓的華人博士生的一項最新成果,成功“突破”了大模型窗口長度的限制。
不僅能回答各種問題,而且整個實現(xiàn)的過程全靠prompt就能完成,不需要任何的額外訓(xùn)練。
研究團隊創(chuàng)建了一種名為MemWalker的樹形記憶策略,可以突破模型本身的窗口長度限制。
測試過程中,模型閱讀的最長文本包含了1.2萬+token,成績相比LongChat大幅提高。
相比于相似的TreeIndex,MemWalker可以進行推理并回答任何問題,而不是只做概括。
MemWalker的研發(fā)利用到了“分而治之”的思想,就此有網(wǎng)友這樣評論:
每次我們讓大模型的思考過程更像人類,它們的表現(xiàn)就會越好
那么,具體什么是樹形記憶策略,又是如何用有限的窗口長度閱讀長文本的呢?
一個窗口不夠,就多開幾個
模型上,MemWalker使用Stable Beluga 2作為基本模型,它是Llama 2-70B經(jīng)過指令調(diào)優(yōu)得到的。
在選擇該模型之前,開發(fā)者對比了其與原始Llama 2的表現(xiàn),并最終確定選用。
就像MemWalker這個名字一樣,它的工作過程就像記憶流在行走。
具體來看,大致分為記憶樹構(gòu)建和導(dǎo)航檢索兩個階段。
構(gòu)建記憶樹時,長文本會被分割成多個小段(seg1-6),并由大模型分別針對每一段做出總結(jié),得到“葉子節(jié)點”(leaf nodes,summ1-6)。
分割時,每段的長度越長,層級就會越少,有利于后續(xù)檢索,但其本身過長又會導(dǎo)致準確度下降,因此需要綜合考慮確定每段長度。
作者認為,每一段合理的長度是500-2000token,而實驗中使用的為1000token。
然后,模型遞歸地對這些葉子節(jié)點的內(nèi)容再次進行總結(jié),形成“非葉節(jié)點”(non-leaf nodes,summ7-8)。
二者的另一個區(qū)別是,葉子節(jié)點包含了原始信息,非葉節(jié)點只有概括得到的二級信息。
作用上,非葉節(jié)點用于導(dǎo)航定位答案所在的葉子節(jié)點,而葉子節(jié)點則用于推理出答案。
其中的非葉節(jié)點可以有多個層級,模型逐步進行總結(jié)概括,直到得到“根節(jié)點”,形成完整的樹形結(jié)構(gòu)。
記憶樹建立完畢后,就可以進入導(dǎo)航檢索階段來生成答案了。
這一過程中,模型從根節(jié)點開始,逐一讀取下一級子節(jié)點的內(nèi)容,然后推理出應(yīng)該進入這個節(jié)點還是返回。
決定進入這個節(jié)點之后,再次重復(fù)這樣的過程,直到讀取到葉節(jié)點。如果葉節(jié)點的內(nèi)容合適則生成答案,否則返回。
為了確保答案的完整性,這個過程的結(jié)束條件并非發(fā)現(xiàn)了一個合適的葉節(jié)點,而是模型認為得到了完整答案,或者達到最大步數(shù)。
導(dǎo)航過程中,如果模型發(fā)現(xiàn)進入了錯誤的路徑,還可以導(dǎo)航回退。
此外,MemWalker中還引入了工作記憶機制來來提高準確度。
該機制會將已經(jīng)訪問過的節(jié)點內(nèi)容加入到當(dāng)前內(nèi)容的上下文中。
當(dāng)模型進入一個新節(jié)點時,當(dāng)前節(jié)點內(nèi)容都會被加入到記憶中。
這一機制讓模型在每一步都可以利用訪問過的節(jié)點內(nèi)容,避免重要信息的丟失。
實驗結(jié)果顯示,工作記憶機制可以將MemWalker的準確率提升10%左右。
而且,上面所說的過程只依靠prompt就能完成,不需要進行額外的訓(xùn)練。
理論上,只要有足夠的算力,MemWalker可以閱讀無限長的文本。
不過,記憶樹構(gòu)建時的時間和空間復(fù)雜度隨著文本長度的增長是呈指數(shù)型的。
作者簡介
論文第一作者是普林斯頓大學(xué)NLP實驗室華人博士生Howard Chen。
清華姚班校友陳丹琦是Howard的導(dǎo)師,她今年在ACL上的學(xué)術(shù)報告也與搜索有關(guān)。
這項成果是Howard在Meta實習(xí)期間完成的,Meta AI實驗室的Ramakanth Pasunuru,Jason Weston和Asli Celikyilmaz三位學(xué)者也參與了本項目。