生活分享

重新排序(Reranking):從找得到到把好答案排在前面

重新排序會對第一輪搜尋找到的候選再做相關性判斷,常用來改善搜尋清單與 RAG 的上下文品質。本文用圖書館借閱規則示範檢索器和交叉編碼器如何分工,說明候選缺漏、輸入截斷、相關分數與真假判斷的差異。讀完能辨認該擴大檢索、修正文塊,還是增加重新排序,並用適合的測試避免為了排名改善付出不必要的等待。

更新日期: 閱讀時間約 7 分鐘

相同文件清單經交叉路徑交換位置,適用的條文移到前面
圖片:Mokaair (© Mokaair)

重新排序,英文 Reranking,指在第一輪搜尋取得候選之後,再用另一個排序步驟判斷哪些資料應放前面。它常用於搜尋與 ,讓速度較快的檢索器先縮小範圍,再把有限的候選交給較深入的相關性模型。這是一種分階段的資源分配:先找得到,再花力氣判斷先看哪個。

重新排序不是保證更準的按鈕,也不只能使用。交叉編碼器、學習排序模型與其他評分方法都可能擔任這個角色。本篇以 Sentence Transformers 的 Retrieve and Re-Rank 文件及 Elastic 的排序說明為基礎,透過虛構圖書館規則示範機制,將預期行為與實際測試成績清楚分開。

為什麼第一輪排名可能不夠

第一輪檢索常需要在大量資料中快速找出候選,因此可能使用預先計算的向量或全文索引。這些方式善於縮小範圍,但細微的適用條件、主詞與例外,有時需要把問題和文件放在一起仔細比較。重新排序把更多計算放在少數候選上,試圖改善最前面幾個結果的相關程度,而不必對整個資料庫逐篇做昂貴處理。

例如「學生證到期還能續借嗎?」和一般「如何續借」主題相近,第一輪可能把普通續借步驟排在前面。但真正需要的文件可能是帳號資格與到期限制。若後者已在候選中,重新排序有機會把它推前;若它從未被檢索到,後段評分再精細,也不能替不存在的候選創造原文。

交叉編碼器如何看一對文字

典型雙編碼器把問題與文件各自編碼,再比較向量;文件表示可預先建立,查詢時不用重新處理所有組合。交叉編碼器則把問題和候選文件一起送入模型,直接評估這一對文字的相關性。它可以利用兩者之間較細緻的互動,但每個候選通常都需要新的計算,這就是常放在第二階段的原因。

輸出的分數由模型與訓練目標決定,有些是未校準的數值,有些經轉換後落在某個區間。不能僅因分數看起來像百分比,就把它當成正確答案的機率。模型可能判斷某段非常切題,但原文已過時、使用者無權看,或內容本身有誤。相關性判斷與來源品質需要分別處理。

第一輪找到一般續借、預約排隊和證件到期段落,問題與各候選共同評分後把到期條件排前
重新排序只能處理已取得的候選,無法補回漏查的原文。 · 圖片:Mokaair (© Mokaair)

示範:把到期規則放到前面

假設輸入是「我的學生證已到期,借的書還能線上續借嗎?」候選包含一般續借步驟、預約排隊說明、證件到期處理及館藏介紹。重新排序器逐一評估問題與段落,合理期待是把證件到期條件和與續借相關的規則放前面,讓後續讀者或生成模型先看到決定答案的限制。這些候選與結果是本篇設計的教學情境。

好的最終回答仍要依原文描述。如果到期處理文件只說暫停新借,沒有說是否影響已借書續借,就不應自行補成禁止續借。此時重新排序可能已成功找到最相關文件,但資料還是不足。這個案例說明搜尋品質改善與答案完整,是兩個需要分開驗收的結果。

還可故意把正確條文放到候選之外,再重跑比較。若答案沒有改善,這是合理的機制邊界,不一定是重新排序模型品質差。相反地,正確段落已在候選卻始終被降到後面,就需要檢查輸入長度、問題格式、語言能力及模型是否適合規章檢索。測試設計要能分清這些失敗來源。

成本與文件處理同樣重要

候選越多,每一對問題與文件的計算通常越多,等待時間與運算需求也會增加。候選越少則可能漏掉正確資料,因此應用需要找出適合自己的範圍,而不是照抄別人的固定數字。若第一輪已能穩定把答案排在前面,增加重新排序可能帶來很小的收益,卻延長每次等待。

過長文件也是常見障礙。重新排序模型有輸入長度限制,若關鍵例外出現在截斷位置之外,評分就看不到它。可以調整分塊,保留文件標題與必要上下文,再測試結果。把整本手冊當成一個候選,不一定比有意義的段落更好;把每一句切得太碎,也可能讓模型無法辨識限制適用哪個物件。

什麼情況值得加這一層

可以先檢查第一輪搜尋的候選召回:正確資料是否常常已找到,只是順序不好。若是,重新排序較有明確的改善空間;若根本沒找到,就先處理索引、查詢、分塊或混合搜尋。評估時保留同一組候選,再比較加入前後的順序,才不會把候選範圍變動造成的提升誤歸因於排序模型。

測試問題應有相近主題但不同條件的對照,例如證件到期、書籍逾期與已有他人預約。也要加入無答案題,確認模型不會把最像的段落包裝成足夠依據。對 RAG 而言,除了看排名,還需檢查最後答案是否引用正確條文、是否保留未知事項。前段改善只有真正傳遞到讀者的答案,才算完成服務目標。

系統可儲存候選識別碼、第一輪排名、重新排序後排名及模型版本,方便抽查。若更新模型後某類問題退步,就能回到同一份資料重新分析。重新排序的定位是把有限注意力放在更相關的內容;它補強的是排序階段,並沒有取代資料治理、權限、事實查證或最後的人工判斷。若重新排序服務暫時無法使用,應用還需要事先決定是否退回原排序,並在紀錄中標明這次走了哪條路徑,才不會把降級結果誤認為新模型表現。還應檢查排序模型實際讀到的文字範圍。長條文若在輸入前被截斷,例外條款可能根本沒有進入模型;此時排序錯誤不是模型已讀懂但判斷失敗。記錄送入的段落與截斷位置,才能分辨要修復文件分塊、候選內容,還是更換排序方法。

概念對照;來源查證於 2026 年 9 月。
方法處理重點需要留意
第一輪檢索快速取得候選優先注意是否找齊
重新排序仔細比較候選與問題優先注意前列相關性
答案驗證核對主張與證據相關不代表真實或充分

  • 生活分享

    世界模型(World Model)是什麼:讓 AI 預測「接下來會怎樣」

    世界模型指 AI 內部用來預測「這樣做之後會怎樣」的模型,但這個詞至少有三種用法:強化學習代理在想像中練習用的環境模型、LeCun 主張預測抽象表示的架構路線,以及能隨操作即時生成畫面的互動環境。內容用示例說明怎麼在想像中規劃,並列出大型語言模型有沒有世界模型的正反研究,附讀新聞時的檢查問題。

  • 生活分享

    視覺語言模型(VLM)是什麼:讓 AI 讀圖片、再用文字回答

    視覺語言模型(VLM)能同時接收圖片與文字,再用文字回答。內容拆解視覺編碼器、連接層與語言模型三段結構,說明 CLIP、Flamingo、LLaVA 三篇論文各補上哪一塊,並和多模態 AI、文字生圖分清楚;也整理它常犯的錯:數錯數量、搞混位置、說出圖裡沒有的東西,附上讀收據時逐行核對的步驟。

  • 生活分享

    溫度(Temperature)是什麼:AI 回答變化程度的取樣參數

    溫度(temperature)是文字生成時調整取樣的參數,讓模型從下一個 token 的機率分布裡抽得更集中或更分散。用假想的台南早餐示例算出低溫與高溫的差別,說明 top-p 的來源和它與 top-k 的差別,並依官方文件與論文指出:調低溫度不代表更準,設成 0 也不保證每次相同,部分模型還不開放調整。

  • 生活分享

    合成資料(Synthetic Data)是什麼:兩種用途、品質控管與模型崩潰

    合成資料是由演算法或模型產生、模仿真實資料特徵的資料,常見用途有兩種:訓練模型,以及在隱私需求下替代真資料。內容依 Self-Instruct、模型崩潰研究(替換與累積資料的差別)與 NIST、ICO 的隱私文件,說明做法、抽查流程,以及它不能保證的事。

最新旅遊情報攻略

資料來源

生活分享