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