RAG 與知識庫

Re-ranking 重排序是什麼?先廣撒網,再精準挑

Re-ranking 重排序,是在檢索之後加的一道精挑步驟。先用快但粗略的方式撈出一批候選文件,再用更強但較慢的重排序模型,對這批候選重新打分排序,把最相關的內容排到最前面。它只對少數候選精排,是兼顧效率與品質的關鍵一步。
Re-ranking 重排序是什麼?先廣撒網,再精準挑:文章重點卡

Re-ranking 重排序是什麼?先廣撒網,再精準挑

知識庫問答明明資料都有,答案卻總是抓到半相關的段落。多半不是資料的問題,是排序的問題。

重排序解決的就是這件事。檢索負責「廣」,重排序負責「準」,兩段分工之後,最終回答的品質會明顯不一樣。

你將學到什麼

定義

對初步檢索出的候選結果,用更強的模型重新打分排序,把最相關的排到最前面。

白話比喻

像履歷篩選。先用關鍵字刷掉大部分,再讓主管細看剩下的幾份,決定誰排第一。

跟誰容易搞混

跟檢索不同。檢索是把候選找出來,重排序是決定這批候選誰最相關。

定義

Re-ranking 重排序,是在向量檢索之後加的一道步驟。先用快速但相對粗略的檢索模型找出一批候選文件,再用更強大的重排序模型,對這些候選做更精準的相關性打分,重新排序。

在知識庫問答的完整流程裡,它排在第三步:使用者提問、初步檢索、重排序、取前幾筆高品質內容、交給模型生成最終回答。

一句話記住分工:檢索負責「廣」,重排序負責「準」。

白話比喻

像招募流程。第一關用關鍵字快速刷掉大部分履歷,留下五十份;第二關主管一份一份細看,決定誰進面試。第一關要快,第二關要準,兩關的工具本來就不該一樣。

效果差在哪?初步檢索的分數往往很接近,第一名和第五名只差零點零幾,排序其實不可靠。重排序重新打分之後,真正最相關的那筆才會浮上來。

檢索跟重排序差在哪?

比較點初步檢索重排序
目標快速找出可能相關的集合精準判斷哪些最相關
編碼方式查詢與文件各自獨立編碼查詢與文件一起編碼,理解更深
速度非常快,毫秒級較慢,百毫秒到秒級
成本較高
輸出量候選數十到上千筆精排後留下數筆到數十筆
角色召回精排

實際用例

以一個健康知識庫為例。使用者問「怎麼改善睡眠品質」,初步檢索撈回五筆,分數從零點七幾到零點八幾,排第一的其實是相關度較低的那筆。重排序之後,真正談改善方法的那篇被推到第一,回答品質立刻不同。

要不要加這一段?如果你的知識庫問答常常「資料明明有卻答不到重點」,加重排序是最直接的改善。搭配 混合搜尋 一起用,召回與精排都補齊,效果更明顯。

常見誤解第一個誤解是以為重排序可以取代檢索。它不行,它處理不了整個資料庫的規模,只能對少數候選精排。第二個是候選撈太少,初步檢索只取前五筆,真正的答案根本沒進候選名單,後面排得再準也沒用。
本文源起本文內容出自酒Ann 的「AI 實戰陪跑班」課程教材,由酒Ann 編寫成彙編條目。想系統性搞懂 AI 名詞,歡迎追蹤 酒Ann 的 Facebook

延伸學習

把這篇文章分享給需要的人FacebookLINEThreadsX

常見問答

為什麼不直接用重排序模型檢索?
太貴也太慢。重排序模型把查詢與文件一起編碼,精準但速度是百毫秒到秒級;向量檢索是毫秒級。所以先用便宜的方式撈候選,只對少數候選做精排,才划算。
候選要撈幾筆,重排序後留幾筆?
常見的實務區間是初步檢索取五十到兩百筆,重排序後取五到二十筆送給模型生成。實際數字要依場景調整,在成本與效果之間找平衡,並定期評估效果。
有哪些重排序模型可以用?
三類:交叉編碼器類的開源模型、用大型語言模型直接做相關性判斷、以及商用的重排序 API 服務。開源模型可本地部署、成本可控,商用服務高效易用,依需求選。