簡介
簡介章節(jié)講的是比較基礎(chǔ)的,主要介紹了本次要介紹的概念,即檢索(Retrieval)和大語言模型(LLM):
簡單的說,其實(shí)就是通過檢索的模式,為大語言模型的生成提供幫助,從而使之生成更符合要求的結(jié)果,聽起來,其實(shí)就和最近比較火的另一個概念——檢索增強(qiáng)生成(RAG,retrieval augment generation),在我的理解下,就是一件事。
眾所周知,LLM其實(shí)已經(jīng)在很多領(lǐng)域和問題下都取得了很好的效果,那為何還需要依賴檢索做進(jìn)一步優(yōu)化,在本文看來,主要有5個原因:
LLM無法記住所有知識,尤其是長尾的。受限于訓(xùn)練數(shù)據(jù)、現(xiàn)有的學(xué)習(xí)方式,對長尾知識的接受能力并不是很高。
LLM的知識容易過時,而且不好更新。只是通過微調(diào),模型的接受能力其實(shí)并不高而且很慢,甚至有丟失原有知識的風(fēng)險。
LLM的輸出難以解釋和驗(yàn)證。一方面最終的輸出的內(nèi)容黑盒且不可控,另一方面最終的結(jié)果輸出可能會受到幻覺之類的問題的干擾。
LLM容易泄露隱私訓(xùn)練數(shù)據(jù)。用用戶個人信息訓(xùn)練模型,會讓模型可以通過誘導(dǎo)泄露用戶的隱私。
LLM的規(guī)模大,訓(xùn)練和運(yùn)行的成本都很大。
而上面的問題,都可以通過數(shù)據(jù)庫檢索快速解決:
數(shù)據(jù)庫對數(shù)據(jù)的存儲和更新是穩(wěn)定的,不像模型會存在學(xué)不會的風(fēng)險。
數(shù)據(jù)庫的數(shù)據(jù)更新可以做得很敏捷,增刪改查可解釋,而且對原有的知識不會有影響。
數(shù)據(jù)庫的內(nèi)容是明確、結(jié)構(gòu)化的,加上模型本身的理解能力,一般而言數(shù)據(jù)庫中的內(nèi)容以及檢索算法不出錯,大模型的輸出出錯的可能就大大降低。
知識庫中存儲用戶數(shù)據(jù),為用戶隱私數(shù)據(jù)的管控帶來很大的便利,而且可控、穩(wěn)定、準(zhǔn)確。
數(shù)據(jù)庫維護(hù)起來,可以降低大模型的訓(xùn)練成本,畢竟新知識存儲在數(shù)據(jù)庫即可,不用頻繁更新模型,尤其是不用因?yàn)橹R的更新而訓(xùn)練模型。
問題定義
首先,按照文章的定義:
A language model (LM) that uses an external datastore at test time。
關(guān)鍵詞兩個:語言模型和數(shù)據(jù)庫。
語言模型這塊,我們其實(shí)都熟悉了,早些年以bert代表的模型,到現(xiàn)在被大量采用的大模型,其實(shí)結(jié)構(gòu)都具有很大的相似性,而且已經(jīng)相對成熟,模型結(jié)構(gòu)這事就不贅述了。更為重要的是,prompt受到關(guān)注的這件事,在現(xiàn)在的視角看來是非常關(guān)鍵的發(fā)現(xiàn),prompt能讓大模型能完成更多任務(wù),通過引導(dǎo)能讓模型解決不同的問題,同時,效果還是不錯,在現(xiàn)在的應(yīng)用下,prompt精調(diào)已經(jīng)成為了經(jīng)濟(jì)高效的調(diào)優(yōu)手段了。
至于數(shù)據(jù)庫,配合大模型,構(gòu)造成如下的推理結(jié)構(gòu):
datastore是數(shù)據(jù)源,構(gòu)造成索引后,可以接受query進(jìn)行檢索,檢索結(jié)果和大模型配合,就能輸出結(jié)果。
架構(gòu)
此時,就出現(xiàn)一個問題,大模型和檢索查詢之間的關(guān)系是什么,拆解下來,就是這幾個問題:
查什么:query如何構(gòu)造以及檢索的。
如何使用查詢:查詢結(jié)果出來后如何跟大模型協(xié)同。
何時查:什么時候觸發(fā)查詢,或者換個說法,如何構(gòu)造查詢query。
section3中,通過論文講解的方式,討論了多篇論文在解決上述3個問題下的解決方案,并且討論了他們的優(yōu)缺點(diǎn)。
這里總結(jié)一些關(guān)鍵要點(diǎn)給大家,讓大家理解這些檢索策略的不一樣會有什么優(yōu)缺點(diǎn):
檢索不一定檢索一次,可以切句,例如機(jī)械地n個token地切后查詢,會比只查一次要強(qiáng)一些。
RETRO中構(gòu)造了臨時層對檢索結(jié)果進(jìn)行解析,提升檢索結(jié)果的理解和使用能力,但這也意味著這些層需要進(jìn)行訓(xùn)練后才可使用,訓(xùn)練成本是增加的。
KNN-LM在檢索上,從詞降級為token,能對低頻或域外(out of domain)數(shù)據(jù)有很好的支持,但存儲空間會變大很多,同時該方法缺少輸入和檢索結(jié)果的交互信息。
后續(xù)的FLARE和Adaptive-LM采用了自適應(yīng)檢索的方式,能提升檢索的效率,但當(dāng)然與之對應(yīng)的檢索策略并不一定是最優(yōu)的(誤差疊加)。
Entities as Experts直接檢索實(shí)體,能提升效率,但這個位置是需要額外的實(shí)體識別的。
訓(xùn)練
在LLM-Retrieval的框架下,訓(xùn)練除了為了更好地讓LLM做好推理預(yù)測,還需要盡可能讓LLM和檢索模塊協(xié)同,而顯然,同時訓(xùn)練LLM和檢索模塊的模型,無疑是成本巨大的,就這個背景,文章總結(jié)了4種LLM和檢索模塊的更新策略。(注意,此處我把training翻譯為更新)
首先是獨(dú)立更新(Independent training),即兩者各自更新,互不影響。這個應(yīng)該是目前我看到最常見的一種方式了。
優(yōu)點(diǎn):對頻繁更新的索引,大模型不需要頻繁更新,甚至不需要更新;每個模塊可以獨(dú)立優(yōu)化。
缺點(diǎn):大模型和檢索模型兩者之間并無協(xié)同。
然后是依次訓(xùn)練(Sequential training),即訓(xùn)練其中一個的時候,另一個固定,等此模塊訓(xùn)練完訓(xùn)練完以后再訓(xùn)另一個。
優(yōu)點(diǎn):和獨(dú)立更新有相似點(diǎn),大模型不需要頻繁更新,甚至不需要更新;不同的是,大模型可以進(jìn)行適配檢索模塊的訓(xùn)練,反之亦然。
缺點(diǎn):因?yàn)槭且来斡?xùn)練,所以在訓(xùn)練其中一個時,另一個是固定的,不能做到比較徹底的協(xié)同,而且大模型更新的頻率不見得跟得上索引庫的更新,如果緊跟,成本會變高。
第三種是異步索引更新下的聯(lián)合訓(xùn)練,即允許索引過時,定期更新即可。這種方式的難點(diǎn)是需要權(quán)衡,索引更新的頻率是多少,太多了則訓(xùn)練成本昂貴,太少了則索引過時,導(dǎo)致有些問題會出錯。
第四種也是聯(lián)合訓(xùn)練,但考慮到更新索引的頻次問題,所以索引通過批次的方式來更新,當(dāng)然了,這種方式的同樣會帶來成本的問題,無論是訓(xùn)練階段,還是索引更新階段。
總結(jié)一下,有關(guān)訓(xùn)練階段,兩者協(xié)同,有如下優(yōu)缺點(diǎn)。
應(yīng)用
應(yīng)用這塊,通過這幾個月我們的深入使用,大模型給了我們很多的使用空間,到了LLM+檢索的場景,我們需要知道的是有哪些優(yōu)勢場景,在本文中,作者總結(jié)了如下使用場景:
第一行3個任務(wù)主要優(yōu)勢表現(xiàn)在知識密集型的任務(wù)中,中間和下面的6個則是比較經(jīng)典的NLP任務(wù)了,中間3個偏向生成,后面3個傾向于分類,此時,我們需要回答兩個問題:
如何把LLM+檢索這個模式應(yīng)用在這些任務(wù)中?
使用LLM+檢索這個模式的時機(jī)是什么?
首先是第一個問題,如何應(yīng)用,這里給出了3種使用方法,分別是微調(diào)、強(qiáng)化學(xué)習(xí)和prompt。我們?nèi)粘J褂玫母嗟目赡苁莗rompt,但是從一些實(shí)戰(zhàn)經(jīng)驗(yàn)上,可能還有別的模式可能能讓模型更好地利用。
微調(diào)方面,只要把整個流程串起來其實(shí)就能發(fā)現(xiàn),是完全可行的,ATLAS這篇論文比較典型,再處理知識庫的更新上選擇了相對獨(dú)立的策略,從實(shí)驗(yàn)來看,效果還是不錯的,作者的評價是這樣的:
微調(diào)能為知識密集型任務(wù)提供很大的提升。
對檢索庫本身的微調(diào)也十分重要。
而強(qiáng)化學(xué)習(xí),也算是最近比較熱門的研究方向了,RLHF能把全流程串起來,有人工的評價能為結(jié)果帶來更多的提升,作者用的是“alignment”,是對齊用戶的偏好,然而實(shí)際上,這種人工的數(shù)據(jù)其實(shí)還是比較難獲得并使用的。
在prompt這塊,作者首先提出一個問題:“What if we cannot train LMs for downstream tasks?”,這個問題很現(xiàn)實(shí),因?yàn)楹芏嘣颍覀兛赡軟]法訓(xùn)練模型,只能用開源的或者是固定通用的模型(心法利器[102] | 大模型落地應(yīng)用架構(gòu)的一種模式),此時,prompt就是一個非常好用的方案了。從結(jié)果層面顯示,這種方案可以說是非?!癳ffective”,同時作者還提及不用訓(xùn)練和并不差的效果(用的strong),但缺點(diǎn)也比較明顯,可控性還是不夠,相比微調(diào)的效果還是要差點(diǎn)。
然后,下一個問題,就是使用檢索這個模式的時機(jī)了。說到時機(jī),其實(shí)回歸到前面所提到的原因就知道了,即長尾知識、知識過時、內(nèi)容難驗(yàn)證、隱私問題和訓(xùn)練成本問題,經(jīng)過作者的整理,從使用檢索的原因,轉(zhuǎn)為提及檢索這個模式的優(yōu)勢,則是6點(diǎn):長尾知識、知識更新能力、內(nèi)容可驗(yàn)證性、參數(shù)效率、隱私以及域外知識的適配性(可遷移性)。
多模態(tài)
多模態(tài)是讓自然語言處理超越文字本身的窗口了,知識的形式是豐富多樣的,可以是文章、圖譜、圖片、視頻、音頻等,如果能把多種信息進(jìn)行解析,那對知識的支撐能力無疑是新的提升(畢竟不是所有信息都通過文字傳播),在這章,更多是給了很多知識應(yīng)用的思路,論文還不少,此處不贅述,大家可以去PPT里面錢問題記得網(wǎng)站上面找參考文獻(xiàn)。
挑戰(zhàn)和展望
總算到了挑戰(zhàn)和展望,本章在總結(jié)前文的基礎(chǔ)上,提出了很多新的問題,研究者們可以參考作為新的研究方向。
首先是基于檢索的LLM的規(guī)模,第一個問題是小模型+大數(shù)據(jù)庫,是否能約等于一個大模型,
小模型+大數(shù)據(jù)庫,是否能約等于一個大模型?兩者在規(guī)模上的關(guān)系是什么樣的。
兩者的縮放規(guī)則是什么樣的,當(dāng)知識庫能支撐知識層面的需求后,語言模型的參數(shù)量、token量對結(jié)果有什么影響。
檢索效率問題,一個是速度,另一個是空間。
第二個問題是,需要探索其應(yīng)用。
開放式文本生成下,基于檢索的大模型在蘊(yùn)含和推理能力上還有局限性,畢竟光靠相似度的檢索不太夠,同時知識庫大了以后,面對相似但是困難的知識點(diǎn)也會對推理造成干擾。
對于復(fù)雜的推理任務(wù),有沒有更好的潛在方案可探索,例如多次檢索、query改寫等策略。
再然后,是一些開放的問題:
基于檢索的LLMs下最優(yōu)的結(jié)構(gòu)和訓(xùn)練策略是什么樣的。
對模型的規(guī)模,我們無法比較好地去拓展和提升,尤其在具有檢索能力支持的情況下。
下游任務(wù)上,需要更多更好的解碼、推理等方案,甚至是自適應(yīng)的。
小結(jié)
這篇文章寫了挺久的,可以說是大開眼界吧,里面的論文看了不少,收獲還是挺大的,讓我知道有關(guān)檢索-LLM這個模式下有那么多前人嘗試過的玩法,后面有些我應(yīng)該也會去嘗試,看看提升如何。
審核編輯:劉清
-
語言模型
+關(guān)注
關(guān)注
0文章
561瀏覽量
10733 -
LLM
+關(guān)注
關(guān)注
1文章
323瀏覽量
768
原文標(biāo)題:ACL23 | 基于檢索的大語言模型-陳丹琦報告閱讀
文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
大語言模型的解碼策略與關(guān)鍵優(yōu)化總結(jié)

評論