模型层 开放阅读

重排序

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 节结构 公司投研页 沿产业链找到受益公司 投资课 把概念转成可跟踪模型