Facebook開源檢索增強(qiáng)型語言模型,最擅長(zhǎng)處理知識(shí)密集型任務(wù)
本文轉(zhuǎn)自雷鋒網(wǎng),如需轉(zhuǎn)載請(qǐng)至雷鋒網(wǎng)官網(wǎng)申請(qǐng)授權(quán)。
無專業(yè)背景知識(shí),也可以寫出專業(yè)文案。
這就是NLP可以輔助人類做的事,它通過預(yù)訓(xùn)練模型查找相關(guān)內(nèi)容,并解釋上下文來完成一系列文本任務(wù)。
目前,諸如GPT-3等通用NLP模型已經(jīng)在文本生成領(lǐng)域展現(xiàn)出強(qiáng)大的性能,它表明預(yù)訓(xùn)練模型可以在參數(shù)中儲(chǔ)備大量知識(shí),在執(zhí)行特定任務(wù)時(shí),只需調(diào)用和微調(diào)即可得到SOTA結(jié)果。
但這款被稱為“暴力美學(xué)”的超大模型,以及普遍的通用NLP,在預(yù)訓(xùn)練成本、處理知識(shí)密集型(Knowledge-Intensive Tasks,)任務(wù)等方面仍然存在一定的局限性。
對(duì)此,F(xiàn)acebook提出了一種檢索增強(qiáng)生成(Retrieval-Augmented Generation,RAG)模型的解決方法。
這篇名為《檢索增強(qiáng)生成處理知識(shí)密集型NLP任務(wù)》的論文表明,RAG預(yù)訓(xùn)練模型在微調(diào)下游任務(wù)時(shí),同樣可以達(dá)到最佳結(jié)果。
不同的是,與其他如預(yù)訓(xùn)練模型相比,它可以對(duì)內(nèi)部知識(shí)進(jìn)行隨時(shí)補(bǔ)充和調(diào)整,無需浪費(fèi)時(shí)間或因計(jì)算能力重新訓(xùn)練整個(gè)模型。
檢索增強(qiáng)型語言模型,更高效、更靈活
檢索增強(qiáng)生成(RAG)架構(gòu),是一個(gè)端到端的可微模型,主要由問題編碼器、神經(jīng)檢索器、生成器模型三個(gè)部分構(gòu)成。
其中生成器采用的是Seq2Seq模型,神經(jīng)檢索器訪問的是維基百科密集向量索引,二者通過結(jié)合預(yù)訓(xùn)練的參數(shù)存儲(chǔ)(Parametric Memory)與非參數(shù)存儲(chǔ)(Nonparametric Memory)來生成語言。
采用標(biāo)準(zhǔn)Seq2Seq模型,意味著RAG無需考慮序列長(zhǎng)度和順序,每個(gè)輸入對(duì)應(yīng)一個(gè)輸出序列,但不同的是,RAG不會(huì)直接將輸入結(jié)果直接傳遞給生成器,而是使用輸入來檢索一組相關(guān)文檔,這也讓RAG在性能比傳統(tǒng)Seq2Seq模型有所提升。
舉個(gè)例子,在以下問題編碼器中,輸入“第一個(gè)哺乳動(dòng)物是什么時(shí)候出現(xiàn)在地球上?”
RAG會(huì)先從Wikipedia之類的數(shù)據(jù)庫中檢索一組相關(guān)文檔。如與“哺乳動(dòng)物”,“地球歷史”和“哺乳動(dòng)物進(jìn)化”相關(guān)的內(nèi)容,然后將這些內(nèi)容作為上下文與輸入串聯(lián)起來,一起饋入到模型以產(chǎn)生最終的輸出文本。
因此,RAG具有兩種知識(shí)來源。一是seq2seq模型存儲(chǔ)在其參數(shù)中的知識(shí),即參數(shù)存儲(chǔ);二是檢索語料庫中存儲(chǔ)的知識(shí),也就是非參數(shù)存儲(chǔ)。
這種兩種知識(shí)來源是相輔相成的。Facebook在博客中表明,
RAG使用非參數(shù)內(nèi)存來“提示” Seq2Seq模型生成正確的響應(yīng),這種方式相當(dāng)于將“僅參數(shù)存儲(chǔ)”方法的靈活性與“基于檢索”方法的性能結(jié)合在了一起。
RAG采用后期融合(Late Fusion)的形式來整合所有檢索到的文檔中的知識(shí),這意味著它會(huì)根據(jù)文檔內(nèi)容提前進(jìn)行答案預(yù)測(cè),然后再匯總最終的預(yù)測(cè)結(jié)果。這種后期融合的形式可以讓輸出中的錯(cuò)誤信號(hào)反向傳播到檢索機(jī)制中,這可以大大提高端到端系統(tǒng)的性能。
另外,F(xiàn)acebook研究團(tuán)隊(duì)表示,RAG最大的一個(gè)優(yōu)勢(shì)在于它的靈活性。更改預(yù)先訓(xùn)練的語言模型所知道的內(nèi)容需要使用新文檔對(duì)整個(gè)模型進(jìn)行重新訓(xùn)練,而這對(duì)于RAG而言,只需交換掉用于知識(shí)檢索的文檔即可,相比較而言,它更快速且高效。
基于精準(zhǔn)的文檔輸入,參數(shù)存儲(chǔ)與非參數(shù)存儲(chǔ)結(jié)合的方法,RAG在文本生成方面表現(xiàn)出了很高的性能,在某些情況下,它甚至可以自己生成答案,而這些答案不包含在任何檢索到的文檔中。
開放域問答測(cè)試,擅長(zhǎng)知識(shí)密集型任務(wù)
論文中,研究人員在NaturalQuestions(NQ),CuratedTrec(CT),TriviaQA
(TQA)以及WebQuestions(WQ)四個(gè)開放域問答(Open-QA)中,對(duì)RAG的性能進(jìn)行了基準(zhǔn)測(cè)試。Open-QA是用于知識(shí)密集任務(wù)測(cè)試的常用應(yīng)用程序。
在標(biāo)準(zhǔn)問答任務(wù)中,諸如“等邊三角形一角是多少度“之類的問題,模型只需從輸入的文檔找查找答案即可,但Open-QA并不會(huì)提供特定文檔,需要模型自主查找知識(shí)。由此,Open-QA是檢測(cè)RAG性能非常好的工具。
論文中,研究人員采用了Jeopardy的問題形式,它是一種精確的、事實(shí)性的陳述,如“世界杯”,Jeopardy問題的回答是“1986年墨西哥成為第一個(gè)舉辦世界杯的國(guó)家”。
結(jié)果顯示,RAG在知識(shí)密集型自然語言問題上表現(xiàn)出色,與其他模型相比,RAG產(chǎn)生的Jeopardy問題更為具體,多樣且真實(shí),這可能是由于RAG能夠使用從多個(gè)來源獲取的不同信息合成響應(yīng)的能力有關(guān)。
Closed-Book代表“僅參數(shù)化”,Open-Book代表“檢索方法”
如圖,RAG結(jié)合僅參數(shù)化和基于檢索方法,在各個(gè)Open-QA中,其性能非常顯著。另外,與REALM和T5+SSM不同的是,RAG無需高成本的“Salient Span Masking”預(yù)培訓(xùn),只依靠現(xiàn)成的組件就可以獲得如此效果。
Facebook在博客中也表明,RAG可以幫助研究人員快速開發(fā)和部署,以解決知識(shí)密集型任務(wù)。他們表示,未來對(duì)知識(shí)密集型任務(wù)的處理將是NLP主要的研究方向之一,而RAG通過引入檢索的方法,“允許NLP模型繞過再培訓(xùn)步驟,直接訪問和提取最新信息,最后使用生成器輸出結(jié)果”的方式表現(xiàn)出了良好的性能。
目前,這項(xiàng)研究已經(jīng)在Github開源,感興趣的朋友的來體驗(yàn)一下~
Github地址:https://github.com/huggingface/transformers/blob/master/model_cards/facebook/rag-token-nq/README.md
Wikipedia 語料庫:https://archive.org/details/wikimediadownloads
論文地址:https://arxiv.org/pdf/2005.11401.pdf