教會(huì)計(jì)算機(jī)理解人類(lèi)如何寫(xiě)作、說(shuō)話(huà),即所謂的自然語(yǔ)言處理(Natural Language Processing,NLP),這是人工智能研究領(lǐng)域最古老的挑戰(zhàn)之一。然而,過(guò)去兩年,方法出現(xiàn)了明顯的變化。過(guò)去,研究主要集中在為特定任務(wù)開(kāi)發(fā)特定框架,而今天強(qiáng)大的通用語(yǔ)言模型已經(jīng)可以針對(duì)各種各樣的不同任務(wù)進(jìn)行微調(diào)。雖然前景看好,但這方面的努力都已經(jīng)將這些通用模型應(yīng)用于人類(lèi)無(wú)需額外補(bǔ)充背景知識(shí)就能產(chǎn)生解決方案的任務(wù)(如情感分析)。
構(gòu)建一個(gè)研究和情境化的模型更具挑戰(zhàn)性,但它對(duì)未來(lái)的進(jìn)步至關(guān)重要。最近,我們?cè)谶@個(gè)領(lǐng)域取得了實(shí)質(zhì)性的進(jìn)展,我們的RAG(RetrievalAugmentedGeneration,檢索增強(qiáng)生成)架構(gòu)是一個(gè)端到端的可差異化模型,它結(jié)合了信息檢索組件(Facebook AI的基于稠密段落檢索系統(tǒng)(dense-passage retrieval system)和seq2seq生成器(Facebook的BART模型(Bidirectional and Auto-Regressive Transformers,雙向和自回歸Transformer))。與最大的預(yù)訓(xùn)練seq2seq語(yǔ)言模型相比,RAG可以在知識(shí)密集型下游任務(wù)上進(jìn)行微調(diào),達(dá)到最優(yōu)結(jié)果。而且與這些預(yù)訓(xùn)練模型不同,RAG的內(nèi)部知識(shí)可以輕松地隨時(shí)更改或補(bǔ)充,從而使研究人員和工程師控制RAG所知道的內(nèi)容,而不會(huì)浪費(fèi)時(shí)間或算力來(lái)重新訓(xùn)練整個(gè)模型。
結(jié)合開(kāi)卷和閉卷的優(yōu)勢(shì)
RAG的外觀和行為類(lèi)似于標(biāo)準(zhǔn)的seq2seg模型,這意味著它接受一個(gè)序列并輸出相應(yīng)的序列。不過(guò),還有一個(gè)中間步驟,它將RAG與通常的seq2seq方法區(qū)別開(kāi)來(lái)并提升。RAG不是直接將輸入傳遞給生成器,而是使用輸入檢索一組相關(guān)文檔,在我們的例子中,是從維基百科(Wikipedia)檢索的。
例如,給出提示“地球上第一個(gè)哺乳動(dòng)物是什么時(shí)候出現(xiàn)的?”,RAG可能會(huì)提供“哺乳動(dòng)物”、“地球歷史”和“哺乳動(dòng)物進(jìn)化”的文檔。然后,將這些支持文檔與原始輸入作為上下文連接起來(lái),并提供給生成實(shí)際輸出的seq2seq模型。因此,RAG有兩個(gè)知識(shí)來(lái)源:seq2seq模型在其參數(shù)中存儲(chǔ)的知識(shí)(參數(shù)記憶)和存儲(chǔ)在RAG段落檢索語(yǔ)料庫(kù)中的知識(shí)(非參數(shù)記憶)。
這兩個(gè)來(lái)源相輔相成。我們發(fā)現(xiàn),RAG使用其非參數(shù)記憶來(lái)“提示”seq2seq模型產(chǎn)生正確的響應(yīng),本質(zhì)上結(jié)合了“閉卷”或純參數(shù)方法的靈活性與“開(kāi)卷”或基于檢索的方法性能。RAG使用一種后期融合的形式集成所有檢索到的文檔知識(shí),這意味著它對(duì)文檔-問(wèn)題進(jìn)行單獨(dú)的答案預(yù)測(cè),然后聚合最終的預(yù)測(cè)分?jǐn)?shù)。最關(guān)鍵的是,使用后期融合允許我們將輸出中的錯(cuò)誤信號(hào)反向傳播到檢索機(jī)制,這可以實(shí)質(zhì)性地顯著提高端到端系統(tǒng)的性能。
將基于檢索的組件與生成組件相結(jié)合,即使在純粹的提取任務(wù)(如開(kāi)放域NaturalQuestions任務(wù))中也具有優(yōu)勢(shì)。當(dāng)RAG可以訪問(wèn)包含正確答案線(xiàn)索的文檔,但答案從未逐字說(shuō)明時(shí),性能也會(huì)提高,并且RAG甚至可以在某些情況下生成正確答案,而正確答案在任何文檔都檢索不到。我們用RAG在NaturalQuestions、CuratedTrec和WebQuestions上獲得了非常好的結(jié)果,證明了最先進(jìn)的機(jī)器閱讀性能可以用生成式閱讀器而不是提取式閱讀器來(lái)實(shí)現(xiàn)。
RAG確實(shí)擅長(zhǎng)知識(shí)密集型的自然語(yǔ)言生成,我們通過(guò)生成“Jeopardy!”問(wèn)題進(jìn)行了探索。RAG生成的“Jeopardy!”問(wèn)題比同類(lèi)最先進(jìn)的seq2seq模型的問(wèn)題更具體、更多樣、更符合事實(shí)。我們認(rèn)為,這是因?yàn)镽AG有能力使用從多個(gè)來(lái)源獲得的不同信息來(lái)合成一個(gè)響應(yīng)。
RAG的真正優(yōu)勢(shì)在于其靈活性。要改變預(yù)訓(xùn)練的語(yǔ)言模型所知道的內(nèi)容,需要用新的文檔對(duì)整個(gè)模型進(jìn)行再訓(xùn)練。通過(guò)RAG,我們可以通過(guò)交換知識(shí)檢索所用的文檔來(lái)控制它所知道的內(nèi)容。我們將維基百科的原始數(shù)據(jù)集換成一個(gè)舊的數(shù)據(jù)集,然后問(wèn)一些問(wèn)題,比如,“誰(shuí)是冰島的總理?”,對(duì)這種行為進(jìn)行測(cè)試。結(jié)果表明,盡管參數(shù)知識(shí)保持靜態(tài),但RAG還是利用交換語(yǔ)料庫(kù)中的知識(shí)來(lái)調(diào)整其答案。在事實(shí)(或我們對(duì)事實(shí)的理解)隨時(shí)間演變的情況下,這種自適應(yīng)方法是非常有價(jià)值的。
消除研究中的訓(xùn)練開(kāi)銷(xiāo)
如果人工智能助手要在日常生活中扮演更有用的角色,它們不僅需要能夠訪問(wèn)大量的信息,更重要的是,能夠訪問(wèn)正確的信息??紤]到世界的發(fā)展速度,事實(shí)證明,這對(duì)于預(yù)訓(xùn)練的模型具有挑戰(zhàn)性,即使是很小的變化,也需要不斷的計(jì)算密集型再訓(xùn)練。RAG允許自然語(yǔ)言處理模型繞過(guò)再訓(xùn)練步驟,訪問(wèn)并提取最新的信息,然后使用最先進(jìn)的seq2seq生成器輸出結(jié)果。這種融合應(yīng)該會(huì)使未來(lái)的自然語(yǔ)言處理模型更具適應(yīng)性,而且我們確實(shí)已經(jīng)從Facebook的人工智能相關(guān)研究項(xiàng)目Fusion-in-Decoder中看到了成果。
我們認(rèn)為RAG具有廣闊的潛力,這就是我們今天發(fā)布它作為Hugging Face Transformer庫(kù)的一個(gè)組件的原因。Hugging Face的Transformer已經(jīng)成為開(kāi)源自然語(yǔ)言處理中事實(shí)上的標(biāo)準(zhǔn),這要?dú)w功于它較低的進(jìn)入門(mén)檻和對(duì)最新模型的覆蓋,并且它與新的Datasets庫(kù)集成,以提供RAG所依賴(lài)的索引知識(shí)源?,F(xiàn)在,隨著RAG的加入,我們相信社區(qū)將能夠基于檢索的生成應(yīng)用于我們已經(jīng)探索過(guò)的知識(shí)密集型任務(wù)和一些我們甚至還沒(méi)有想到的任務(wù)。
RAG解放了研究人員和工程師,使他們能夠快速開(kāi)發(fā)和部署解決方案,以完成自己的知識(shí)密集型任務(wù),而這些任務(wù)只需五行代碼即可完成。我們可以預(yù)見(jiàn)未來(lái)對(duì)知識(shí)密集型任務(wù)的研究潛力,這些任務(wù)就像今天的情緒分析這樣的輕量級(jí)知識(shí)任務(wù)一樣簡(jiǎn)單易懂。