Improving the Domain Adaptation of Retrieval Augmented Generatio
URLs:?https://arxiv.org/abs/2210.02627v1

論文簡要 :
本研究旨在提高檢索增強(qiáng)生成(RAG)模型在開放領(lǐng)域問答中的領(lǐng)域適應(yīng)性。通過聯(lián)合訓(xùn)練RAG的檢索器和生成器組件,以及引入輔助訓(xùn)練信號,研究人員提出了RAG-end2end方法,該方法可以適應(yīng)特定領(lǐng)域的知識庫,并在COVID-19、新聞和對話三個領(lǐng)域的數(shù)據(jù)集上取得了顯著的性能提升。
背景信息:
論文背景: 開放領(lǐng)域問答(ODQA)是自然語言理解中的重要任務(wù),傳統(tǒng)的ODQA方法通常采用兩階段流程,包括檢索器和生成器。然而,對于許多實(shí)際場景,很難找到明確標(biāo)注的上下文-問題-答案三元組。最近,檢索增強(qiáng)模型(RAG)引起了研究人員的廣泛關(guān)注,它將檢索和生成階段合并為一個可微分的架構(gòu),并利用外部知識庫提取知識。
過去方案: 傳統(tǒng)的ODQA方法通常使用TF-IDF和BM25等稀疏向量方法進(jìn)行文檔檢索,而近年來研究人員開始使用密集文本表示來建模語義相似性。RAG是一種檢索增強(qiáng)架構(gòu),它結(jié)合了參數(shù)化和非參數(shù)化記憶,通過將問題編碼為密集表示,從索引的維基百科知識庫中檢索相關(guān)段落,并將它們輸入到生成器中。RAG在維基百科等知識庫上表現(xiàn)良好,但其在特定領(lǐng)域的適應(yīng)性尚不清楚。
論文的Motivation: 本研究的動機(jī)是探索如何提高RAG模型在特定領(lǐng)域的適應(yīng)性。作者通過聯(lián)合訓(xùn)練RAG的檢索器和生成器組件,并引入輔助訓(xùn)練信號,提出了RAG-end2end方法。通過在COVID-19、新聞和對話三個領(lǐng)域的數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),作者證明了該方法在領(lǐng)域適應(yīng)性方面取得了顯著的性能提升。
方法:
a. 理論背景:
本文旨在擴(kuò)展RAG(檢索增強(qiáng)生成)模型為端到端模型,并使其適應(yīng)特定領(lǐng)域。這是首次研究RAG在ODQA(開放領(lǐng)域問答)系統(tǒng)的領(lǐng)域適應(yīng)性。作者通過借鑒REALM模型,探索和擴(kuò)展了原始RAG架構(gòu)以實(shí)現(xiàn)領(lǐng)域適應(yīng)性。他們提出了一種異步更新機(jī)制,在訓(xùn)練過程中動態(tài)更新外部知識庫,有助于領(lǐng)域適應(yīng)。RAG模型由檢索器和生成器組成。檢索器是在基于維基百科的問答數(shù)據(jù)集上預(yù)訓(xùn)練的DPR(密集通道檢索)模型,而生成器是BART(雙向自回歸變換器)seq2seq語言模型。在訓(xùn)練過程中,檢索器進(jìn)行微調(diào),同時更新通道編碼器和外部知識庫。作者還引入了一個訓(xùn)練框架,包括主要訓(xùn)練循環(huán)、重新編碼過程和重新索引過程。重新編碼和重新索引步驟是異步進(jìn)行的,以避免訓(xùn)練循環(huán)的停頓。
b. 技術(shù)路線:
重新編碼過程完成后,始終開始重新索引過程。
外部知識庫的新索引加載到主要訓(xùn)練循環(huán)中。
在開始FAISS索引過程之前,第一個重新編碼過程應(yīng)該完成并保存新的嵌入。
使用Python多進(jìn)程句柄來保持重新索引和重新編碼過程的順序。
每個重新編碼過程之間的步驟數(shù)取決于數(shù)據(jù)集的大小。
在實(shí)驗(yàn)中,使用了由25萬個段落組成的知識庫和四個專用GPU進(jìn)行重新編碼過程。
平均需要750次更新,但使用更多的GPU和更高數(shù)量的CPU核心可以提高計(jì)算時間。
訓(xùn)練和知識庫的索引更新過程是異步運(yùn)行的,可能會導(dǎo)致過時的梯度,但不會顯著降低模型性能。
注:
eq 是問題編碼器(E Q)的縮寫,它是一個基于BERT的網(wǎng)絡(luò),用于將問題轉(zhuǎn)換為密集向量表示。
ep 是通道編碼器(E P)的縮寫,它也是一個基于BERT的網(wǎng)絡(luò),用于將知識庫中的段落轉(zhuǎn)換為密集向量表示。
FAISS索引是一種快速近似最近鄰搜索(FAISS)的索引方法,它可以高效地在大規(guī)模數(shù)據(jù)集上進(jìn)行向量檢索。
文中使用的索引是通過FAISS方法得到的,F(xiàn)AISS是一種快速近似最近鄰搜索(FAISS)的索引方法,它可以高效地在大規(guī)模數(shù)據(jù)集上進(jìn)行向量檢索。具體來說,文中使用了以下步驟來構(gòu)建和更新索引:
首先,使用通道編碼器(E P)將知識庫中的段落轉(zhuǎn)換為密集向量表示,并將這些向量存儲在一個FAISS索引中。
然后,在訓(xùn)練過程中,使用異步更新機(jī)制,定期重新編碼知識庫中的段落,并將新的向量替換舊的向量,從而更新FAISS索引。
最后,在檢索過程中,使用問題編碼器(E Q)將問題轉(zhuǎn)換為密集向量表示,并使用FAISS索引來快速找到與問題最相似的段落。
假設(shè)我們有一個包含100萬個段落的知識庫,每個段落都被轉(zhuǎn)換為一個256維的向量,并且被存儲在一個FAISS索引中。如果我們不使用索引,我們就需要將問題也轉(zhuǎn)換為一個256維的向量,并且與知識庫中的每個段落的向量進(jìn)行相似度計(jì)算,這可能需要100萬次的計(jì)算。如果我們使用索引,我們就可以利用FAISS索引的高效檢索算法,只需要進(jìn)行少量的計(jì)算,就可以找到與問題最相似的幾個段落的向量,并且返回它們對應(yīng)的段落內(nèi)容。這樣就可以大大提高檢索的速度和效率。
索引是一種將向量按照一定的規(guī)則組織起來的數(shù)據(jù)結(jié)構(gòu),它可以根據(jù)問題的向量表示,快速地找到與之最相似的向量表示,從而避免了在整個向量庫中進(jìn)行線性搜索的時間和資源消耗。
FAISS索引的檢索算法有多種,其中一種是基于倒排文件(IVF)的方法,它可以分為以下幾個步驟:
首先,對向量庫進(jìn)行聚類,將向量分成若干個簇(cluster),每個簇有一個中心(centroid)。
然后,對每個簇建立一個倒排列表(inverted list),記錄該簇中所有向量的編號和位置。
最后,在檢索過程中,先用問題向量與所有簇中心進(jìn)行比較,找出最近的n個簇(nprobe),然后在這些簇的倒排列表中搜索與問題向量最相似的k個向量(k)。
這種方法可以大大減少檢索的計(jì)算量,因?yàn)樗恍枰容^問題向量與n個簇中心和n*k個候選向量,而不是與整個向量庫進(jìn)行比較。當(dāng)然,這種方法也會犧牲一定的精度,因?yàn)樗赡軙雎缘粢恍┚嚯x問題向量較近但不在最近簇中的向量。
結(jié)果:
a. 詳細(xì)的實(shí)驗(yàn)設(shè)置:
本文在三個不同領(lǐng)域的數(shù)據(jù)集(COVID-19、新聞和對話)上評估了提出的方法。實(shí)驗(yàn)結(jié)果顯示,將DPR檢索器作為RAG-end2end機(jī)制的一部分進(jìn)行微調(diào),與單獨(dú)微調(diào)檢索器相比,整體結(jié)果更好。使用輔助信號也改善了檢索器組件和整體準(zhǔn)確性。性能改進(jìn)表明,在ODQA中使用RAG在專門領(lǐng)域中是可行的。
b. 詳細(xì)的實(shí)驗(yàn)結(jié)果:
提出的方法在三個不同領(lǐng)域的數(shù)據(jù)集上進(jìn)行了評估:COVID-19研究、對話和新聞。實(shí)驗(yàn)結(jié)果顯示,使用領(lǐng)域適應(yīng)的DPR檢索器對RAG-end2end機(jī)制進(jìn)行微調(diào),與單獨(dú)微調(diào)檢索器相比,整體結(jié)果更好。使用輔助信號也改善了檢索器組件和整體準(zhǔn)確性。性能改進(jìn)表明,在ODQA中使用RAG在專門領(lǐng)域中是可行的。