wordpress slides book南寧哪里有seo推廣廠家
目錄
- 一、簡介
- 一句話簡介
- 作者、引用數(shù)、時間
- 論文地址
- 開源代碼地址
- 二、摘要
- 三、引言
- 四、整體架構(用一個例子來闡明)
- 場景例子:
- 核心點:
- 五、方法 (架構各部分詳解)
- 5.1 模型
- 1. RAG-Sequence Model
- 2. RAG-Token Model
- RAG-Sequence 模型
- RAG-Token 模型
- 總結
- 5.2 檢索器:DPR
- 總結:
- 5.3 生成器:BART
- 5.4 訓練
- 5.5 解碼(推理)
- RAG-Token
- RAG-Sequence
- 兩種模型通俗易懂的例子解釋:
- 徹底解碼 和 快速解碼 的區(qū)別
- 1. 徹底解碼(Thorough Decoding):
- 2. 快速解碼(Fast Decoding):
- 總結:
- 六、實驗
- 實驗說明
- 6.1 開放領域問答(Open-domain Question Answering, QA)
- 四個開放領域問答數(shù)據(jù)集的簡要介紹:
- 6.2 抽象問題問答(Abstractive Question Answering)
- 6.3 生成危險邊緣(Jeopardy) 風格的問題
- 6.4 事實校驗(Fact Verification)
- 七、結果
- 7.1 表1的解讀-開放領域問答任務
- 總結:
- 7.2 表2的解讀-生成和分類任務
- 術語和符號解釋:
- 測試任務種類:
- 總的對比:
- 生成 Jeopardy 問題的任務對比
- 事實校驗任務對比(FEVER)
- 總結:
- 7.3 表3的解讀-生成任務回答的準確性和具體性
- 表格結構:
- 任務解釋:
- 總結:
- 7.4 圖2的解讀
- 總結
- 7.5 表4的解讀-Jeopardy 問題生成任務的事實性和具體性
- 7.6 表5的解讀-生成內容的多樣性
- 7.7 表6的解讀-消融實驗評估檢索機制的有效性
- 為什么對于FEVER任務,BM25表現(xiàn)更好?
- 7.8 圖3的解讀-檢索更多文檔的效果
- 檢索召回率(Answer Recall)
- 7.9 索引熱交換(Index hot-swapping)-輕松更新知識庫
- 背景
- 測試方法
- 結論
- 八、相關工作-前人的工作和本文的創(chuàng)新點
- 單任務檢索
- NLP的通用架構
- 學習式檢索
- 基于記憶的架構
- 檢索與編輯方法
- 九、討論
- 本文的貢獻
- 未來研究方向
- 廣泛應用的潛力
- 十、更廣泛的影響
- 積極影響
- 潛在風險
一、簡介
一句話簡介
該論文是RAG的開山之作,提出了一種新的模型架構,將檢索和生成結合在一起,以解決預訓練模型在知識密集型自然語言處理任務中的局限性。
作者、引用數(shù)、時間
該文出自 Facebook AI Research 團隊,Patrick Lewis、Ethan Perez等人,提交于arXiv,且已被NeurIPS 2020接收,第一版發(fā)布于2020年5月22日,被引用數(shù):3600多次。
論文地址
Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
開源代碼地址
RAG 實驗的代碼已經開源,作為 HuggingFace Transformers Library(Wolf 等人,2019)的一部分,可在此鏈接查看:
https://github.com/huggingface/transformers/tree/main/examples/research_projects/rag
demo地址
https://huggingface.co/rag/
二、摘要
摘要討論了 RAG(Retrieval-Augmented Generation) 模型的背景、動機和研究貢獻:
-
背景:大型語言模型(如 GPT、BERT)通過大量數(shù)據(jù)預訓練,能夠存儲豐富的知識,并在微調后表現(xiàn)出色。然而,這些模型在處理需要外部知識的復雜任務時存在一定局限性,尤其是在訪問和操作知識時。它們的知識更新也非常困難。
-
RAG 模型的提出:為了解決這一問題,RAG 模型結合了兩種不同的記憶系統(tǒng):
- 參數(shù)化記憶:模型內置的預訓練語言模型,它已經通過大量數(shù)據(jù)學習了通用的語言知識。
- 非參數(shù)化記憶:通過檢索外部知識庫(如維基百科)實時獲取的信息,幫助模型生成答案。這樣可以擴展模型的知識范圍,增強生成效果。
-
兩種 RAG 模型對比:
- 一種是在整個生成過程中使用相同的檢索文檔。
- 另一種是在生成每個詞時,可以從不同的文檔中獲取信息,進一步提升生成的靈活性。
-
實驗結果:通過對多個知識密集型任務進行微調,實驗結果表明 RAG 模型在多個開放領域的問答任務中表現(xiàn)優(yōu)異,并且在語言生成任務中,生成的回答比傳統(tǒng)模型更準確、更豐富。
RAG 模型的創(chuàng)新在于它通過結合內置的語言知識和外部實時檢索知識,提升了模型的生成能力和知識靈活性,尤其適合處理復雜和開放性的問題。
三、引言
引言主要介紹了 RAG(Retrieval-Augmented Generation) 模型的背景、現(xiàn)有問題和模型設計和優(yōu)勢,特別是它如何結合預訓練語言模型和實時文檔檢索來提升復雜任務中的性能。
-
背景和問題:預訓練的語言模型(如 BERT 和 GPT)盡管在自然語言處理任務上取得了很大進展,但它們在處理知識更新、解釋生成內容等方面存在局限。生成不真實的答案(稱為“幻覺”)是它們的一個常見問題。
-
RAG 模型的提出:為了解決這些問題,RAG 模型結合了預訓練的語言模型和外部的非參數(shù)化知識源(如維基百科)進行知識檢索。RAG 模型在生成答案時,能夠不僅依賴模型自身的知識,還能通過實時檢索相關文檔來生成更加準確和豐富的答案。
-
創(chuàng)新點:與之前的模型相比,RAG 的創(chuàng)新點在于它能夠同時使用預訓練的參數(shù)化記憶(模型內部的知識)和非參數(shù)化記憶(外部檢索到的文檔),使得模型的知識庫更加靈活、易于擴展,并能夠生成多樣且精確的答案。
-
實驗結果:實驗表明,RAG 在多個知識密集型任務中的表現(xiàn)優(yōu)于傳統(tǒng)模型,特別是在開放領域問答和事實校驗任務中,RAG 展現(xiàn)了生成更準確、更詳細回答的能力。
四、整體架構(用一個例子來闡明)
這張圖展示了 RAG(Retrieval-Augmented Generation) 的整體架構,為了幫助理解這個架構,下面用一個通俗易懂的例子來解釋。
場景例子:
你想向智能助手提問:“誰是《神曲》的作者?”(這是你輸入的問題)。
-
查詢編碼器(Query Encoder):
- 你的問題先經過查詢編碼器,模型將這個問題轉化為一個向量表示,即圖中的 q ( x ) q(x) q(x)。可以把它想象成將自然語言問題轉換為計算機能夠理解的數(shù)字形式。
-
檢索器(Retriever):
- 接下來,檢索器使用這個向量去搜索一個文檔數(shù)據(jù)庫,這個過程通過一種稱為最大內積搜索(MIPS)的技術來實現(xiàn)。這個步驟的目的是找到最相關的文檔,這些文檔中可能包含關于《神曲》的答案。
- 假設從數(shù)據(jù)庫中找到了 4 個相關的文檔 z 1 , z 2 , z 3 , z 4 z_1, z_2, z_3, z_4 z1?,z2?,z3?,z4?,每個文檔都包含與問題相關的內容。
-
生成器(Generator):
- 對于每個找到的文檔,模型使用生成器(在圖中表示為 p θ p_\theta pθ?)生成一個可能的回答。這是通過“參數(shù)化記憶”完成的,即生成模型根據(jù)文檔和問題生成一個文本回答。
- 比如,對于文檔 z 1 z_1 z1?,生成器可能會生成:“《神曲》是但丁寫的”,而對于文檔 z 2 z_2 z2?,生成器可能會產生類似的回答。
-
邊緣化(Marginalization):
- 因為檢索器找到了多個文檔,模型會對所有文檔的生成結果進行綜合處理,即邊緣化。這個過程可以通過對所有文檔生成的結果進行加權求和來實現(xiàn)。簡單來說,模型會將所有文檔的回答綜合起來,最終給出一個最優(yōu)的預測(即“但丁是《神曲》的作者”)。
-
最終輸出:
- 最終,智能助手輸出的回答可能是:“《神曲》是由但丁創(chuàng)作的”,這是結合了多個文檔中的信息來生成的。
核心點:
- 參數(shù)化記憶(Parametric Memory):模型通過預訓練的權重來生成回答,這種權重是通過大量數(shù)據(jù)學習到的,這些權重參數(shù)已經存儲了模型學到的大量事實知識。
- 非參數(shù)化記憶(Non-Parametric Memory):模型依賴外部文檔庫(非參數(shù)化的存儲方式)來輔助生成更準確的回答,而不是完全依賴模型內部的權重。
五、方法 (架構各部分詳解)
注意:如果看不懂復雜的數(shù)學公式部分,可直接跳過,后面就有通俗易懂的例子解釋
5.1 模型
下面為數(shù)學公式部分,看不懂可跳過
RAG 有兩種不同模型:RAG-Sequence Model 和 RAG-Token Model。它們主要區(qū)別在于如何處理檢索到的文檔和如何在生成答案時進行邊緣化處理。
1. RAG-Sequence Model
-
過程:在 RAG-Sequence 模型中,檢索到的文檔作為一個潛在變量,整個序列的生成過程使用相同的文檔。也就是說,對于給定的查詢 (x),檢索器會找到前 (k) 個相關的文檔,然后生成器使用同一個文檔來生成整個輸出序列。
-
邊緣化:在生成完成后,模型對所有文檔的輸出進行邊緣化處理。具體的公式是:
p RAG-Sequence ( y ∣ x ) ≈ ∑ z ∈ top-k ( p ( ? ∣ x ) ) p η ( z ∣ x ) p θ ( y ∣ x , z ) p_{\text{RAG-Sequence}}(y|x) \approx \sum_{z \in \text{top-k}(p(\cdot|x))} p_\eta(z|x) p_\theta(y|x, z) pRAG-Sequence?(y∣x)≈z∈top-k(p(?∣x))∑?pη?(z∣x)pθ?(y∣x,z)
其中, p η ( z ∣ x ) p_\eta(z|x) pη?(z∣x) 是檢索到的文檔 (z) 給定查詢 (x) 的概率, p θ ( y ∣ x , z ) p_\theta(y|x, z) pθ?(y∣x,z) 是生成器基于文檔 (z) 生成整個序列 (y) 的概率。
2. RAG-Token Model
-
過程:在 RAG-Token 模型中,針對每一個生成的目標 token,模型可以從不同的文檔中選擇內容。與 RAG-Sequence 不同的是,生成器不使用同一個文檔生成整個輸出序列,而是在生成每個 token 時可以選擇一個不同的文檔進行生成。
-
邊緣化:每個 token 的生成也會進行邊緣化處理,這意味著在每次生成新 token 時,都根據(jù)每個文檔生成一個分布,并結合這些分布生成下一個 token。具體公式如下:
p RAG-Token ( y ∣ x ) ≈ ∏ i = 1 N ∑ z ∈ top-k ( p ( ? ∣ x ) ) p η ( z ∣ x ) p θ ( y i ∣ x , z , y 1 : i ? 1 ) p_{\text{RAG-Token}}(y|x) \approx \prod_{i=1}^{N} \sum_{z \in \text{top-k}(p(\cdot|x))} p_\eta(z|x) p_\theta(y_i|x, z, y_{1:i-1}) pRAG-Token?(y∣x)≈i=1∏N?z∈top-k(p(?∣x))∑?pη?(z∣x)pθ?(yi?∣x,z,y1:i?1?)
這里, p θ ( y i ∣ x , z , y 1 : i ? 1 ) p_\theta(y_i|x, z, y_{1:i-1}) pθ?(yi?∣x,z,y1:i?1?) 是生成器基于文檔 (z) 和前 (i-1) 個 token (y_{1:i-1}) 生成當前 token (y_i) 的概率。
下面為通俗易懂的例子解釋
RAG-Sequence 模型
想象你問了一個問題,智能助手從一個圖書館里找了幾本相關的書。助手從中選了一本書,然后根據(jù)這本書的內容生成整個回答。這個過程中,它一直在參考同一本書,直到回答結束。之后,它會比較多個回答,選出最好的那個。RAG-Sequence 模型就像這個助手,它在生成答案時始終依賴于同一本書(一個文檔),然后通過多個文檔生成的回答進行對比,給出最終答案。
RAG-Token 模型
另一種情況是,智能助手不只用一本書,而是每次它要生成一個詞時,都會從不同的書中挑選出一個詞來組合答案。比如,它可能用第一本書生成第一個詞,然后用第二本書生成下一個詞。最后,它把每次從不同書中挑選的詞組合起來,得到一個完整的答案。RAG-Token 模型就像這個助手,它在生成每個詞的時候可以參考不同的書(文檔),所以每個詞都有可能來源于不同的地方。
總結
- RAG-Sequence 模型:在生成整個答案時,助手只從一本書中獲取信息。
- RAG-Token 模型:在生成每個詞時,助手可以從不同的書中獲取信息。
這使得 RAG-Token 模型更加靈活,能夠從多個文檔中提取信息,適合那些需要從多個來源獲取答案的復雜問題。
5.2 檢索器:DPR
下面為數(shù)學公式部分,看不懂可跳過
檢索組件 p η ( z ∣ x ) p_\eta(z|x) pη?(z∣x) 基于 DPR,它采用雙編碼器架構:
p η ( z ∣ x ) ∝ exp ? ( d ( z ) ? q ( x ) ) p_\eta(z|x) \propto \exp \left( \textieo6y2aa(z)^\top \text{q}(x) \right) pη?(z∣x)∝exp(d(z)?q(x))
其中, d ( z ) \textieo6y2aa(z) d(z) 是通過 BERT-base 文檔編碼器生成的文檔 z z z 的密集表示, q ( x ) \text{q}(x) q(x) 是通過 查詢編碼器生成的查詢 x x x 的表示。兩個編碼器都基于 BERT 模型。計算前 K 個文檔的相關性得分 p η ( z ∣ x ) p_\eta(z|x) pη?(z∣x) 是一個 最大內積搜索(MIPS) 問題,該問題可以通過子線性時間近似求解。
文中使用預訓練的 DPR 雙編碼器來初始化檢索器,并建立文檔索引。這個檢索器被訓練用于檢索包含 TriviaQA 和 Natural Questions 數(shù)據(jù)集問題答案的文檔。文中將文檔索引稱為非參數(shù)化記憶。
-
雙編碼器架構:
- DPR 使用兩個編碼器:一個用于查詢 q ( x ) q(x) q(x),一個用于文檔 d ( z ) d(z) d(z)。查詢和文檔的表示都是通過各自獨立的 BERT-base 模型生成的。
- 查詢表示: q ( x ) q(x) q(x) 是查詢 x x x 通過查詢編碼器生成的密集向量表示。
- 文檔表示: d ( z ) d(z) d(z) 是文檔 z z z 通過文檔編碼器生成的密集向量表示。
-
相似度計算:
- 文檔 z z z 和查詢 x x x 的相似度通過它們的向量點積來計算:
p η ( z ∣ x ) ∝ exp ? ( d ( z ) ? q ( x ) ) p_\eta(z|x) \propto \exp \left( \textieo6y2aa(z)^\top \text{q}(x) \right) pη?(z∣x)∝exp(d(z)?q(x))
這個公式表示的是在給定查詢 x x x 的情況下,檢索到文檔 z z z 的概率。
- 文檔 z z z 和查詢 x x x 的相似度通過它們的向量點積來計算:
-
MIPS(最大內積搜索):
- MIPS 是一種高效的算法,用于快速從大量文檔中找到與查詢最相關的前 K 個文檔。這個問題通過內積最大化來解決,從而加速檢索過程,且其時間復雜度為子線性。
-
非參數(shù)化記憶:
- 文檔索引被稱為 非參數(shù)化記憶,因為這些外部知識(如維基百科)并沒有內嵌在模型的參數(shù)中,而是通過動態(tài)檢索獲取。因此,模型可以從外部數(shù)據(jù)源中靈活地訪問相關知識,而不依賴模型內的固定知識。
總結:
DPR 檢索器 通過雙編碼器架構將查詢和文檔分別編碼為向量,利用內積計算它們的相似度,并通過 MIPS 算法高效檢索出與查詢相關的文檔。這個過程允許模型動態(tài)地訪問外部知識庫,并利用這些知識生成高質量的答案。
下面為通俗易懂的解釋
DPR(Dense Passage Retrieval,稠密段落檢索)是幫助RAG模型進行信息檢索的??梢园阉胂蟪梢粋€非常高效的文檔搜索系統(tǒng)。
-
雙編碼器架構:
DPR使用了兩個獨立的“編碼器”來分別處理文檔和查詢問題??梢岳斫鉃橛袃蓚€機器,一個負責將所有可能的答案(文檔)編碼成一種緊湊的形式(稠密向量),另一個負責將問題編碼成類似的緊湊形式。 -
匹配文檔和問題:
搜索的核心思想是比較問題和文檔的“緊湊形式”,看它們之間有多“接近”。接近度越高,說明這個文檔可能越適合回答你的問題。可以把這個過程想象成查找最匹配的鑰匙和鎖,只有最相似的才能成功匹配。 -
預訓練:
這里的編碼器已經通過海量數(shù)據(jù)進行過預訓練(相當于已經看過很多問題和答案),所以它知道如何高效地將問題和答案進行匹配。 -
高效檢索:
由于要處理的文檔量非常大,DPR使用了一種叫“最大內積搜索”的方法來加速這個匹配過程。就像在一大堆鑰匙里快速找到幾把最可能打開鎖的鑰匙。 -
非參數(shù)記憶:
最后,文檔被存儲在一個叫做“非參數(shù)記憶”的地方。這個名字聽起來復雜,但本質上只是一個巨大的文檔庫,系統(tǒng)在需要時可以隨時去里面尋找最相關的答案。
DPR 就像是一個已經學會如何快速找到最佳答案的智能搜索引擎。
5.3 生成器:BART
BART 是一個用于生成文本的強大工具,它可以從輸入的信息中生成連貫的回答。
- BART 是一個 seq2seq(sequence-to-sequence) 模型,預訓練時使用了一個帶有“去噪”目標的任務,這意味著它能很好地從混亂或不完整的信息中恢復完整的答案。
- 在這個 RAG 模型中,BART 被用來生成每個問題的答案。具體來說,它結合了從文檔檢索中獲取到的內容 ( z ) 以及用戶的輸入 ( x ),然后生成答案。
- BART-large 是一種特別大的版本,包含了 4億個參數(shù),這使得它能夠處理非常復雜的語言生成任務。
- 文中還提到,BART 的生成部分被稱為 “參數(shù)化記憶”,因為生成器依賴的知識是存儲在 BART 模型的參數(shù)中的,這些參數(shù)通過預訓練學到了豐富的語言知識。
換句話說,BART 是 RAG 模型中的生成模塊,負責從檢索到的文檔中提取信息并生成最終的答案。
5.4 訓練
訓練過程的核心思想是聯(lián)合訓練,同時優(yōu)化文檔檢索模塊(Retriever)和生成模塊(Generator)。具體解釋如下:
-
無監(jiān)督選擇文檔:在訓練過程中,模型不會明確告訴哪個文檔最適合當前的查詢,而是通過訓練模型來自行學習從文檔庫中找到相關的文檔。
-
給定輸入輸出對:訓練集由一組輸入/輸出對組成。例如,輸入可以是一個問題,輸出可以是答案。模型通過這些已知的輸入和輸出對來進行微調。
-
損失函數(shù):模型使用一種叫做“負對數(shù)似然”的損失函數(shù)。這意味著它在訓練時,會嘗試最小化生成答案的“錯誤程度”,即最大化模型生成正確答案的概率。
-
優(yōu)化器:使用 Adam 優(yōu)化器,這是一種在深度學習中常用的技術,可以幫助模型更高效地學習和調整參數(shù)。
-
更新組件:在這個訓練過程中,文中提到模型并不需要頻繁更新所有部分。尤其是 BERT 文檔編碼器(BERT_d),它很難頻繁更新(因為代價高)。相反,文檔編碼器保持不變,只微調查詢編碼器 BERT_q 和 BART 生成器。
簡而言之,模型通過調整它找到的文檔和生成的答案,來提升自己對問題的理解和回答能力,而不需要頻繁更新所有模塊。
5.5 解碼(推理)
下面為數(shù)學公式部分,看不懂可跳過
在測試時,RAG-Sequence 和 RAG-Token 需要通過不同方式來近似求解 arg?max y p ( y ∣ x ) \text{arg max}_y p(y|x) arg?maxy?p(y∣x)。
RAG-Token
RAG-Token 模型 可以被視為一個標準的自回歸序列到序列(seq2seq)生成器,其轉移概率為:
p θ ′ ( y i ∣ x , y 1 : i ? 1 ) = ∑ z ∈ top-K ( p ( ? ∣ x ) ) p η ( z ∣ x ) p θ ( y i ∣ x , z , y 1 : i ? 1 ) p'_\theta(y_i | x, y_{1:i-1}) = \sum_{z \in \text{top-K}(p(\cdot | x))} p_\eta(z|x) p_\theta(y_i | x, z, y_{1:i-1}) pθ′?(yi?∣x,y1:i?1?)=z∈top-K(p(?∣x))∑?pη?(z∣x)pθ?(yi?∣x,z,y1:i?1?)
解碼時,可以將 p θ ′ ( y i ∣ x , y 1 : i ? 1 ) p'_\theta(y_i | x, y_{1:i-1}) pθ′?(yi?∣x,y1:i?1?) 插入標準的束搜索解碼器中。
RAG-Sequence
對于 RAG-Sequence,由于 p ( y ∣ x ) p(y|x) p(y∣x) 的似然并沒有分解為傳統(tǒng)的逐 token 似然,無法通過單一的束搜索來解碼。我們需要對每個文檔 z z z 運行束搜索,對每個假設 y y y 進行打分,使用 p θ ( y i ∣ x , z , y 1 : i ? 1 ) p_\theta(y_i | x, z, y_{1:i-1}) pθ?(yi?∣x,z,y1:i?1?)。這會產生一組假設 Y Y Y,其中某些假設可能不會在所有文檔的束搜索中出現(xiàn)。為估計假設 y y y 的概率,我們會對每個沒有生成 y y y 的文檔 z z z 運行額外的前向傳播,將生成器概率與 p η ( z ∣ x ) p_\eta(z|x) pη?(z∣x) 相乘,之后對所有束的邊緣化概率求和。我們將這種解碼過程稱為“徹底解碼(Thorough Decoding)”。
對于較長的輸出序列,集合 Y Y Y 會變得很大,因此需要多次前向傳播。為更高效的解碼,可以進一步近似處理,假設 p θ ( y ∣ x , z i ) ≈ 0 p_\theta(y | x, z_i) \approx 0 pθ?(y∣x,zi?)≈0,如果 y y y 在束搜索時沒有從 z i z_i zi? 中生成。通過這種方式,一旦候選集 Y Y Y 生成,就無需為 y y y 運行額外的前向傳播。我們稱這種解碼過程為“快速解碼(Fast Decoding)”。
下面為通俗易懂的例子解釋
兩種模型通俗易懂的例子解釋:
想象你在玩一個問答游戲。你輸入了一個問題,模型要根據(jù)從多個書籍中找到的內容來生成一個答案。
-
RAG-Token 模型 就像是一個助手,每次生成一個字或單詞時,它會參考多本書,找到最適合的一本書來決定下一個字或者單詞。這就像是在每一步重新選擇最合適的參考資料。
-
RAG-Sequence 模型 更像是這樣:它首先選擇了一本最有可能包含答案的書,然后將所有注意力集中在這本書上來生成整個答案。這需要逐步檢查每一個句子,因此更耗時,但可以確保生成的答案上下文一致。
在解碼過程中,RAG-Token 模型 更靈活,因為它可以從不同的書中獲取信息;而 RAG-Sequence 模型 則在生成每個答案時使用單一文檔,通過更加詳細的解碼過程來生成答案。
兩種解碼方式的區(qū)別
徹底解碼 和 快速解碼 的區(qū)別
徹底解碼(Thorough Decoding) 和 快速解碼(Fast Decoding) 的區(qū)別可以通過一個簡單的例子來說明。想象你在做一個選擇題考試,而你的目標是找到最正確的答案。你有兩種策略可以選擇:徹底檢查每一個選項(對應徹底解碼)和 快速縮小選項范圍(對應快速解碼)。
1. 徹底解碼(Thorough Decoding):
假設你有 10 本參考書,你需要檢查每一本書中的內容來回答問題。每次你得到了一個潛在的答案時,你會去每一本書中查找是否有相關內容,然后再根據(jù)所有書籍中的信息給出最終答案。這個過程就像是“徹底解碼”:它需要你從所有文檔中一一驗證每一個潛在的答案,再將這些信息結合起來,最后得出最準確的答案。
在模型中,徹底解碼 的過程如下:你生成了一個候選答案 ( y ),接著你對每一個檢索到的文檔 ( z ) 進行前向傳播,計算 p θ ( y ∣ x , z ) p_\theta(y|x, z) pθ?(y∣x,z) 的值。然后你對這些概率進行加權求和,得出最終的答案。這種方法比較慢,因為需要多次前向傳播,但可以保證信息的完整性。
2. 快速解碼(Fast Decoding):
而快速解碼 就像是你一開始檢查了部分選項,然后認為某些參考書不可能提供答案,直接忽略它們。你只會查看那些最可能有用的參考書,而不再去查閱所有書籍。這樣雖然不是 100% 確定,但可以更快地縮小范圍,得到一個合理的答案。
在模型中,快速解碼 的過程是:如果某個候選答案 ( y ) 沒有在某個文檔 ( z ) 中生成,你可以近似認為 p θ ( y ∣ x , z i ) ≈ 0 p_\theta(y | x, z_i) \approx 0 pθ?(y∣x,zi?)≈0。這樣一來,你就不需要對每個文檔都做前向傳播,節(jié)省了時間。這種方法更高效,適合生成長答案時使用,但相對于徹底解碼,它可能會略微降低答案的準確性。
總結:
- 徹底解碼:像是你每次遇到問題時,都認真檢查每一個可能的文檔或者書籍,確保答案無誤。這種方法較慢但更精確。
- 快速解碼:你根據(jù)一部分信息快速做出決定,只檢查最可能的來源,而跳過那些不太相關的文檔。這種方法更快,但有時可能略微犧牲準確性。
六、實驗
實驗說明
-
數(shù)據(jù)來源:所有實驗都使用了 維基百科 作為模型的知識來源。具體來說,使用了 2018年12月 的維基百科快照,這些數(shù)據(jù)被分割成了較小的“文檔塊”,每塊包含 100 個單詞。這樣總共形成了大約 2100萬份文檔。
-
檢索過程:實驗中使用了 MIPS(最大內積搜索)技術來進行快速的文檔檢索,并且使用了 FAISS 作為實現(xiàn)工具,這是一個常用的高效相似性搜索庫。同時使用了一種叫做“分層可導航小世界網(wǎng)絡”的算法來加速文檔的查找。
-
訓練與測試:在訓練過程中,每次查詢時,模型會從文檔庫中檢索出最相關的前 k 個文檔(k 的取值為 5、10 等),然后模型基于這些文檔進行答案生成。在測試時,同樣也使用這些檢索到的文檔來生成答案。
6.1 開放領域問答(Open-domain Question Answering, QA)
開放領域問答是指系統(tǒng)需要回答范圍廣泛的問題,并且不能依賴于特定領域的知識。在這里,RAG 模型通過結合檢索的外部知識和生成能力來回答這些問題。
-
訓練方法:通過最小化答案生成的錯誤率來訓練模型,即使用了一種叫做“負對數(shù)似然”的技術。這種方法幫助模型提高生成正確答案的概率。
-
對比實驗:將 RAG 模型與兩類方法進行了比較:
- 抽取式 QA:這類方法直接從檢索到的文檔中提取出答案片段。
- 閉卷 QA:這類方法生成答案時不依賴外部文檔,只依賴模型內部學習到的知識。
-
數(shù)據(jù)集:研究使用了四個開放領域的問答數(shù)據(jù)集(NQ、TQA、WQ、CT),這些數(shù)據(jù)集為研究提供了不同類型的問題和測試平臺。
四個開放領域問答數(shù)據(jù)集的簡要介紹:
-
NQ (Natural Questions):
- Natural Questions 是由谷歌推出的一個大規(guī)模開放領域問答數(shù)據(jù)集。它包含了從 Google 搜索中獲取的真實問題,并且每個問題都對應了一個來自 Wikipedia 的長文檔。任務要求模型找到文檔中的片段并生成正確的答案。這個數(shù)據(jù)集特別適合訓練模型處理復雜問題和長文檔中的答案定位。
-
TQA (TriviaQA):
- TriviaQA 是一個包含了真實問答比賽(trivia)中的問題的數(shù)據(jù)集。這些問題通常較為復雜,并且答案可能出現(xiàn)在多個文檔或網(wǎng)頁中。TriviaQA 提供了多種格式的答案,包括提取式答案和文檔片段,因此模型不僅要定位正確答案,還需要理解上下文。
-
WQ (WebQuestions):
- WebQuestions 是一個基于實際用戶通過 Google 搜索提出的問題數(shù)據(jù)集。問題的答案通常可以在 Freebase 知識圖譜中找到。這個數(shù)據(jù)集挑戰(zhàn)模型從結構化知識中找到答案,適合于基于知識圖譜的問答系統(tǒng)。
-
CT (CuratedTrec):
- CuratedTrec 是從 TREC(Text REtrieval Conference)的問答任務中挑選的一個數(shù)據(jù)集。它包含了一組精心挑選的問題和文檔,主要用來評估模型在從非結構化文檔中提取答案時的表現(xiàn)。
這些數(shù)據(jù)集共同為開放領域問答提供了多樣性挑戰(zhàn),測試模型在各種情況下生成正確答案的能力。
6.2 抽象問題問答(Abstractive Question Answering)
-
MSMARCO 數(shù)據(jù)集:這是一個用來測試生成模型能力的任務。它提供了一些問題和多個高質量的參考段落,幫助模型生成答案。實驗中,研究者并不使用這些參考段落,而僅依賴模型的生成能力,這使得任務更加困難。
-
抽象問答 vs. 抽取問答:抽象問答是指模型生成完整的句子答案,而不僅僅是從文檔中抽取現(xiàn)有的句子。這使得回答更自然、更流暢,但也更加依賴模型的語言生成能力。
-
挑戰(zhàn):一些問題(例如“加利福尼亞火山鎮(zhèn)的天氣如何?”)很難只依靠普通文檔生成匹配的答案,因為這些問題可能需要訪問最新的或者具體的數(shù)據(jù)庫來獲取答案。因此,如果模型不能使用預定義的段落或參考資料,表現(xiàn)會下降。
-
參數(shù)化知識的使用:RAG 模型可以通過其預訓練中學到的知識來回答一些問題,這被稱為“參數(shù)化知識”。這意味著即使沒有具體的文檔,模型也可以依賴預先學習的知識生成合理的答案。
6.3 生成危險邊緣(Jeopardy) 風格的問題
使用 RAG 模型 生成 Jeopardy 風格的問題,并與 BART 模型 進行對比。Jeopardy 問題與傳統(tǒng)的開放領域問答任務不同,因為它要求基于已知的答案生成精確的問題,而不是直接從文檔中提取答案。
-
數(shù)據(jù)集:實驗使用了 SearchQA 數(shù)據(jù)集進行訓練和測試,包含大量的訓練、驗證和測試樣本。
-
評估方法:研究人員使用了 Q-BLEU-1 作為評估指標,這個指標在匹配實體時更為有效。除此之外,還通過人工評估模型生成問題的準確性(是否符合事實)和具體性(問題與答案是否密切相關)。
-
模型對比:RAG 模型和 BART 模型都被用來生成 Jeopardy 風格的問題,評估人員會比較兩個模型生成的問題,看看哪個問題更好。
這一實驗用于測試 RAG 模型的生成能力,尤其是在生成復雜問題時的表現(xiàn)。
6.4 事實校驗(Fact Verification)
該任務要求模型從維基百科中檢索證據(jù),以判斷給定聲明是否正確。
-
FEVER 任務:FEVER 是一個經典的事實校驗任務,要求模型基于外部證據(jù)(如維基百科)來驗證聲明的真假或確定是否缺少信息。這是一個復雜的推理問題,因為模型需要不僅找到相關信息,還要做出合理的推斷。
-
RAG 模型的應用:研究人員使用 RAG 模型進行分類,而不是生成答案。模型在這項任務中的作用是找到與聲明相關的證據(jù),然后根據(jù)這些證據(jù)判斷聲明的正確性。這與問答任務不同,因為它更強調推理和分類,而不是文本生成。
-
與其他方法的不同:與其他方法不同,研究人員并未使用額外的監(jiān)督信號來告訴模型哪些證據(jù)是最好的。這使得 RAG 模型在沒有明確指導的情況下,也能夠處理更廣泛的任務。這種方法更接近實際應用場景,因為在現(xiàn)實世界中,可能沒有足夠的監(jiān)督信號來幫助模型識別最相關的證據(jù)。
通過這個任務,作者展示了 RAG 模型在處理復雜的事實校驗問題時的能力,尤其是在不依賴外部監(jiān)督信號的情況下。
七、結果
7.1 表1的解讀-開放領域問答任務
表1展示了三種模型(Closed Book 模型、 Open Book 模型 和 RAG 模型)在四個開放領域問答數(shù)據(jù)集上的測試結果。
-
Closed Book 模型:
- T5-11B:該模型的設計是通過預訓練獲得參數(shù)化內部知識,而不依賴于外部文檔進行檢索。
- T5-11B + SSM:是 T5-11B 模型的增強版本,通過結合特殊的預訓練任務(如 salient span masking),提升了在某些任務上的表現(xiàn)。
-
Open Book 模型:
- REALM:通過結合外部文檔檢索,由于其使用了外部知識,它在回答復雜問題時更有優(yōu)勢。
- DPR:通過 Dense Passage Retrieval 檢索外部文檔,在 TQA 數(shù)據(jù)集上表現(xiàn)最佳,在 NQ、WQ 和 CT 數(shù)據(jù)集上的表現(xiàn)也有提升。
-
RAG 模型:
- RAG-Token:使用外部文檔的檢索增強生成。
- RAG-Sequence:同樣使用外部文檔檢索,但在生成答案時使用整個文檔。
總結:
- Closed Book 模型的表現(xiàn)依賴于其內置的知識庫,因此在較大、復雜的任務(如 NQ)上表現(xiàn)略差。
- Open Book 模型通過檢索外部知識庫,提升了其在所有數(shù)據(jù)集上的表現(xiàn),尤其是 DPR 在 TQA 數(shù)據(jù)集上表現(xiàn)優(yōu)異。
- RAG 模型結合了生成和檢索,表現(xiàn)出更為平衡且優(yōu)秀的性能,尤其是 RAG-Sequence 在多個數(shù)據(jù)集上都達到了更高的得分。
7.2 表2的解讀-生成和分類任務
表 2 展示了幾種模型在生成和分類任務中的測試得分,包含:抽象問題問答、生成危險邊緣風格的問題和事實校驗。
術語和符號解釋:
- gold context/evidence:金標準上下文/證據(jù),這個術語指的是經過人工篩選或精心標注的,與問題或任務高度相關的上下文或證據(jù)。這些內容通常被認為是最可靠的信息來源,用于模型訓練或驗證。在大規(guī)模 NLP 任務中,它被視為最理想的輸入形式。
- 帶星號的數(shù)據(jù):表示使用了金標準上下文/證據(jù)來訓練的模型的得分。
- 帶下劃線的數(shù)據(jù):表示未使用金標準上下文/證據(jù)來訓練的最優(yōu)模型的得分。
測試任務種類:
- Jeopardy B-1 和 QB-1:這是關于問答生成任務的兩個評分指標,通常用于評估模型生成的準確性和多樣性。
- MS-MARCO R-L 和 B-1:分別代表 Rouge-L 和 BLEU-1 分數(shù),用于評估模型在生成任務中的表現(xiàn)。Rouge-L 衡量生成答案與參考答案之間的重疊率,BLEU-1 衡量生成答案的準確性。
- FEVER3 和 FEVER2:這是事實驗證任務,Label Accuracy 用于評估模型的標簽準確率,即模型預測的正確性。
總的對比:
-
SotA(State of the Art):
- SotA :指的是在特定任務或領域中表現(xiàn)最好的技術或模型。在機器學習和自然語言處理等領域中,SotA 模型是指當前已知的最先進的模型,通常在某些基準測試(例如,開放領域問答、文本生成或圖像識別任務)上取得了最優(yōu)性能。隨著研究的推進,新的模型和方法不斷被提出,SotA 模型也會不斷更新。
- MS-MARCO、FEVER3 和 FEVER2 任務中,這是當前最優(yōu)的模型,但它使用了金標準的上下文訓練,因此帶有更高的先驗信息。
-
BART 模型:
- 在生成任務(Jeopardy 和 MS-MARCO)中,BART 得分相對較低
- 在分類任務 FEVER3 和 FEVER2 中,BART 的表現(xiàn)也不如最優(yōu)模型。
-
RAG-Token 和 RAG-Sequence 模型:
- RAG-Tok:在生成任務中表現(xiàn)優(yōu)于 BART。
- RAG-Seq:在生成任務中的表現(xiàn)也不錯,比 BART 的得分高。
- 分類任務:RAG 模型在 FEVER 任務中表現(xiàn)優(yōu)異,接近最優(yōu)模型。
生成 Jeopardy 問題的任務對比
RAG-Token 在生成 Jeopardy 問題的任務中表現(xiàn)優(yōu)于 RAG-Sequence。Jeopardy 問題通常包含兩個信息片段,RAG-Token 可能表現(xiàn)更好,因為它能夠結合多個文檔中的內容來生成答案。
事實校驗任務對比(FEVER)
-
三分類任務 FVR3(真假和無法判斷):RAG模型的性能與最先進的、專門為這一任務設計的復雜流水線模型相比,差距僅為4.3%。這些最先進的模型依賴于復雜的架構和大量的工程開發(fā),并且使用了中間的檢索監(jiān)督(即模型訓練過程中通過給定的證據(jù)進行監(jiān)督)。相比之下,RAG并不依賴這些復雜的訓練方法,而是直接基于檢索到的文檔來完成任務,表現(xiàn)非常接近。
-
二分類任務 FVR2(真或假):RAG與Thorne和Vlachos的RoBERTa模型進行了比較,后者是基于提供的“黃金證據(jù)”句子來判斷聲明真假。盡管RAG并沒有被提供黃金證據(jù)句子,而是自己檢索相關文檔,其性能仍然非常接近RoBERTa模型,差距僅為2.7%。
-
文檔檢索分析:研究還分析了RAG檢索到的文檔是否與FEVER標注的黃金證據(jù)文檔一致。在71%的案例中,RAG檢索到的首個文檔是黃金證據(jù)文檔的一部分。在90%的案例中,RAG檢索到的前10個文檔中至少有一個是黃金證據(jù)文檔。
RAG即便沒有依賴外部監(jiān)督信號,只通過自行檢索證據(jù)來做判斷,依然表現(xiàn)出了非常接近于最先進模型的水平,這展示了RAG模型在無需復雜監(jiān)督的情況下也能夠高效地完成任務。
總結:
- SotA 模型 使用了金標準上下文訓練,因此在生成和分類任務中表現(xiàn)最優(yōu)。
- RAG 模型 在不使用金標準上下文訓練的情況下表現(xiàn)也非常出色,尤其是在生成任務中,RAG 的多樣性和準確性都超過了 BART。
- BART 在這些任務中的表現(xiàn)相對較弱,尤其是在更復雜的生成任務中。
7.3 表3的解讀-生成任務回答的準確性和具體性
表3提供了不同模型在生成任務中的具體輸出示例,旨在比較它們生成的回答的準確性和具體性。
表格結構:
- 任務 (Task):代表輸入問題所屬的任務,如 MS-MARCO 問答任務或 Jeopardy 問題生成任務。
- 輸入 (Input):為每個任務中模型收到的輸入問題。
- 模型 (Model):指使用的模型類型(BART、RAG-T 或 RAG-S)。
- 生成 (Generation):代表模型生成的答案。表中通過問號(“?”)標示事實錯誤的回答,星號(“*”)標示部分正確的回答。
任務解釋:
-
MS-MARCO 任務:
- 輸入問題如“定義中耳”和“蘇格蘭使用的貨幣是什么”。
- 對于問題“定義中耳”,BART 模型給出了錯誤的回答(“中耳是介于中耳和鼻子之間的部分”),而 RAG-T 和 RAG-S 都生成了更正確且具體的回答。
- 對于問題“蘇格蘭使用的貨幣是什么”,BART 和 RAG 模型都給出了正確的答案。
-
Jeopardy 問題生成任務:
- 對于問題“Washington”,BART 生成了錯誤答案(“這個州在美國有最多的縣”),而 RAG-T 和 RAG-S 提供了更準確的描述。
- 對于問題“神曲”,BART 生成的答案部分正確,而 RAG 模型給出了更精確的答案。
總結:
- BART:在部分問題上表現(xiàn)欠佳,生成的回答中有一些事實錯誤或部分正確。
- RAG-T 和 RAG-S:RAG 模型 比 BART 更少產生幻覺(即生成不符合事實的內容),通常能生成更具體和更準確的答案。
該表清楚地展示了 RAG 模型在處理復雜生成任務時比 BART 模型更具優(yōu)勢,特別是在生成更加準確和具體的回答方面。
7.4 圖2的解讀
這張圖展示了在生成 “Jeopardy” 風格的問題時,RAG-Token 模型對于特定輸入 “Hemingway” 的后驗分布(posterior probability),其中生成了兩個標志性的海明威作品:“A Farewell to Arms” 和 “The Sun Also Rises”。這張圖中列出了5個被檢索到的文檔(Document 1 到 Document 5),其中:
- Document 1 涉及海明威的作品《永別了,武器》(A Farewell to Arms)。
- Document 2 討論了海明威的另一本作品《太陽照常升起》(The Sun Also Rises)。
圖中的熱圖展示了對于每個生成的詞(token),RAG-Token 模型是如何在這些文檔之間分配后驗概率的。我們可以看到:
- 當生成 “A Farewell to Arms” 時,模型的后驗分布在 Document 1 上具有較高的概率,這意味著它的生成依賴于 Document 1 的信息。
- 同樣,當生成 “The Sun Also Rises” 時,后驗概率在 Document 2 上有明顯的集中,說明該文檔在生成該標題時起到了重要作用。
總結
這種后驗分布的變化反映了 RAG-Token 模型如何使用多個檢索到的文檔來生成更準確的答案。在開始生成每個詞時,模型會根據(jù)不同的文檔調整其注意力,并從最相關的文檔中提取信息以生成正確的答案。
7.5 表4的解讀-Jeopardy 問題生成任務的事實性和具體性
表 4 展示了人類評估 Jeopardy 問題生成任務的結果,評估了 BART 和 RAG 在兩個維度上的表現(xiàn):事實性(Factuality) 和 具體性(Specificity)。
-
在事實性方面,42.7% 的評估認為 RAG 比 BART 更好,而只有 7.1% 認為 BART 更好。
-
在具體性方面,37.4% 的評估認為 RAG 更具體,而 16.8% 認為 BART 更好。
這表明在人類評估中,RAG 在這兩項任務上普遍表現(xiàn)優(yōu)于 BART,尤其是在事實性方面。
7.6 表5的解讀-生成內容的多樣性
表 5 比較了在兩個生成任務(MSMARCO 和 Jeopardy 問題生成)中,幾個模型生成內容的多樣性
根據(jù)最近關于多樣性解碼的研究,可以通過計算不同模型生成的總n元組(n-grams)中獨特n元組的比例(文中用的是三元組 tri-grams),來探討生成的多樣性。從表中可以看出,RAG-Sequence生成的內容比RAG-Token更具多樣性,且二者生成的內容都明顯比BART更具多樣性,而無需使用任何促進多樣性的解碼方法。
7.7 表6的解讀-消融實驗評估檢索機制的有效性
表6展示了對RAG模型在開發(fā)集上的消融實驗結果。
消融實驗(Ablation Study)是一種用于評估模型或系統(tǒng)各個組件貢獻的實驗方法。通過逐一去除或凍結模型中的某些組件或特性,觀察性能的變化,可以幫助研究人員理解哪些組件對最終的模型性能起到了關鍵作用。
RAG的一個關鍵特性是學習如何檢索任務所需的相關信息。為評估檢索機制的有效性,作者進行了消融實驗,凍結了訓練中的檢索器,并做了下面幾種比較:
-
BM25與RAG的向量稠密檢索器的對比:BM25是一種基于詞頻的傳統(tǒng)檢索器,用于與RAG模型中的向量稠密檢索器進行對比。在此實驗中,用固定的BM25檢索器替代RAG的檢索器,并在計算 p ( z ∣ x ) p(z|x) p(z∣x)時使用BM25的檢索得分作為logits。表6顯示BM25在某些任務(如FEVER任務)表現(xiàn)出色,但在開放域問答任務(如NQ和TQA)中,RAG的稠密檢索器表現(xiàn)更好。
-
凍結檢索器的影響:在“Frozen”行列中,凍結了檢索器的參數(shù),使其在訓練過程中保持不變。結果顯示,凍結檢索器的性能顯著下降,說明允許檢索器的參數(shù)在訓練過程中更新有助于提高模型的整體性能。
-
不凍結檢索器的性能:RAG-Token和RAG-Sequence模型在不凍結檢索器的情況下表現(xiàn)出色,尤其是在開放域問答任務中,它們的精確匹配分數(shù)高于其他實驗設置。
通過這些消融實驗,可以得出結論,RAG的稠密檢索器在開放域任務中貢獻了較大的性能提升,且允許檢索器在訓練中更新是確保其高效工作的關鍵,
為什么對于FEVER任務,BM25表現(xiàn)更好?
可能的原因是FEVER中的聲明(claims)通常與實體密切相關,而基于詞語重疊的檢索方法(如BM25)非常適合處理這種類型的任務。
-
實體驅動的聲明:FEVER任務的目標是驗證自然語言聲明的真實性,而這些聲明往往與具體的實體有關,比如人物、地點、事件等。例如:“喬治·華盛頓是美國的第一任總統(tǒng)”就是一個與“喬治·華盛頓”這個實體相關的聲明。因此,檢索器需要找到包含這些實體信息的證據(jù)文檔。
-
詞語重疊檢索:BM25是一種基于詞頻和文檔頻率的檢索算法,強調查詢中的關鍵詞與文檔中詞匯的重疊。由于FEVER的聲明通常包含了非常明確的實體(如人名、地名等),這些實體也很可能出現(xiàn)在相關文檔中,因此基于詞匯匹配的BM25算法能很好地找到包含這些實體的文檔。
-
適用場景:相較于其他需要更復雜語義理解的任務,FEVER的實體中心化特點使得像BM25這樣簡單、直接的詞語匹配方法在這個任務中表現(xiàn)優(yōu)越。
總結來說,BM25的強項在于它能快速、有效地找到與查詢中實體詞匯相匹配的文檔,而FEVER任務的實體驅動特性使得BM25在這個特定場景下尤其適合。
7.8 圖3的解讀-檢索更多文檔的效果
圖3展示了RAG模型在訓練時檢索更多的文檔對在兩個任務(NQ和MS-MARCO)上性能表現(xiàn)的影響。
-
左圖: 描繪了在NQ任務中,隨著檢索文檔數(shù)量(K)的增加,NQ準確匹配率的變化情況。RAG-Sequence在測試時檢索更多文檔會單調地提高開放域問答的結果,隨著檢索文檔數(shù)量從0增加到5,性能快速提升,但之后增長放緩。在K接近30時,準確率趨于平穩(wěn),繼續(xù)檢索更多文檔對性能的提升有限。而RAG-Token的性能在檢索10個文檔時達到峰值。
-
中圖: 描繪了在NQ任務中的檢索召回率(Answer Recall @ K)隨著文檔數(shù)量增加的表現(xiàn)??梢钥闯?#xff0c;RAG模型(RAG-Tok和RAG-Seq)和固定DPR的召回率較高,并隨著K值的增加而逐漸提高,而基于詞匯匹配的BM25系統(tǒng)表現(xiàn)顯著差于其他模型。
-
右圖: 描繪了在MS-MARCO任務中,隨著文檔數(shù)量增加,RAG模型在Bleu-1和Rouge-L分數(shù)上的表現(xiàn)??梢钥吹?#xff0c;檢索更多文檔會提高RAG-Token的Rouge-L分數(shù),但以犧牲Bleu-1分數(shù)為代價,而這一效果對RAG-Sequence的影響較小。
通過這三幅圖,RAG模型展示了在NQ任務中,通過檢索更多文檔,能有效提升答案召回率。而在MS-MARCO任務中,Rouge-L分數(shù)隨著文檔檢索數(shù)量的增加而改善,但以犧牲Bleu-1分數(shù)為代價。
檢索召回率(Answer Recall)
檢索召回率(Answer Recall) 是信息檢索系統(tǒng)或生成模型中的一個重要指標,用于評估在給定查詢時,系統(tǒng)能否從大量文檔中找到正確答案。具體來說,它衡量的是在模型檢索出的文檔列表中,正確文檔的比例。這個指標的理想值為1,表示所有正確答案都被檢索到了;而0表示沒有一個正確的答案被找到。
7.9 索引熱交換(Index hot-swapping)-輕松更新知識庫
非參數(shù)記憶模型(如 RAG) 的一個優(yōu)勢是:隨著世界變化,它可以在測試時輕松更新知識庫,而不需要像參數(shù)模型(如 T5 或 BART)那樣通過重新訓練才能更新其行為。
背景
在自然語言處理模型中,知識的更新是一個挑戰(zhàn)。參數(shù)模型(如 T5 和 BART)將知識“嵌入”到模型的參數(shù)中,當外界信息變化時,必須通過重新訓練來更新它們的知識。而 非參數(shù)記憶模型(如 RAG)通過將外部知識(例如 Wikipedia)存儲在一個獨立的索引(index)中,并在生成答案時根據(jù)需要檢索這些文檔。這樣,當世界上的知識發(fā)生變化時,只需要更新或替換索引,而不需要重新訓練模型。
測試方法
為了證明這個優(yōu)勢,作者創(chuàng)建了兩個索引,一個基于 2016 年的 Wikipedia 數(shù)據(jù)集,另一個基于 2018 年的數(shù)據(jù)集。他們設計了一個測試來詢問世界領導人的問題(例如,“誰是秘魯總統(tǒng)?”),并使用 RAG 模型分別通過這兩個索引來回答這些問題。
- 2016年索引 對應 2016 年世界領導人的問題,模型的回答正確率為 70%。
- 2018年索引 對應 2018 年世界領導人的問題,模型的回答正確率為 68%。
當索引與問題不匹配時(比如用 2016 年的數(shù)據(jù)回答 2018 年的問題),正確率明顯下降,表明索引的時間相關性。
結論
這一實驗表明,通過簡單地更換非參數(shù)記憶(即索引),可以輕松更新模型的世界知識,而不需要像參數(shù)模型那樣耗時地重新訓練。這種“索引熱交換”(Index hot-swapping)方法為更新知識庫提供了一種更為靈活和高效的方案。
八、相關工作-前人的工作和本文的創(chuàng)新點
單任務檢索
單任務檢索是指在特定的NLP任務中通過使用信息檢索技術來提升模型的表現(xiàn),這是之前的做法。已經用這種技術做過的任務包括開放領域問答、事實核查、事實補全、長篇問答、維基百科文章生成、對話、翻譯以及語言建模。
本研究的創(chuàng)新之處在于展示了如何使用一個單一的檢索架構來提升不同NLP任務中的表現(xiàn),而不需要為每個任務設計專門的架構。這意味著,通過引入統(tǒng)一的基于檢索的方法,模型可以在多個任務中有效地學習和使用外部信息,顯著提高整體性能。
NLP的通用架構
先前的研究表明,在NLP任務中,使用通用架構(不依賴檢索)取得了巨大的成功。一個單一的預訓練語言模型在GLUE基準測試的各種分類任務中,通過微調后展現(xiàn)了出色的表現(xiàn)。早期的模型,如GPT-2,主要通過單向生成(從左到右)取得了在多個任務上的成功。GPT-2證明了一個統(tǒng)一的語言模型能夠同時勝任生成式和判別式任務。
之后的BART和T5進一步改進了這些模型,它們利用雙向注意力機制,能夠在處理文本生成和分類任務時取得更好的結果。BART和T5是編碼器-解碼器模型,它們不僅在生成任務中表現(xiàn)出色,也能夠處理分類任務。
本研究的創(chuàng)新之處在于通過學習一個檢索模塊來增強這些通用的生成模型,并實現(xiàn)一個統(tǒng)一的架構來擴展任務范圍。
學習式檢索
在信息檢索領域中,學習如何檢索文檔是一個重要的研究方向,最近的工作中,越來越多地結合了預訓練的神經語言模型來提升檢索性能。有些工作通過優(yōu)化檢索模塊來輔助具體的下游任務,例如使用搜索、強化學習或潛變量方法來解決問題回答任務。這些成功的研究利用了不同的基于檢索的架構和優(yōu)化技術,通常在單一任務上實現(xiàn)了出色的表現(xiàn)。
本研究的創(chuàng)新之處在于展示了單一的基于檢索的架構可以通過微調,在多個任務上實現(xiàn)強大的表現(xiàn)。
基于記憶的架構
文本的文檔索引可以被視為神經網(wǎng)絡所關注的一個大型外部記憶,類似于記憶網(wǎng)絡。傳統(tǒng)的記憶網(wǎng)絡關注的是如何在任務中使用預訓練的嵌入。本研究的創(chuàng)新之處在于它使用的是原始文本作為記憶,而不是通常的向量嵌入。這帶來了兩個關鍵優(yōu)勢:
-
人類可讀性:因為使用的是原始文本,模型的記憶內容是人類可以直接閱讀和理解的,這為模型的輸出提供了一定的解釋性。例如,用戶可以查看模型為什么會產生某個答案,這是模型可解釋性的重要一環(huán)。
-
人類可寫性:這種架構允許我們動態(tài)更新模型的知識庫,只需要編輯文檔索引即可。這意味著在新的知識出現(xiàn)時,無需重新訓練整個模型,只需更新相關的文檔就可以實現(xiàn)對新信息的學習。
這種方法在知識密集型對話系統(tǒng)中表現(xiàn)出色,尤其是當生成器需要根據(jù)檢索到的事實文本生成回答時。通過直接使用文本,而不是以往的嵌入或向量表示,模型可以在更復雜和動態(tài)的場景下保持高效的生成和準確性。
檢索與編輯方法
RAG與檢索與編輯風格的方法有一定的相似性,但也有不少區(qū)別:
-
檢索與編輯方法的基本流程:先根據(jù)輸入檢索一個與輸入相似的訓練對(即輸入-輸出對),然后通過輕微的編輯生成最終的輸出。這種方法已經在多個領域得到了成功應用,尤其是在機器翻譯和語義解析領域。
-
RAG與傳統(tǒng)檢索與編輯的不同:
- 更少依賴輕微編輯:傳統(tǒng)方法依賴的是對檢索到的項目進行小范圍的調整,而RAG技術的側重點在于將多個檢索到的內容進行匯總,從中提取出最相關的信息。
- 學習潛在檢索:RAG不僅僅是檢索相似的訓練對,還在檢索階段通過潛在變量學習更有效的文檔檢索。
- 檢索證據(jù)文檔:傳統(tǒng)方法主要檢索的是與輸入相關的訓練對,而RAG更關注檢索支持輸入的證據(jù)文檔。
-
未來研究方向的展望:盡管RAG技術與檢索與編輯方法存在差異,但RAG技術可能適用于這些場景,并為未來的研究提供了有前途的方向。
總結來看,RAG不僅增強了檢索,還整合了生成和編輯的能力,能夠更好地處理復雜的語言生成任務。
九、討論
本文的貢獻
- 混合生成模型:本文提出了同時利用參數(shù)化記憶和非參數(shù)化記憶的RAG模型。
- 開放領域問答中的表現(xiàn):展示了RAG模型在開放領域問答中取得了最先進的結果。
- 用戶偏好:相比于純參數(shù)化的BART,人們更偏愛RAG的生成,認為RAG生成的內容更加真實和具體。
- 檢索組件的有效性:對學習到的檢索組件進行了詳細的調查,驗證了它的有效性,并說明了如何通過替換檢索索引來更新模型,而不需要任何再訓練。
未來研究方向
未來的研究可以探索是否可以從零開始聯(lián)合預訓練參數(shù)化和非參數(shù)化記憶模塊,這樣可以進一步提升模型的性能。聯(lián)合預訓練的目標可能包括類似于BART的去噪任務或其他合適的目標函數(shù)。
廣泛應用的潛力
RAG技術展示了它在各種自然語言處理任務中的潛力。參數(shù)化和非參數(shù)化記憶的結合為模型提供了強大的生成能力,并開辟了新的研究方向,特別是在處理需要動態(tài)外部知識的任務中具有應用前景。
十、更廣泛的影響
討論了RAG模型的社會影響,既包括它帶來的好處,也提到了潛在的負面影響。
積極影響
- 基于事實的知識生成:RAG模型通過引用維基百科等真實的知識源,能夠減少生成中出現(xiàn)的虛假內容或“幻覺”。這使得生成的文本更符合事實,尤其在處理需要可靠數(shù)據(jù)的場景(如醫(yī)療、科學領域)時,能夠提供更高的準確性和可信度。
- 控制與可解釋性:由于模型依賴外部知識,生成的內容可以被追溯至具體的來源(如維基百科的某一篇文章),這提高了內容的可解釋性,使用戶對生成的知識更有信心。
- 應用場景廣泛:RAG模型可以應用于多個領域,如醫(yī)學問題的回答、提升工作效率等,幫助人們在多個實際場景中解決問題。
潛在風險
- 外部知識的局限性:盡管RAG依賴于外部知識,但這些知識庫(如維基百科)并不是完全真實或沒有偏見的。因此,模型生成的內容可能受到知識庫的偏見或錯誤信息的影響。
- 濫用風險:和其他高級語言模型(如GPT-2)類似,RAG也可能被用來生成有害或誤導性內容,比如在社交媒體上發(fā)布虛假新聞、冒充他人身份,甚至生成垃圾郵件或網(wǎng)絡釣魚內容。
- 自動化帶來的失業(yè)風險:隨著語言模型的進一步發(fā)展,它們可能在未來幾十年內自動化許多當前的工作,這也引發(fā)了潛在的社會問題。
為了應對這些風險,文中建議使用AI系統(tǒng)來對抗虛假內容和自動化的垃圾郵件生成,以減少RAG模型的負面影響。