詳細解釋
在 RAG 中,對檢索到的長文檔進行智能壓縮,提取與查詢最相關的信息,減少傳給 LLM 的 token 數,降低成本並提升回答質量。
問題:
- 檢索文檔過長:可能包含大量無關信息
- 上下文窗口限制:無法塞入太多完整文檔
- 噪聲干擾:無關信息分散 LLM 注意力
壓縮方法:
- 基於 LLM 的壓縮:讓小模型提取關鍵句子
- 選擇性上下文:根據與查詢的相關性動態截斷
- 重排名:重新評估文檔片段,只保留高分部分
- 摘要:對長文檔生成簡短摘要
實現方式:
- 兩階段:先檢索,再壓縮,最後生成
- 增量壓縮:根據生成進程動態選擇下一批文檔
- 語義壓縮:保留語義完整的最小子集
工具支持:
- LangChain:ContextualCompressionRetriever
- LlamaIndex:Node Postprocessors
- 自定義:結合重排序模型和截斷邏輯
好處:
- 成本:減少 LLM 調用的 token 數
- 質量:減少無關信息干擾
- 速度:處理更少內容更快
- 覆蓋:能在有限窗口內包含更多文檔
與普通截斷的區別:
- 普通:固定長度切斷,可能丟失關鍵信息
- 壓縮:智能選擇保留最相關部分
這是「高效 RAG」的關鍵技術—— 不是檢索更多,而是檢索更精。