模型層 開放閱讀

重排序

Reranking

概念 ID
reranking
更新時間
2026-05-29
來源數量
待補

重排序

3秒看懂

重排序(Reranking)是在初篩候選集上,用更精準但計算成本更高的模型進行二次排序,把最相關的結果推到前面。它不替代檢索,而是在成本與效果間尋找最優平衡點,是搜尋、推薦以及檢索增強生成(RAG)鏈條中的關鍵質量閥門。

3分鐘產業解釋

現代搜尋與 RAG 系統普遍採用“粗排+精排”兩級或多級漏斗架構。第一階段通過向量檢索(Bi-encoder、ANN 索引)或詞法檢索快速召回 Top-K(通常幾十至幾百條)候選文件,延遲控制在毫秒級。第二階段引入重排序模型(Reranker),對每個 Query-Candidate 對進行更細膩的語義匹配打分,然後按新分數截斷並輸出最終候選(如 Top-10),供給下游生成或展示。
這種設計源於一條根本權衡:向量檢索速度快但忽略了 query 與文件之間的細粒度互動,精度天花板明顯;而基於 Cross-encoder 或類似深層互動的模型精度高但推論成本隨候選數量線性增長,無法直接對海量全庫打分。重排序把“精準”壓縮在後置小視窗內,使系統整體在效果、延遲與資源之間取得最優折衷。
業界常見落地形態:Cohere 的 Rerank API、Jina Reranker、BGE-Reranker 系列、HuggingFace 上大量基於 MiniLM/BERT 的 cross-encoder 微調模型,以及 ColBERT 等晚期互動範式。在 RAG 管線中,重排序通常位於檢索器與生成器之間,直接決定進入大型模型上下文的文本質量。

15分鐘專家深入

兩階段的數學本質

第一階段檢索可抽象為:給定查詢 q 和文件全集 D,通過獨立編碼器 f_q,f_d 求得嵌入向量,利用內積或餘弦相似度快速取 Top-k 候選集 C = \{d_1,...,d_k\}。這本質是一個最大內積搜尋(MIPS)問題,表示能力受限於點積的淺層互動。
重排序階段引入深互動評分函式 s(q,d;\theta),該函式通常基於 Transformer 交叉注意力機制,將 q 與 d 文本拼接後送入預訓練語言模型,取 [CLS] 或池化層輸出經線性頭得到相關性分數。對候選集中每對 (q,d) 獨立評分,然後按分數降序重排得到最終列表 R = sort(C, s)

訓練範式

  • Pointwise:將問題視為二分類或迴歸,對每個 (q,d) 獨立預測相關性標籤(如 0/1 或 0-4 分),常用交叉熵或均方誤差損失。實現簡單,MRR/NDCG 效果穩健,但對排序位置懲罰不敏感。
  • Pairwise:最佳化相對序,要求正例分數高於負例。經典 RankNet 使用交叉熵損失比較配對分數差;LambdaRank 進一步引入 NDCG 梯度資訊,用 Lambda 梯度提升排序質量,直接最佳化排序指標。
  • Listwise:直接最佳化整條列表的排序指標,如 ListNet、ListMLE、近似 NDCG 損失(ApproxNDCG)。訓練更復雜但理論上更貼合最終評價目標。

推論與部署關注點

  • 延遲疊加:重排序引入的時延約等於模型單次推論耗時 × 候選數。典型 cross-encoder(如 22.7M 引數的 MiniLM-L6)在 GPU 上一對推論約 2-10ms,對 100 條候選可增加 200-1000ms,需對候選數進行限制或採用批次最佳化。
  • 模型效率最佳化:知識蒸餾(用大型模型 cross-encoder 蒸餾 6 層 MiniLM)、量化 int8/float16、運算元融合、動態 batching 等均可顯著壓低推論成本。
  • 多階段重排:部分系統在粗排與最後精排之間再插入“輕量級重排”(如 Poly-encoder、輕量 cross-encoder),形成三階段流水線,進一步寬進嚴出。

技術原理(最深,含機制與關鍵引數)

score function 的兩種主流結構

A. Cross-encoder(全互動)

[CLS] query [SEP] document [SEP]
→ Transformer 層(共享 attention 在 q 與 d 之間)
→ 取 [CLS] 或 mean pooling → 線性分類頭 → 得分 s ∈ ℝ

所有 token 之間都能相互注意,因而刻畫 q-d 細粒度匹配能力強,評估基準上大幅優於雙塔。缺點是無法離線對文件預編碼,每次查詢都需要重新編碼所有候選,複雜度 O(k × L²),其中 L 為拼接後序列長。
主流開源模型:cross-encoder/ms-marco-MiniLM-L-6-v2(約 22.7M 引數,MS MARCO 上 MRR@10≈0.386)、cross-encoder/ms-marco-TinyBERT-L-2-v2。

B. Late interaction (ColBERT 範式)

query: q₁...qₙ → 歸一化向量 Q∈ℝⁿˣᵈ
document: d₁...dₘ → 歸一化向量 D∈ℝᵐˣᵈ
得分 s(q,d) = Σ_𝑖 max_𝑗 Q_𝑖ᵀ D_𝑗  (MaxSim)

文件側向量可離線預計算,索引中僅存經壓縮的 token 級嵌入(如每 token 32 維)。查詢時線上計算 query 嵌入並與文件 token 集合進行互動求和。保留了一定程度詞級對齊,同時避免重複編碼全文。延遲優於 cross-encoder 但弱於雙塔,精度接近 cross-encoder。代表性工作:ColBERTv2。

C. Listwise 重排(LLM 介入)
近期 RankGPT、RankVicuna 等方法將排序視為文本生成任務,使用大語言模型(LLM)直接輸出排列順序或生成相關性判斷。效果可以極強,但成本與延遲高,適用於極小候選集(如 ≤ 20)。

關鍵超引數與策略

  • 候選集大小 k:典型值 50~200。k 越大召回天花板越高,但重排成本線性增長。實踐中常依據延遲預算決定。
  • 截斷策略:重排後保留 Top-n,如 5~10,直接輸入大型模型或用於展示。
  • 截斷前與截斷後的一致性:若後續模組對位置敏感(如 RAG 中 LLM 的 lost-in-the-middle 現象),可在重排分數基礎上結合位置偏置微調。

ASCII 圖:兩階段流程的資料流

+----------------+                          +-----------------+
|   使用者查詢     |--向量化/詞法化-->        |  粗排召回引擎   |
+----------------+                          |  (ANN/BM25)    |
                                               /       \
                              候選集 Top-100 (文件1..100)
                                                |
                                                v
                                        +------------------+
                                        |  重排序模型      |
                                        | (Cross-encoder) |
                                        +------------------+
                                                |
                                   得分排序,截斷取 Top-5
                                                |
                                                v
                                        +------------------+
                                        |   生成/展示     |
                                        +------------------+

技術演進史

  • 傳統 LTR 時代(2000s):特徵工程(詞頻、TF-IDF、PageRank 等) + LambdaMART/Gradient Boosted Tree 進行排序,廣泛應用於搜尋引擎,依賴人工特徵,對語義匹配力弱。
  • 雙塔召回興起(2010s 末):基於 BERT 等預訓練模型的雙編碼器成為主流粗排,但點積互動限制排序精度,催生“粗排 + 精排”兩級思路。
  • Cross-encoder 精排普及(2020~):微軟 MS MARCO 基準的推出和 HuggingFace 生態使 fine-tune cross-encoder 極其便捷,Nogueira 等用 BERT 對 BM25 召回進行重排,效果顯著。隨後 6 層 MiniLM 蒸餾版成為工程首選。
  • 晚期互動與索引化(2020-2022):ColBERT 提出“可索引的深層互動”,在精度與延遲間取得突破,ColBERTv2 進一步壓縮 token embedding 降低儲存。
  • 衍生與多元化(2023~):多語言重排(BGE-M3 的 dense+sparse+colbert)、LLMreranker(RankGPT)、API 商業化(Cohere、Voyage、Jina)以及雲端廠商內建重排服務,使得重排序從學術方案成為產品標配。
  • 當前趨勢:重排序與檢索融為一體,出現統一多向量模型;同時為適配超長上下文,處理 chunky 文件的重排策略更受重視。

技術路線對比

路線代表性方法檢索質量推論延遲離線預編碼儲存成本訓練資料要求
全互動 Cross-encMiniLM/BERT cross-encoder★★★★★高 (需即時編碼全文)標註相關性對
晚期互動 ColBERTColBERTv2★★★★☆中 (僅 query 線上)高 (token級向量)標註相關性對
混合雙塔+重排Bi-encoder + cross-enc★★★★可配置(截斷)文件側離線低 (僅單向量)標註+弱監督
LLM 列表重排RankGPT, LLM pointwise★★★★★+極高 (逐 token 生成)可 zero/few-shot
傳統 LTR 特徵LambdaMART+手工特徵★★★~★★★☆ (語義弱)極低人工特徵+標註

量化比較受基準與實現影響,上表為行業經驗定性彙總,代表相對差異。

上下游

上游——檢索模組

  • 向量檢索:FAISS、Milvus、Pinecone、Weaviate 等向量資料庫,輸出 Top-K 候選。
  • 稀疏檢索:BM25(BM25S)、Elasticsearch 內建評分,提供規則性或關鍵詞互補召回。
  • 混合檢索:將多種召回訊號融合(線性加權或 RRD(Reciprocal Rank Fusion)),產出更豐富的候選池供重排。

下游——生成/展示

  • 在 RAG 中,重排序後的文本作為 LLM 的上下文(prompt),直接影響答案的準確性與引用來源。
  • 在搜尋中,重排序結果直接展示給使用者;在推薦系統中作為推薦列表最終順序。
  • 商業智慧/資料流水線中,重排序結果作為下游過濾、聚類或索引更新訊號。

關鍵指標

  • MRR@K (Mean Reciprocal Rank):首個相關文件排名的倒數之均值,側重回答第一條是否命中。
  • NDCG@K (Normalized Discounted Cumulative Gain):考慮多級相關性和位置折扣,通用排序質量指標。
  • MAP(Mean Average Precision):多查詢下的平均準確率,關注所有相關文件的排名。
  • Recall@K: 截斷集內相關文件佔全部相關文件的比例,衡量候選集覆蓋能力。
  • 時延與吞吐: 重排模組增加的 P50/P99 延遲、每秒可處理 Query 量(QPS),工程落地的核心約束。
  • 模型體量與記憶體: 模型引數量、序列長度上限、視訊記憶體佔用,直接影響部署成本。

供需與市場資料

由於聯網檢索未能獲取最新機構資料,本節基於產業公開資訊和趨勢進行定性梳理。

  • 需求爆發: 大型模型應用(問答、Copilot、企業知識庫)大量採用 RAG 範式,對“精準上下文”的強需求直接拉動重排序。幾乎所有主流 RAG 架構(LangChain、LlamaIndex、Haystack、Dify)都內建重排序節點。
  • 供給端快速成熟: 開源模型(HuggingFace 上 cross-encoder 及 BGE-Reranker 系列)供給充足;同時湧現出 Cohere、Voyage AI、Mixedbread、Jina AI 等商業化 Rerank API,提供更高效能和更低延遲。雲端服務商(Azure、AWS)也在 AI Search 中整合重排序功能。
  • 市場規模的間接對映: 重排序屬於檢索增強基礎設施的一部分,全球企業搜尋 + RAG 平台市場規模預計在數年內在數十億美元量級,重排序作為關鍵元件佔有一定份額(具體數值[未充分揭露])。
  • 價格趨勢: 開源模型免費但自行部署;商業 API 通常按查詢次數或 token 量計費。如 Cohere 定價公開,每 1000 次查詢約 $0.001~$0.003(視模型和搜尋單元而定),具有較高性價比;隨著競爭加劇,價格呈下降趨勢。

代表公司與資本對映

  • Cohere: 最早推出託管 Rerank API 的獨立 AI 公司之一,多輪融資估值超數十億美元。其 Rerank 模型在行業評測中表現強勁,集成於多家企業 RAG 流水線。
  • Voyage AI: 專注嵌入與重排模型,由 MosaicML 前團隊成員創立,融資規模達數千萬美元量級,提供高效 Reranker 模型。
  • Jina AI: 開源多模態 AI 架構,推出 jina-reranker-v2-base-multilingual 等模型,支援多語言重排,公司完成一定規模融資。
  • BGE (BAAI): 北京智源研究院開源 BGE-M3 等支援稠密、稀疏和 ColBERT 的多向量模型,重排能力整合其中,社群影響力大。
  • 開源生態與 HuggingFace: 並非單一公司,但作為重排序模型分發中心,以 Sentence-Transformers 庫載入的 cross-encoder 系列已在全球數十萬級應用中使用,無直接資本對映,但構成事實供應鏈。
  • 雲端平台廠商: Azure AI Search 內建 Semantic Ranker, AWS Kendra 及 Bedrock 可串聯 Cohere Rerank,Google Cloud Vertex AI Search 自帶排序能力。各家通過捆綁服務推動重排消耗,形成 IaaS 層的營收增量。

投資邏輯

  1. 檢索質量是 AI 應用落地“最後三公里”: 無論基礎模型多強,上下文噪聲直接導致幻覺和錯誤答案。重排序作為編排層關鍵元件,其效果增益(通常相對 MRR 提升 10-30%)具有極高價值,願意溢價採購。
  2. 高替換成本與粘性: 一旦某種重排序方案被整合進業務 RAG 管線,且效果得到線上驗證,更換模型需重新評估與重新適配上游檢索/下游生成,粘性強,可形成訂閱營收復購。
  3. 成本效益比敏銳: 企業尋求最小算力代價獲得最大排序提升。輕量、易部署的蒸餾模型與商用 API 並存,評估時應關注模型效率(每百萬 token 排序成本)和領域適配能力。
  4. 與基礎模型關係的博弈: 重排序模型並不直接與大型模型競爭,而是增強作用,因此成為大型模型時代的“賣鏟子”。但警惕未來基礎模型自身具備極強視窗內排序能力(如長上下文重排)可能蠶食獨立 reranker 的市場份額。
  5. 多語言與多模態擴充套件: 全球化應用需求催生多語言重排;多模態 RAG(圖、表、文本混合)也需要特定重排方案,相關技術供應商存在增長空間。

常見誤讀糾偏

  • 誤讀1: “有了向量檢索就不需要重排序”
    糾偏:向量檢索擅長快速召回,但點積缺乏細粒度語義互動,精度有限。重排序作為精排環節,在許多基準上將 NDCG@10 提升 10% 以上絕對值,兩者是互補關係而非替代。
  • 誤讀2: “重排序模型越大效果一定越好”
    糾偏:模型容量需與候選集多樣性和訓練資料規模匹配。在 MS MARCO 等資料集上,6 層 MiniLM cross-encoder 與 24 層 BERT 效果差距遠小於引數倍差,而推論成本低數倍。而且過引數化可能對噪聲過擬合,選擇需平衡。
  • 誤讀3: “重排序只需對單文件打分,本質就是分類任務”
    糾偏:Pointwise 分類可實現排序,但直接最佳化 pointwise 目標並不完全對齊最終的排序指標(NDCG,MRR)。工業界常用 pairwise 或 listwise 損失進行微調,以獲取更優整體序。簡單交叉熵可能使高分不夠“拉開”。
  • 誤讀4: “ColBERT 就是省資源的 cross-encoder”
    糾偏:ColBERT 使用晚期 token 級互動而非全自注意力,其索引預儲存 token 向量,查詢時僅為 query 線上編碼。其精度/延遲曲線不同於 cross-encoder,文件側儲存成本顯著更高,不能直接等價視之。

學習路徑

  1. 基礎準備: 理解資訊檢索評價指標(MRR, NDCG, MAP, Recall),熟悉 BERT 基本原理。
  2. 上手實踐: 使用 HuggingFace sentence-transformers 庫載入 cross-encoder/ms-marco-MiniLM-L-6-v2,對 MS MARCO 子集進行重排評估。程式碼示例在官方文件中可獲取。
  3. 深入損失函式: 閱讀 RankNet、LambdaRank、ListNet 原始論文,理解 pair/listwise 最佳化思想;嘗試在 PyTorch 下為 Cross-encoder 實現 pairwise 訓練。
  4. 掌握 ColBERT 範式: 復現或閱讀 ColBERTv1/v2 程式碼,理解 MaxSim 計算與 token embedding 索引壓縮。
  5. 系統落地: 將重排序整合到 LangChain 或 LlamaIndex RAG 管線,測量端到端延遲與質量,進行候選集大小與批處理引數的調優。
  6. 跟進前沿: 關注 LLM 用於重排(RankGPT)、多向量混合檢索,以及多語言/跨語言重排的最新進展。持續追蹤 MS MARCO 排行榜及 Cohere、Voyage 等技術部落格。

一句話總結

重排序是資訊系統中的“黃金剪刀”,用有限的精算力將粗篩的噪點裁剪,推開質量與成本的邊界,讓真相排在最前面。

延伸閱讀與來源

  • MS MARCO Passage Ranking 排行榜與相關論文: microsoft/msmarco
  • Sentence-Transformers 官方文件 cross-encoder 部分: sbert.net
  • Cohere Rerank 產品說明及 API 文件: cohere.com/rerank
  • ColBERT v2 論文: ColBERTv2: Effective and Efficient Retrieval via Lightweight Late Interaction, NAACL 2022
  • RankGPT 論文: Is ChatGPT Good at Search? Investigating Large Language Models as Re-Ranking Agent, EMNLP 2023
  • BGE 系列模型與 BAAI 開源倉庫: github.com/FlagOpen/FlagEmbedding

(文中技術引數如未標註具體出處,均來源於以上公開模型卡、論文與行業平台觀察,由於聯網搜尋受限,無法檢索最新廠商數字,未做定量斷言。)

source: 公開揭露與公開資料整理 本頁僅用於產業鏈學習、資訊檢索和研究輔助;不構成投資建議,不預測漲跌,不提供買賣、部位或目標價建議。
完整概念頁 複盤 13 節結構 公司投研頁 沿產業鏈找到受益公司 投資課 把概念轉成可跟蹤模型