詳細解釋
重排序(Re-Ranking)是在初步檢索後,用更精確的模型對候選結果重新排序的技術,提升檢索增強生成 (RAG)的檢索質量,平衡效率和精度。
兩階段檢索:
- 第一階段(召回):
- 快速檢索大量候選(如top-100)
- 使用高效索引(HNSW等)
- 犧牲精度換取速度
- 第二階段(精排):
- 對候選用精確模型重排
- 選出最終top-k(如top-5)
- 提高最終結果質量
重排序模型:
- 交叉編碼器(Cross-Encoder):
- 將查詢和文檔一起輸入模型
- 計算相關性分數
- 精度高但計算慢
- 雙編碼器改進:
- 更強的embedding模型
- 微調於特定領域
常見模型:
- Cohere Rerank:專用重排序API
- BGE Reranker:開源重排序模型
- Cross-Encoder MSMARCO:標準實現
- ColBERT:late interaction高效重排
優勢:
- 精度提升:顯著提高檢索準確性
- 效率平衡:不對全庫精排
- 靈活:可選擇不同精排模型
- 可解釋:提供相關性分數
應用場景:
- 檢索增強生成 (RAG):提升文檔檢索質量
- 搜尋引擎:結果精排
- 推薦系統:候選精排
- 電商搜索:商品排序
實現策略:
- 級聯:多個精排階段(由粗到精)
- 動態:根據查詢複雜度決定是否重排
- 預算控制:限制重排序候選數
評估:
- MRR(Mean Reciprocal Rank):首位相關性
- NDCG:考慮排序位置
- 延遲:重排序增加的時間
重排序是高質量檢索系統的標準組件。