Categories
程式開發

Facebook 開源人工智能模型RAG:可檢索文檔以回答問題


教會計算機理解人類如何寫作、說話,即所謂的自然語言處理(Natural Language Processing,NLP),這是人工智能研究領域最古老的挑戰之一。然而,過去兩年,方法出現了明顯的變化。過去,研究主要集中在為特定任務開發特定框架,而今天強大的通用語言模型已經可以針對各種各樣的不同任務進行微調。雖然前景看好,但這方面的努力都已經將這些通用模型應用於人類無需額外補充背景知識就能產生解決方案的任務(如情感分析)。

構建一個研究和情境化的模型更具挑戰性,但它對未來的進步至關重要。最近,我們在這個領域取得了實質性的進展,我們的RAG([R禮儀一種增強的Generation,檢索增強生成)架構是一個端到端的可差異化模型,它結合了信息檢索組件(Facebook AI 的基於稠密段落檢索系統(dense-passage retrieval system)和seq2seq 生成器(Facebook 的BART 模型(Bidirectional and Auto-Regressive Transformers,雙向和自回歸Transformer ))。與最大的預訓練seq2seq 語言模型相比,RAG 可以在知識密集型下游任務上進行微調,達到最優結果。而且與這些預訓練模型不同,RAG 的內部知識可以輕鬆地隨時更改或補充,從而使研究人員和工程師控制RAG 所知道的內容,而不會浪費時間或算力來重新訓練整個模型。

結合開捲和閉卷的優勢

RAG 的外觀和行為類似於標準的seq2seg 模型,這意味著它接受一個序列並輸出相應的序列。不過,還有一個中間步驟,它將RAG 與通常的seq2seq 方法區別開來並提升。 RAG 不是直接將輸入傳遞給生成器,而是使用輸入檢索一組相關文檔,在我們的例子中,是從維基百科(Wikipedia)檢索的。

例如,給出提示“地球上第一個哺乳動物是什麼時候出現的?”,RAG 可能會提供“哺乳動物”、“地球歷史”和“哺乳動物進化”的文檔。然後,將這些支持文檔與原始輸入作為上下文連接起來,並提供給生成實際輸出的seq2seq 模型。因此,RAG 有兩個知識來源:seq2seq 模型在其參數中存儲的知識(參數記憶)和存儲在RAG 段落檢索語料庫中的知識(非參數記憶)。

这两个来源相辅相成。我们发现,RAG 使用其非参数记忆来“提示”seq2seq 模型产生正确的响应,本质上结合了“闭卷”或纯参数方法的灵活性与“开卷”或基于检索的方法性能。RAG 使用一种后期融合的形式集成所有检索到的文档知识,这意味着它对文档-问题进行单独的答案预测,然后聚合最终的预测分数。最关键的是,使用后期融合允许我们将输出中的错误信号反向传播到检索机制,这可以实质性地显著提高端到端系统的性能。

Facebook 開源人工智能模型RAG:可檢索文檔以回答問題 1

將基於檢索的組件與生成組件相結合,即使在純粹的提取任務(如開放域NaturalQuestions 任務)中也具有優勢。當RAG 可以訪問包含正確答案線索的文檔,但答案從未逐字說明時,性能也會提高,並且RAG 甚至可以在某些情況下生成正確答案,而正確答案在任何文檔都檢索不到。我們用RAG 在NaturalQuestions、CuratedTrec 和WebQuestions 上獲得了非常好的結果,證明了最先進的機器閱讀性能可以用生成式閱讀器而不是提取式閱讀器來實現。

RAG 確實擅長知識密集型的自然語言生成,我們通過生成“Jeopardy!”問題進行了探索。 RAG 生成的“Jeopardy!”問題比同類最先進的seq2seq 模型的問題更具體、更多樣、更符合事實。我們認為,這是因為RAG 有能力使用從多個來源獲得的不同信息來合成一個響應。

RAG 的真正優勢在於其靈活性。要改變預訓練的語言模型所知道的內容,需要用新的文檔對整個模型進行再訓練。通過RAG,我們可以通過交換知識檢索所用的文檔來控制它所知道的內容。我們將維基百科的原始數據集換成一個舊的數據集,然後問一些問題,比如,“誰是冰島的總理?”,對這種行為進行測試。結果表明,儘管參數知識保持靜態,但RAG 還是利用交換語料庫中的知識來調整其答案。在事實(或我們對事實的理解)隨時間演變的情況下,這種自適應方法是非常有價值的。

消除研究中的訓練開銷

如果人工智能助手要在日常生活中扮演更有用的角色,它們不僅需要能夠訪問大量的信息,更重要的是,能夠訪問正確的信息。考慮到世界的發展速度,事實證明,這對於預訓練的模型具有挑戰性,即使是很小的變化,也需要不斷的計算密集型再訓練。 RAG 允許自然語言處理模型繞過再訓練步驟,訪問並提取最新的信息,然後使用最先進的seq2seq 生成器輸出結果。這種融合應該會使未來的自然語言處理模型更具適應性,而且我們確實已經從Facebook 的人工智能相關研究項目Fusion-in-Decoder 中看到了成果。

我們認為RAG 具有廣闊的潛力,這就是我們今天發布它作為Hugging Face Transformer 庫的一個組件的原因。 Hugging Face 的變壓器已經成為開源自然語言處理中事實上的標準,這要歸功於它較低的進入門檻和對最新模型的覆蓋,並且它與新的數據集庫集成,以提供RAG 所依賴的索引知識源。現在,隨著RAG 的加入,我們相信社區將能夠基於檢索的生成應用於我們已經探索過的知識密集型任務和一些我們甚至還沒有想到的任務。

Facebook 開源人工智能模型RAG:可檢索文檔以回答問題 2Facebook 開源人工智能模型RAG:可檢索文檔以回答問題 3

RAG 解放了研究人員和工程師,使他們能夠快速開發和部署解決方案,以完成自己的知識密集型任務,而這些任務只需五行代碼即可完成。我們可以預見未來對知識密集型任務的研究潛力,這些任務就像今天的情緒分析這樣的輕量級知識任務一樣簡單易懂。

作者介紹:

Sebastian Riedel,研究主管;Douwe Kiela,研究科學家;Patrick Lewis,FAIR 博士生;Aleksandra Piktus,軟件工程師。

原文鏈接:

https://ai.facebook.com/blog/retrieval-augmented-generation-streamlining-the-creation-of-intelligent-natural-language-processing-models