# RAG 架構種類之分析與比較 > 論文:Retrieval-Augmented Generation for AI-Generated Content: A Survey ## 1. 表示方式的差異 Latent Representation-based RAG: 這種方法將查詢和資料都編碼為潛在表示(向量表示),這些潛在表示可以捕捉語義信息,不僅限於表面詞彙匹配。這樣的方式使系統能夠檢索出語義上相似但表面上可能不太相關的資料。因此,這種方法能夠提供更深層次的語義檢索,適合處理語義相似但詞彙不同的查詢。 ![image](https://hackmd.io/_uploads/SyTGJ-0jA.png) Query-based RAG: 這種方法則更直接地依賴於查詢的詞彙或詞組進行檢索。它通常使用查詢中的詞語來在資料庫中找到直接匹配的文本片段,然後再將這些片段傳遞給生成模型。這種方式更依賴於查詢與資料的表面詞彙匹配,檢索結果可能更精確,但在語義相似度處理上不如潛在表示方法強大。 ![image](https://hackmd.io/_uploads/HJVZkZCsC.png) Logit-based RAG: 是一種在檢索增強生成中結合檢索結果與生成模型的logit輸出(即未經softmax轉換的原始分數)的技術,通過結合logit,可以更精細地控制生成過程,特別是在需要權衡檢索結果與生成模型預測之間的情況。 ![image](https://hackmd.io/_uploads/HJVVyZRo0.png) Speculative RAG: 是一種用於加速生成過程的技術,目的是在維持生成品質的同時,顯著減少計算成本和生成時間。 1. 初步生成: 系統首先使用一個較小的、計算效率較高的模型生成初步的結果,這通常是一個快速生成粗略答案的模型。 2. 校正步驟: 之後,系統使用一個更大的、更精確的模型對初步生成的結果進行校正。這個過程中的“投機”部分在於,初步生成的結果可能已經包含了相當不錯的答案,因此不需要完全依賴大型模型從頭生成。 在校正過程中,Speculative RAG 使用初步生成的結果作為起點,這能夠顯著減少計算成本。 ![image](https://hackmd.io/_uploads/BJDH1WCsR.png) ## 2. 檢索過程的差異 Latent Representation-based RAG: 檢索過程中,查詢和資料都會被轉換為向量表示,檢索時基於向量空間中的相似度進行匹配。這樣的檢索方式能夠有效處理語義上的模糊匹配,適合應對語義豐富、表達多樣的查詢。 Query-based RAG: 在這種方法中,檢索過程更傾向於基於查詢中的詞語進行匹配,通常使用類似於BM25或TF-IDF的傳統檢索技術。這意味著系統會更側重於查詢中具體詞語的精確匹配,檢索的結果往往與查詢的詞語更為緊密相關。 Logit-based RAG: 系統首先檢索出與查詢相關的文檔,這一步與傳統RAG方法相同。 ## 3. 生成過程的差異 Latent Representation-based RAG: 檢索過程中,查詢和資料都會被轉換為向量表示,檢索時基於向量空間中的相似度進行匹配。這樣的檢索方式能夠有效處理語義上的模糊匹配,適合應對語義豐富、表達多樣的查詢。 Query-based RAG: 在這種方法中,檢索過程更傾向於基於查詢中的詞語進行匹配,通常使用類似於BM25或TF-IDF的傳統檢索技術。這意味著系統會更側重於查詢中具體詞語的精確匹配,檢索的結果往往與查詢的詞語更為緊密相關。 Logit-based RAG: 在生成答案時,logit-based RAG 引入了生成模型的logit值。logit值表示生成模型在每一步生成詞彙時的內部信心分數。系統將檢索出的文檔與生成模型的logit輸出進行結合,這種結合通常是通過一種權重化的方式進行的,將檢索結果的影響注入到生成過程中。(注意:很多LLM都沒有提供logit值) ## 應用場景 Query-based RAG 1. FAQ 系統:Query-based RAG 非常適合設計 FAQ 系統,在這些系統中,查詢往往與答案高度匹配。系統能夠快速檢索與查詢關鍵字直接相關的內容,生成準確且直接的回答。 優勢:能夠提供快速、精確的回應,特別是在查詢與資料庫中的答案有明確對應關係時。 2. 電子商務產品推薦:在電子商務中,當用戶搜索具體產品時,Query-based RAG 可以根據用戶輸入的關鍵詞快速檢索出相關產品資訊並生成推薦內容。 優勢:能夠根據用戶的具體需求,提供高度相關的產品推薦,提升用戶體驗。 3. 法律和合規查詢:當處理具體法律條文或合規規範查詢時,Query-based RAG 可以精確地匹配查詢中的法律條款或關鍵詞,提供明確且詳細的法律解釋或合規建議。 優勢:在法律和合規領域中,精確性和細節非常重要,這種方法能夠提供可靠的結果。 Latent Representation-based RAG: 1. 智能問答系統:在智能問答系統中,查詢可能包含模糊或變異表達,Latent Representation-based RAG 能夠透過語義匹配檢索出更相關的答案,適合處理開放性或模糊性的查詢。 優勢:能夠理解並回應更複雜的問題,提供更準確且語義相關的答案。 2. 知識管理系統:在企業或研究機構的知識管理系統中,Latent Representation-based RAG 能夠有效地從海量資料中提取出與查詢語義相關的知識片段,適合應用在專業性強、語義豐富的領域。 優勢:可以跨越不同表達形式,檢索出相似語義的知識內容,提升知識檢索的有效性。 3. 語義搜索引擎:Latent Representation-based RAG 可用於構建語義搜索引擎,這些引擎不僅依賴於關鍵字匹配,還能根據查詢背後的語義進行檢索,適合應用於需要深層次語義理解的搜索任務中。 優勢:能夠提供比傳統搜索引擎更深入、更準確的搜索結果,特別是在查詢語句與資料表達方式不一致的情況下。 Logit-based RAG 1. 複雜問答系統:當需要高度準確且與檢索結果緊密相關的生成內容時,logit-based RAG 是非常有效的。 2. 強化學習增強:在需要對生成模型進行強化學習時,logit-based RAG 可以通過logit值提供更多信息,以優化模型的學習過程。 Speculative RAG 1. 實時應用:Speculative RAG 非常適合需要快速響應的實時應用場景,比如實時對話系統、客服機器人等。 2. 資源受限的環境:在計算資源有限的情況下,Speculative RAG 可以在不顯著降低生成質量的情況下,實現高效的生成過程。 ## 總結 - Latent Representation-based RAG 更適合處理需要深層語義理解和模糊查詢的場景,例如複雜的知識問答系統。 - Query-based RAG 更適合處理要求快速、精確檢索的場景,例如FAQ系統,或者當查詢詞語與答案關聯性較高的情況。 - Logit-based RAG 注重生成階段的精細控制,通過結合logit值,使生成內容更加準確,適合需要高精度問答的場景。 - Speculative RAG 則側重於加速生成過程,通過初步生成和後續校正,實現資源效率與生成質量的平衡,適合需要快速回應的場景。