RAG常見13種分塊策略大總結(一覽表) 原創(chuàng)
分塊策略在RAG中至關重要,目的是提高效率、相關性和上下文保持。分塊能減少計算開銷,增加檢索相關信息的可能性,同時保持信息完整性。但也存在風險,如上下文丟失、冗余和不一致性。選擇策略需考慮文檔類型(結構化 vs 非結構化)、查詢復雜性、資源可用性和期望結果(速度 vs 準確性 vs 上下文)。
以下是13種獨特分塊策略的詳細描述,按策略名稱、描述、優(yōu)點、缺點和實施建議。僅供參考。
策略名稱 | 描述 | 優(yōu)點 | 缺點 | 實施建議 |
固定長度分塊 | 將文本按預定義長度(如基于令牌或字符)分割,適合簡單文檔或快速處理。 | 簡單性、統(tǒng)一性、效率 | 上下文丟失、相關性問題、潛在信息丟失 | 選擇合適大小,考慮使用重疊窗口以保持上下文 |
基于句子的分塊 | 按句子邊界分割,確保每個塊是完整的思想,適合短響應如客戶查詢。 | 保持上下文、易于實現(xiàn)、更好的可讀性 | 塊大小不一致、不適合長句、控制力弱 | 使用NLP庫檢測句子,必要時合并短句 |
段落分塊 | 將文檔按段落分割,每個段落通常包含完整想法或主題,適合結構化文檔。 | 更豐富的上下文、邏輯分割 | 大小不一致、可能超出行牌限制 | 監(jiān)控塊大小,必要時分割大段落以保持上下文 |
文檔分塊 | 將整個文檔視為一個塊或最小分割,保持完整結構和上下文,適合法律或醫(yī)學文檔。 | 保持完整上下文、適合結構化文本、簡單 | 可擴展性問題、效率低、缺乏細節(jié)提取 | 適用于不希望分割影響流程的場景 |
滑動窗口分塊 | 通過滑動窗口創(chuàng)建重疊塊,確保相鄰塊共享內容,適合需保持跨部分上下文的文檔。 | 上下文連續(xù)性、提高檢索效果 | 冗余、計算成本高 | 優(yōu)化窗口大小和重疊,使用去重技術處理冗余 |
語義分塊 | 使用嵌入或機器學習模型按語義意義分割,確保每個塊主題連貫。 | 上下文相關性、靈活性、提高檢索準確性 | 復雜性、處理時間長、計算成本高、閾值調整 | 利用預訓練模型,平衡成本和粒度 |
遞歸分塊 | 使用層次分隔符或多個分隔符逐步分割為小塊,適合大型結構化文檔。 | 層次上下文、可擴展性、意義塊、細粒度控制 | 實現(xiàn)復雜、可能丟失上下文、復雜性高、計算開銷大 | 使用文檔結構標識層次,存儲塊位置元數據 |
上下文增強分塊 | 為每個塊添加周圍塊的摘要或元數據,保持序列間的上下文,適合長文檔。 | 增強上下文、提高連貫性 | 復雜性、存儲開銷大 | 生成簡潔摘要,考慮用關鍵術語或概念作為元數據 |
模式特定分塊 | 按內容類型(如文本、表格、圖像)分別處理,每個類型按其性質分塊。 | 定制方法、提高準確性 | 實現(xiàn)復雜、集成困難 | 使用OCR處理圖像,將表格轉為結構化數據,保持索引一致 |
代理分塊 | 使用AI(如大型語言模型)按內容結構和語義建議塊邊界,或按代理角色任務組織。 | 任務導向效率、聚焦相關數據、靈活性、智能分割 | 復雜設置、計算密集、成本高、可能過分專業(yè)化、丟失全局上下文 | 選擇性使用,優(yōu)化LLM提示,明確代理角色和任務規(guī)則 |
子文檔分塊 | 總結整個文檔或大節(jié)并將摘要作為元數據附加到單個塊,適合大型文檔集。 | 層次檢索、上下文深度 | 額外處理、元數據管理復雜 | 自動化摘要生成,高效存儲摘要 |
混合分塊 | 結合多種分塊策略,動態(tài)適應不同查詢類型或文檔結構,適合多用途系統(tǒng)。 | 靈活性、優(yōu)化性能 | 邏輯復雜、維護難度大 | 制定選擇策略的標準,廣泛測試以確??煽啃?/p> |
基于令牌的分塊 | 按預定義令牌數(如單詞或子詞)分割,確保塊在模型令牌限制內。 | 優(yōu)化語言模型、精確控制塊大小、一致性 | 上下文碎片化、忽略語義結構、靈活性有限 | 確保塊在模型令牌限制內 |
選擇策略時需考慮以下因素:
- 文檔類型:結構化(如報告)適合段落分塊,非結構化(如聊天記錄)適合語義分塊。
- 查詢復雜性:復雜查詢需語義或代理分塊,簡單查詢可用固定長度分塊。
- 資源可用性:計算資源有限時,優(yōu)先固定長度或基于句子的分塊。
- 期望結果:速度優(yōu)先選固定長度,準確性優(yōu)先選語義分塊,上下文優(yōu)先選滑動窗口。
公眾號大模型自然語言處理 作者:余俊暉
原文鏈接:??https://mp.weixin.qq.com/s/QXI9Ppd0rBVAL86khPDq1w??
