無專業背景知識,也可以寫出專業文案。
這就是NLP可以輔助人類做的事,它通過預訓練模型查找相關內容,並解釋上下文來完成一系列文本任務。
目前,諸如GPT-3等通用NLP模型已經在文本生成領域展現出強大的性能,它表明預訓練模型可以在參數中儲備大量知識,在執行特定任務時,只需調用和微調即可得到SOTA結果。
但這款被稱為“暴力美學”的超大模型,以及普遍的通用NLP,在預訓練成本、處理知識密集型(Knowledge-Intensive Tasks,)任務等方面仍然存在一定的侷限性。
對此,Facebook提出了一種檢索增強生成(Retrieval-Augmented Generation,RAG)模型的解決方法。
這篇名為《檢索增強生成處理知識密集型NLP任務》的論文表明,RAG預訓練模型在微調下游任務時,同樣可以達到最佳結果。
不同的是,與其他如預訓練模型相比,它可以對內部知識進行隨時補充和調整,無需浪費時間或因計算能力重新訓練整個模型。
檢索增強型語言模型,更高效、更靈活檢索增強生成(RAG)架構,是一個端到端的可微模型,主要由問題編碼器、神經檢索器、生成器模型三個部分構成。
其中生成器採用的是Seq2Seq模型,神經檢索器訪問的是維基百科密集向量索引,二者通過結合預訓練的參數存儲(Parametric Memory)與非參數存儲(Nonparametric Memory)來生成語言。
採用標準Seq2Seq模型,意味着RAG無需考慮序列長度和順序,每個輸入對應一個輸出序列,但不同的是,RAG不會直接將輸入結果直接傳遞給生成器,而是使用輸入來檢索一組相關文檔,這也讓RAG在性能比傳統Seq2Seq模型有所提升。
舉個例子,在以下問題編碼器中,輸入“第一個哺乳動物是什麼時候出現在地球上?”
RAG會先從Wikipedia之類的數據庫中檢索一組相關文檔。如與“哺乳動物”,“地球歷史”和“哺乳動物進化”相關的內容,然後將這些內容作為上下文與輸入串聯起來,一起饋入到模型以產生最終的輸出文本。
因此,RAG具有兩種知識來源。一是seq2seq模型存儲在其參數中的知識,即參數存儲;二是檢索語料庫中存儲的知識,也就是非參數存儲。
這種兩種知識來源是相輔相成的。Facebook在博客中表明,
RAG使用非參數內存來“提示” Seq2Seq模型生成正確的響應,這種方式相當於將“僅參數存儲”方法的靈活性與“基於檢索”方法的性能結合在了一起。
RAG採用後期融合(Late Fusion)的形式來整合所有檢索到的文檔中的知識,這意味着它會根據文檔內容提前進行答案預測,然後再彙總最終的預測結果。這種後期融合的形式可以讓輸出中的錯誤信號反向傳播到檢索機制中,這可以大大提高端到端系統的性能。
另外,Facebook研究團隊表示,RAG最大的一個優勢在於它的靈活性。更改預先訓練的語言模型所知道的內容需要使用新文檔對整個模型進行重新訓練,而這對於RAG而言,只需交換掉用於知識檢索的文檔即可,相比較而言,它更快速且高效。
基於精準的文檔輸入,參數存儲與非參數存儲結合的方法,RAG在文本生成方面表現出了很高的性能,在某些情況下,它甚至可以自己生成答案,而這些答案不包含在任何檢索到的文檔中。
論文中,研究人員在NaturalQuestions(NQ),CuratedTrec(CT),TriviaQA
(TQA)以及WebQuestions(WQ)四個開放域問答(Open-QA)中,對RAG的性能進行了基準測試。Open-QA是用於知識密集任務測試的常用應用程序。
在標準問答任務中,諸如“等邊三角形一角是多少度“之類的問題,模型只需從輸入的文檔找查找答案即可,但Open-QA並不會提供特定文檔,需要模型自主查找知識。由此,Open-QA是檢測RAG性能非常好的工具。
論文中,研究人員採用了Jeopardy的問題形式,它是一種精確的、事實性的陳述,如“世界盃”,Jeopardy問題的回答是“1986年墨西哥成為第一個舉辦世界盃的國家”。
結果顯示,RAG在知識密集型自然語言問題上表現出色,與其他模型相比,RAG產生的Jeopardy問題更為具體,多樣且真實,這可能是由於RAG能夠使用從多個來源獲取的不同信息合成響應的能力有關。
Closed-Book代表“僅參數化”,Open-Book代表“檢索方法”
如圖,RAG結合僅參數化和基於檢索方法,在各個Open-QA中,其性能非常顯著。另外,與REALM和T5+SSM不同的是,RAG無需高成本的“Salient Span Masking”預培訓,只依靠現成的組件就可以獲得如此效果。
Facebook在博客中也表明,RAG可以幫助研究人員快速開發和部署,以解決知識密集型任務。他們表示,未來對知識密集型任務的處理將是NLP主要的研究方向之一,而RAG通過引入檢索的方法,“允許NLP模型繞過再培訓步驟,直接訪問和提取最新信息,最後使用生成器輸出結果”的方式表現出了良好的性能。
目前,這項研究已經在Github開源,感興趣的朋友的來體驗一下~
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
引用鏈接:雷鋒網雷鋒網雷鋒網
https://ai.facebook.com/blog/retrieval-augmented-generation-streamlining-the-creation-of-intelligent-natural-language-processing-models/
https://venturebeat.com/2020/09/28/facebook-open-sources-rag-an-ai-model-that-retrieves-documents-to-answer-questions/