摘要?
????????使用大型語言模型(LLM)的檢索-增強生成(RAG)系統經常由于檢索不相關或松散相關的信息而生成不準確的響應。現有的在文檔級別操作的方法無法有效地過濾掉此類內容。我們提出了LLM驅動的塊過濾,ChunkRAG,這是一個框架,通過在塊級別評估和過濾檢索到的信息來增強RAG系統,其中“塊”代表文檔中較小的、連貫的部分。我們的方法使用語義分塊將文檔劃分為連貫的部分,并利用基于LLM的相關性評分來評估每個塊與用戶查詢的一致性。通過在生成階段之前過濾掉不太相關的塊,我們顯著減少了幻覺,提高了事實的準確性。實驗表明,我們的方法優于現有的RAG模型,在需要精確信息檢索的任務上取得了更高的精度。這一進步增強了RAG系統的可靠性,使它們對事實檢查和多跳推理等應用程序特別有益。?
1 引言
????????大型語言模型(LLMs)在檢索增強生成(RAG)系統的發展中取得了重大進展,這些系統將檢索機制與強大的語言模型相結合,基于外部知識生成回應。然而,盡管取得了這些進步,一個持續存在的問題仍然存在:在文檔抓取過程中檢索到的不相關或弱相關的信息。當前的檢索技術,包括重排和查詢重寫,不僅未能過濾掉檢索文檔中的大量不相關信息,而且還導致了一系列在生成的回應中事實錯誤、無關緊要和虛構的問題(Zhang等人,2023;Mallen等人,2023)。
????????傳統上,RAG系統檢索大量完整的文檔文本或其中較長的一部分,假設這些較長的片段很可能包含相關信息。這樣的系統很少單獨檢查檢索文檔的章節或段落,因此,不相關或只有部分相關的信息很可能流入生成階段。由于語言模型在生成文本時無法驗證所使用的信息,這種情況進一步惡化。相關或誤導性的信息片段嚴重扭曲了此類模型的輸出結果,降低了系統的可靠性,特別是在開放域問答和多跳推理等關鍵任務中(Ji等人,2023;Min等人,2023)。
????????圖1:該圖顯示,在沒有信息塊過濾(頂部)的情況下,不相關信息如其他法國城市被包含在回應中。然而,LLM驅動的信息塊過濾(底部)則移除了不必要的內容,精確地給出了答案,“法國的首都是巴黎。”
????????一些與檢索相關的方法,如Corrective RAG(CRAG)和Self-RAG,試圖通過改進檢索過程來克服這些障礙。CRAG專注于在檢索出錯后檢索“更正”,而Self-RAG在生成階段引入了自我反思機制以最小化不準確。這兩個過程都是在文檔層面上操作,并且對單獨檢索到的文本塊缺乏足夠的過濾。這種文檔級別的處理提高了檢索的整體相關性,但并未阻止不相關的信息塊被包含在生成的回應中(Shi等人,2023)。由于無法控制檢索內容的粒度,RAG系統在輸出中仍然容易融入不良或誤導性信息,最終損害性能。
????????解決這一挑戰的方法在于一種新穎的方法:LLM驅動的信息塊過濾,即ChunkRAG。我們的方法在比傳統系統更細的粒度上操作,實際上支持對檢索到的信息進行塊級過濾。我們的系統不僅針對用戶查詢,也針對檢索到的文檔中的各個信息塊。大型語言模型評估每個信息塊相對于用戶查詢的語義相關性;這使得系統能夠在信息塊進入生成階段之前就過濾掉不相關或弱相關的信息塊。這種塊級過濾反過來旨在通過對生成階段僅提取最相關信息來強制最終答案的事實準確性。這種方法對于知識密集型任務特別有前景,如多跳推理和事實核查:在這里,精確度是最終的目標。也就是說,在準確性至關重要的任務中,我們的方法表現最佳(Piktus等人,2021;Rony等人,2022)。?
?2 相關工作
????????解決大型語言模型中的幻覺問題 大型語言模型(LLMs)在理解指令和生成連貫文本方面取得了重大進展(Bang等人,2023;Qin等人,2023;Zhong等人,2023)。然而,它們仍然面臨著幻覺問題,即模型產生的輸出可能是錯誤或不合邏輯的。研究表明,激活過時或錯誤的知識是導致這個問題的主要原因(Tonmoy等人,2024;Zhang等人,2023b;Shuster等人,2021)。依賴于大型、未加規制的數據集、高質量訓練樣本比例低、輸入空間內數據分布次優等因素加劇了這些挑戰。精確和準確知識的缺失常常導致誤導或不準確的輸出,嚴重影響了實際應用中的用戶體驗。
????????檢索增強生成 檢索增強生成(RAG)已被提出作為一種有效的策略來減輕幻覺問題(Lewis等人,2020;Guu等人,2020)。通過將輸入查詢與來自特定語料庫(如維基百科)的檢索文檔相結合,RAG提供了額外的知識,增強了LLMs的性能,特別是在知識密集型任務中。這種方法涉及使用信息檢索系統為生成模型提供相關文檔。早期的實現要么在專注于響應生成的預訓練語言模型之前使用稀疏或密集檢索器。然而,這些方法常常忽視了一個關鍵問題:如果檢索過程失敗或檢索到不相關信息怎么辦?不相關的文檔可能會惡化模型輸出的事實錯誤,抵消檢索增強的好處。
????????檢索技術的進步 最近的發展旨在改進RAG方法以解決這些局限性(Zhang等人,2024;Kim等人,2024;Wang等人,2024;Liu等人,2024)。認識到檢索并不總是必要的——有時甚至會降低準確性——像SelfRAG(Asai等人,2024)這樣的方法包含了選擇性決定何時檢索信息的機制,為此目的使用批評模型。CRAG(Your等人,2024)是一種最近的方法,它通過解決低質量檢索結果的問題,增強了標準RAG的糾正策略,以提高檢索質量。Yoran等人(2024)引入了一種自然語言推理(NLI)模型來檢測并過濾掉不相關的上下文,增強了系統的魯棒性。SAIL(Luo等人,2023)微調模型以在處理指令之前插入檢索到的文檔,改善了外部知識的整合。Toolformer(Schick等人,2023)預訓練模型以與維基百科等API交互,實現動態訪問信息。在需要多次使用外部知識的長文本生成場景中,確定檢索的最佳時機變得至關重要。Jiang等人(2023)提出預測未來的內容需求,以決定在生成過程中何時以及檢索什么信息。
????????檢索到的信息中的冗余可能會通過引入重復或不相關信息來降低RAG模型的有效性,這阻礙了模型生成連貫和獨特響應的能力。一種流行的減輕冗余的方法涉及使用余弦相似度來評估并從檢索到的文檔中移除重復或過于相似的內容。
????????余弦相似度在冗余移除中的應用 余弦相似度測量內積空間中兩個非零向量之間的角度的余弦,這量化了兩個向量之間的相似性,而與它們的幅度無關。在RAG的背景下,它被用來比較檢索到的文本塊的特征向量,以識別和消除冗余內容,增強可用于生成的信息的多樣性(Liu等人,2023)。
????????針對多跳查詢的Multi-Meta-RAG 針對多跳查詢的挑戰,Multi-Meta-RAG引入了一種使用大型語言模型(LLMs)提取的元數據對數據庫進行過濾的機制。通過整合LLM提取的元數據,這種方法過濾數據庫以檢索更多相關的文檔,這些文檔有助于回答需要跨多個信息片段進行推理的復雜查詢(Smith等人,2023)。這種方法通過確保只考慮相關的文檔來減少冗余,從而提高生成響應的連貫性。
????????查詢重寫以增強檢索 提出了一種“重寫-檢索-閱讀”框架,以彌補輸入文本與必要檢索知識之間的差距(Johnson和Lee,2023)。一個可訓練的查詢重寫器使用來自LLM性能反饋的強化學習來調整查詢。這種方法通過重新制定查詢以更好地與相關文檔對齊,從而提高檢索準確性,從而最小化檢索到的冗余或不相關信息。
????????我們引入了一個新模型,ChunkRAG,該模型強調一種分塊策略,旨在進一步減少冗余并提高RAG模型的有效性。與最近的研究(Schick等人,2023;Luo等人,2023;Asai等人,2024,Your等人,2024)相比,我們的方法涉及將文檔分割成語義連貫且不重疊的塊,這些塊與查詢的特定信息需求更加對齊。?
3 方法?
????????這項工作的核心目標是減輕檢索增強生成(RAG)系統產生的響應中的不相關性和幻覺,使用一種新穎的細粒度過濾機制,該機制在將每個檢索信息塊集成到響應生成階段之前嚴格評估其相關性。我們提出的方法遵循兩階段的方法:語義分塊和高級過濾來優化檢索結果。每個階段的設計都是為了提高系統在利用檢索知識方面的精度和可靠性。下面,我們將詳細介紹我們提出的方法的組成部分。??
- 語義分塊:語義分塊是我們方法的基礎步驟,它將輸入文檔轉換為語義上有意義的單元,以促進有效的檢索和評估。這個階段包括三個子過程:
- 輸入準備:我們首先使用NLTK的sent_tokenize函數將文檔D分句。然后,每個句子都被分配一個嵌入向量,該向量是使用預訓練的嵌入模型(例如,text-embedding-3-small)生成的。
- 塊形成:根據它們之間的語義相似性,將連續的句子分組成塊,這種相似性是通過余弦相似度來衡量的。具體來說,如果連續句子之間的相似度低于一個閾值(θ = 0.7),就會創建一個新塊。每個塊進一步限制在500個字符以下,以確保后續階段的效率。
- 塊的嵌入生成:每個塊都使用上述相同的預訓練嵌入模型來表示。生成的塊嵌入存儲在向量數據庫中,以便在查詢階段進行高效的檢索。
- 混合檢索與高級過濾:在檢索和過濾階段,我們將傳統的RAG組件與高級微調技術相結合,以確保健壯和高品質的檢索。下面詳細介紹了混合檢索和過濾階段:
- 檢索器初始化與查詢重寫:我們初始化一個能夠將用戶查詢與塊嵌入進行比較的檢索器。為了提高查詢效率,我們使用GPT-4omini應用查詢重寫步驟,確保查詢與存儲的嵌入良好匹配。這確保了檢索過程中的更好召回率和精確度。
- 初始過濾:檢索到的塊最初是通過TF-IDF評分和余弦相似度的組合進行過濾的。具有高冗余度(相似度 > 0.9)的塊被消除。剩余的塊根據它們與重寫查詢的相似度進行排序。
- 相關性評分與閾值設定:為了進一步精煉相關性,每個塊都由大型語言模型(LLM)分配一個初始相關性分數。這些分數通過自我反思和批評模型進行細化,后者根據特定領域的啟發式方法調整分數。通過分析分數分布設定一個最終的動態閾值,只有超過這個閾值的塊被保留。
- 混合檢索策略:為了最大化檢索效果,我們采用雙檢索策略,結合BM25和基于LLM的檢索方法。這種集成方法使用等權重(各0.5)來平衡關鍵詞和語義檢索。此外,使用Cohere的重排模型(rerank-englishv3.0)對檢索到的塊進行排序,通過增強可能被降級的中部上下文的相關性,解決“迷失中間”的問題。
????????響應生成與評估 過濾后,剩余的塊被用作生成最終響應的上下文。步驟包括:
- 響應生成:LLM根據過濾后的上下文塊生成響應。在生成過程中,嚴格的約束確保只使用檢索到的信息,從而最小化幻覺的風險。
- 評估:生成的響應根據一組預先驗證的答案進行準確性評估。
????????我們的方法結合了語義分塊與高級檢索和過濾機制,顯著提高了RAG系統產生的響應質量,確保了生成內容的相關性和正確性。如下節所述的實證結果表明,我們的方法在各種檢索和生成場景中的有效性。?
4 實驗?
????????我們進行了實驗,以廣泛證明ChunkRAG的適應性及其在各種生成任務中的推廣潛力。然而,由于計算資源的限制,我們的評估主要集中在PopQA數據集上。?
4.1 任務和數據集?
????????ChunkRAG在PopQA數據集上進行了評估,該數據集是我們實驗分析的基礎。PopQA(Mallen等人,2023年)是一個為短格式問答設計的基準數據集。它包含了一系列多樣化的問題,這些問題需要簡潔準確的回答,使其成為評估像ChunkRAG這樣的檢索增強生成模型性能的理想測試平臺。
????????為了衡量ChunkRAG的有效性,我們采用了準確率作為評估指標,這與先前的研究保持一致。這個指標與PopQA評估中使用的慣例相符,確保我們的結果可以與現有研究進行比較。
????????雖然我們目前的實驗僅限于PopQA,但ChunkRAG在架構上是考慮到可擴展性的。未來的評估可能會擴展到其他數據集,例如用于長格式生成的Biography(Min等人,2023年)、用于真/假問答的PubHealth(Zhang等人,2023年)以及用于多項選擇題的Arc-Challenge(Bhakthavatsalam等人,2021年)。這些擴展將進一步驗證ChunkRAG在不同類型生成任務中的多功能性,前提是計算資源的可用性。?
4.2 基線?
4.2.1 無檢索基線?
????????我們首先評估了幾個沒有包含檢索機制的大型語言模型。在公共LLM中,我們包括LLaMA2-7B和LLaMA2-13B (Touvron等人,2023),它們以跨各種自然語言處理(NLP)任務的多功能性而聞名,以及Alpaca7B和Alpaca-13B (Dubois等人,2023),它們是針對有效遵循用戶提示進行優化的指令調整模型。此外,我們評估了CoVE65B (Dhuliawala等人,2024),它引入了旨在提高生成內容事實準確性的迭代工程技術。
????????對于專有模型,我們包括了LLaMA2chat13B (LLaMA2chat13B是為基于對話的應用程序定制的LLaMA2的會話變體)和ChatGPT (OpenAI的專有會話代理,以其強大的語言理解和生成能力而聞名)。
4.2.2 帶檢索的基線?
????????標準檢索增強生成(RAG)方法:為了建立檢索增強方法的基線,我們評估了標準的RAG方法。具體來說,我們采用了標準RAG(Lewis等人,2020年),該方法使用檢索器根據輸入查詢獲取相關文檔,然后將這些文檔輸入語言模型以生成響應。為了保持一致性,我們使用了與ChunkRAG相同的檢索器機制以確保公平比較。除了標準RAG之外,我們還評估了結合指令調整的LLMs與標準RAG,包括LLaMA2-7B、LLaMA2-13B以及Alpaca-7B、Alpaca-13B,以評估指令調整與檢索增強相結合的影響。
????????高級檢索增強生成:為了將ChunkRAG與更復雜的基于RAG的方法進行基準測試,我們包括了采用額外策略來提升性能的高級模型。SAIL(Luo等人,2023年)通過在Alpaca指令調整數據上對語言模型進行指令調整來增強標準RAG,將頂部檢索到的文檔插入到指令之前以提供上下文信息。Self-RAG(Asai等人,2024年)通過在指令調整數據中加入由GPT-4標記的反射令牌,進一步優化了RAG,使模型能更好地利用檢索到的信息。此外,我們還考慮了CRAG(Your等人,2024年),這是一種最近的方法,它通過增加糾正策略來增強標準RAG,通過解決低質量檢索結果來提高檢索質量。CRAG作為我們提出的ChunkRAG的直接比較,突出了我們的塊過濾機制在提升檢索增強生成方面的有效性。此外,我們還評估了結合私有數據的檢索增強基線,包括Ret-ChatGPT和RetLLaMA-chat,它們分別將檢索機制與ChatGPT和LLaMA2的對話變體相結合。?
5 分析?
????????在本節中,我們將對ChunkRAG與現有檢索增強生成(RAG)方法的性能進行評估。我們提出了一個基于從標準基準獲得的實證結果的分析?
5.1 評價指標?
????????我們使用準確性作為主要評估指標,以生成的回答與基本事實答案相匹配的百分比計算。?
5.2 對比與影響?
????????如表1所示,我們的方法達到了64.9的準確率,在同一類別中顯著優于所有基線。值得注意的是,與最接近的基線CRAG(54.9的準確率)相比,我們的方法性能提升了10個百分點。雖然10個百分點的提升看似是漸進的,但在實際應用中,它轉化為輸出效果的指數級改進。這一點在考慮錯誤率及其對整體用戶體驗的影響時尤為明顯。
????????在需要多跳推理或順序決策的應用中,錯誤可能會成倍增加。這種指數級的改進在復雜任務中尤其重要,因為在這些任務中,每增加一步都會成倍增加錯誤風險,這與OpenAI的高級模型如o1相關,其中語言模型利用多跳推理,在回答之前花費時間“思考”,使其在復雜推理任務、科學和編程方面更加高效。?
5.3 觀察和見解?
????????我們的技術取得的顯著改進主要是由于塊級過濾和細粒度相關性評估。我們將文本劃分為語義上有意義的塊,這減少了不相關或弱相關信息的產生。在處理塊濾波的上下文相關數據時,顯著增強了事實準確和連貫響應的生成。
????????此外,自反射式LLM評分方法,即模型對自身進行評分,然后進行相應的改變,使得檢索誤差顯著降低。與在文檔部分級別沒有過濾機制的常規檢索方法不同,我們的方法可以提取更有意義和相關的信息,這些信息直接影響所生成響應的可靠性。
5.4 未來工作?
????????在我們目前的研究中,我們只測試了PopQA,但ChunkRAG的設計是出于可擴展性的目的。在即將到來的評估中,我們還將引入新的數據集,包括用于長格式生成的Biography,用于真假問題的PubHealth,以及用于多項選擇題的Arc-Challenge。因此,這些試驗的實施將加強ChunkRAG對不同類型生成任務的多功能性和適應性的證據,盡管這將取決于計算資源的可用性。?
6 結論?
????????在本文中,我們介紹了ChunkRAG,一種新穎的LLM驅動的塊濾波方法,旨在提高檢索增強生成系統的精度和真實性。在我們對PopQA數據集進行的實驗中,ChunkRAG已經清楚地顯示出優于現有基線的優勢,因此實現了10個百分點的顯著性能提升,高于最接近的基準CRAG。塊級過濾技術保證在響應生成過程中只包含相關的和上下文正確的信息,從而提高了生成答案的可靠性和準確性。這種方法對于需要大量事實的應用程序特別有用,例如涉及許多相互依賴參數的多跳推理和決策。我們相信ChunkRAG是解決基于LLM的檢索系統中不相關或幻覺材料問題的一大步。?
7 局限性?
????????ChunkRAG盡管有好處,但也有一些需要考慮的缺點。首先,該方法很大程度上依賴于塊分割的有效性和用于塊相關性評估的嵌入的質量。初級劃分中的錯誤可能會產生不相關數據,這將降低響應的質量。其次,多層次評分的成本——在初始階段整合LLM和批評家LLM的評價——可能會很高,特別是在將該方法擴展到更大數據集或在實時系統中部署時。此外,盡管ChunkRAG在PopQA數據集的使用中展示了積極的結果,但由于資源限制,其在其他領域的可驗證性以及在長篇生成任務中的性能尚未經過徹底分析。未來的研究應該集中在優化ChunkRAG的計算效率,以及在不同的數據集和現實世界應用中的評估。
?
?
?
?