RAG Fusion:解決RAG的局限性

2024年2月6日 40点热度 0人点赞

隨著 NLP 和生成 AI 領域的最新進展,RAG(檢索增強生成)的引入有望通過結合基於檢索的模型和序列到序列的強大功能,對 BERT Chat GPT 等現有技術進行改進。 架構。 RAG 是一個人工智能框架,旨在通過建立外部知識源模型來提供 LLM 的內部信息表示,從而提高 LLM 生成的響應的質量。

然而,由於 RAG 的一些缺點,它需要升級以實現其潛在的增強功能,這就是 RAG Fusion 的用武之地。讓我們了解 RAG 和 RAG Fusion,它們都圍繞著使用矢量搜索和生成式 AI 來徹底改變搜索和信息檢索,以提供 基於真實數據的直接答案。

NSDT工具推薦: Three.js AI紋理開發包 - YOLO合成數據生成器 - GLTF/GLB在線編輯 - 3D模型格式在線轉換 - 可編程3D場景編輯器 - REVIT導出3D模型插件 - 3D模型語義搜索引擎 - Three.js虛擬軸心開發包

1、了解檢索增強生成

檢索增強生成(RAG)是一種將超大型預訓練語言模型的功能與外部檢索或搜索機制相結合的方法。 RAG 背後的想法是通過允許生成人工智能模型在生成過程中從大量文檔中提取信息來增強生成人工智能模型的能力。

要了解 RAG 如何提高LLM即時響應生成的可信度,其工作原理如下:

  • 檢索步驟——當用戶輸入提示或向生成式 AI 模型提出問題時,RAG 模型會從大型語料庫中檢索一組相關文檔或段落。 它是通過通常基於文檔和查詢的密集向量表示的檢索機制來實現的。
  • 生成步驟——檢索到相關段落後,將其提供給生成式 AI 模型以及原始提示或查詢。 該模型利用其預先訓練的知識和從段落中檢索到的信息來生成響應。
  • 訓練 - 在此階段,檢索和生成組件都在下遊任務上進行端到端微調,並且模型可以根據生成的響應質量學習改進和增強其檢索選擇。

來源:AWS

上圖闡明了 RAG 模型的機制,需要註意的是,增強提示的外部數據可以來自多個數據源,例如文檔存儲庫、數據庫或 API。 然而,關鍵的步驟是將文檔轉換為兼容的格式以執行相關性搜索。

使用嵌入語言模型將文檔集合或知識庫以及用戶提交的查詢轉換為數字表示,以使格式兼容。 嵌入是在向量空間中為文本提供數字表示的過程。 RAG 模型架構比較用戶查詢在知識庫向量中的嵌入,並提取具有相似上下文的文檔。 下圖代表了最原始的檢索增強生成模型架構。

RAG架構

與單獨工作的大型語言模型相比,RAG 具有顯著的優勢,可以生成最佳的即時響應。 以下是檢索增強生成的一些好處:

  • 使用最新的最新信息進行高質量響應。
  • 更少的計算和存儲
  • 減少幻覺

盡管有很多優點,但 RAG 還存在一些需要解決的挑戰,以確保答案符合道德事實和正確性:

  • RAG 依賴於外部知識,並且可能由於不正確的信息而產生不準確的結果。
  • 從外部資源獲取數據可能會引發敏感數據的隱私和安全問題; 但是,使用文檔級訪問可以限制對特定文檔的訪問。
  • 現有的搜索技術,如基於檢索的詞匯搜索技術和向量搜索技術,對RAG 模型造成了限制。
  • 毫無疑問,人類在將所需內容寫入搜索引擎時效率不高,拼寫錯誤、模糊查詢和有限詞匯會導致錯過頂級結果之外的大量信息。
  • 線性范式缺乏深入了解人類查詢本質的效率。 線性方法無法捕獲復雜的用戶查詢,導致搜索結果效率低下。

2、RAG Fusion簡介

RAG Fusion (Raudaschl, 2023) 提供了解決 RAG 模型局限性的最佳解決方案。 不同的限制,例如人工搜索效率低下和搜索過於簡單化,會導致相關性較低的結果; 然而,借助 RAG Fusion,人們可以輕松克服這些限制。 它通過生成多個用戶查詢並使用倒數排名融合等策略對結果進行排名來克服挑戰。 這種臨時技術彌合了用戶查詢與其預期含義之間的差距。

RAG Fusion 技術使用編程語言、向量搜索數據庫、具有查詢生成功能的LLM以及結果重新排名步驟。 倒數排名融合 (RRF) 是一種數據重新排名技術,用於無縫組合不同查詢的結果。 其目的是將搜索結果組織成統一的排名,提高相關信息的準確性。

為什麼選擇 RAG 融合?

開發 RAG 更新模型(即 RAG Fusion)背後的核心概念是理解復雜人類查詢的細微差別,而不需要更高級的LLM。 RAG Fusion 通過生成多個查詢並對結果重新排名,輕松解決 RAG 固有的約束。 此外,它還利用 RRF 和自定義向量評分加權來獲得全面且準確的搜索結果。

它渴望彌合用戶明確提出的問題和他們打算做的事情之間的差距,向揭示隱藏的變革性知識又近了一步。

RAG Fusions 使用與 RAG 相同的技術:Python 語言、矢量搜索數據庫(如 Elasticsearch 或 Pinecone)以及大型語言模型(如 ChatGPT)。 RAG Fusion的工作方法與RAG相同; 但是,還有一些額外的步驟(例如查詢生成和結果重新排名)可以改善響應質量。

它的工作原理如下:

  • 通過LLM將用戶的查詢翻譯成相似但不同的查詢來執行查詢重復
  • 初始化原始查詢及其生成的相似查詢的向量搜索,多個查詢生成。
  • 使用RRF 合並並細化所有查詢結果。
  • 選擇新查詢的所有熱門結果,為LLM提供足夠的材料,以根據所有查詢和重新排序的結果列表創建輸出響應。

3、RAG Fusion 背後的復雜性 — RRF

RRF(即倒數排名融合)是一種圍繞組合多個搜索結果以產生單個統一排名的技術。 單個查詢無法涵蓋用戶查詢的所有方面,並且可能過於狹窄而無法提供全面的結果; 這就是為什麼多個查詢生成必須考慮所有不同的元素並提供精心策劃的答案。

RRF 的工作原理是結合不同搜索查詢的排名,並增加所有相關文檔出現在最終結果中的機會。 此外,它不依賴於搜索引擎分配的絕對分數,而是依賴於相對排名,因此將具有不同尺度或分數分佈的結果組合起來變得實用。

來源:: Adrian H. Raudaschl

上圖由 Raudaschl,2023 年拍攝,代表了倒數排名融合位置重排名系統算法。 如圖所示,函數 reciprocal_rank_fusion 接受一個搜索結果字典,其中每個鍵都是一個查詢。 該鍵對應的值是一個文檔 ID 列表,按其與查詢的相似度進行排序。 RRF 算法根據每個文檔在不同列表中的排名計算新分數,並對它們進行排序以創建最終的重新排名結果。

來源:Reciprocal Rank Fusion outperforms Condorcet and individual Rank Learning Methods

RRF 根據簡單的評分公式對文檔進行排序。 上式中,集合D代表給定的待排序文檔和一組排序R,每個排序都是1..|D|上的排列,k設置為60。

計算融合分數後,該函數根據分數對文檔進行降序排序,並返回最終的重新排名列表。

為了確保多個查詢不會偏離用戶的意圖,模型被指示在提示工程中給予原始查詢比後續多個查詢更多的權重。 重新排序的文檔和查詢將提供給 LLM,其工作原理與 RAG 類似,通過要求響應或摘要來生成生成輸出。

4、RAG Fusion 的優缺點

與 RAG 模型相比,RAG Fusion 具有以下優勢:

  • 隨著搜索深度的擴大,源材料的質量也會提高。
  • 它提供與用戶的輸入查詢產生共鳴的整體輸出,以響應其信息需求的多方面表示。
  • 它通過從不同文檔中提取信息來創建組織良好且富有洞察力的答案。
  • 它執行隱式拼寫和語法檢查並細化搜索查詢以提供準確的搜索結果。
  • 該系統充當語言催化劑,將復雜的查詢分解為易於矢量搜索管理的小塊。
  • 它增加了發現用戶無意的信息的可能性,但它很有幫助。

每一個強大的事物或算法都伴隨著一系列限制,RAG Fusion 也不例外。 缺點隻有兩個:

  • RAG Fusion 模型通過生成多個查詢來達到查詢深度的能力可以提供詳細的答案,更像是一個過度解釋的答案。
  • 多查詢輸入和多樣化的文檔集會給語言模型的上下文窗口帶來壓力,導致輸出不太連貫。

5、結束語

將 RAG Fusion 模型與 LLM(大語言模型)集成是一種創新方法,可以通過可靠的引用即興做出即時反應。 RAG Fusion 輕松克服 RAG 模型的局限性並提高其性能。 Adrian H. Raudaschl 提出的 RAG Fusion 想法仍處於實驗階段,旨在使搜索更加智能和上下文感知,幫助獲取手動或使用傳統LLM無法找到的更豐富、更深入的信息層。 此外,一些道德問題與 RAG Fusion 相關,因為操縱用戶的原始查詢來改善結果可能就像步入道德灰色地帶。 這就是為什麼必須保持人工智能模型的透明性,並控制投入人工智能的數量和成本。


原文鏈接:RAG Fusion簡明教程 - BimAnt