01.什么是 Reranker?$ D, t, X: P* I5 t2 d& y
9 Y# p, A# u! i! l& ]) G
1 U' I e* Z! }$ G+ v+ R
Reranker 是信息检索(IR)生态系统中的一个重要组成部分,用于评估搜索结果,并进行重新排序,从而提升查询结果相关性。在 RAG 应用中,主要在拿到向量查询(ANN)的结果后使用 Reranker,能够更有效地确定文档和查询之间的语义相关性,更精细地对结果重排,国内的向量数据库最终提高搜索质量。
/ {. Z2 z' B" @9 x- H6 Y
4 G, b/ Z4 I. B# `$ o3 ^; G0 I- g' y+ F; Z; a0 k+ l I* u
目前,Reranker 类型主要有两种——基于统计和基于深度学习模型的 Reranker:
5 Q/ c8 W i1 S8 O, E+ ^1 d6 n4 L1 V0 C
! i! g% J3 R E w0 M( k9 v3 \2 p 基于统计的 Reranker 会汇总多个来源的候选结果列表,使用多路召回的加权得分或倒数排名融合(RRF)算法来为所有结果重新算分,统一将候选结果重排。这种类型的 Reranker 的优势是计算不复杂,效率高,因此广泛用于对延迟较敏感的传统搜索系统中。+ A& _' b: H e; {! \
: L% K& c4 w- E! j* K) U* e
/ J6 K" G8 @+ ]* e" b1 C( `& F
基于深度学习模型的 Reranker,通常被称为 Cross-encoder Reranker。由于深度学习的特性,一些经过特殊训练的神经网络可以非常好地分析问题和文档之间的相关性。这类 Reranker 可以为问题和文档之间的语义的相似度进行打分。因为打分一般只取决于问题和文档的文本内容,不取决于文档在召回结果中的打分或者相对位置,这种 Reranker 既适用于单路召回也适用于多路召回。
7 Y% N# J; c. v- R. ?; x
$ Z+ T0 H% l; j0 V9 W+ ~9 v) s* G8 X' B/ J* g6 [% A$ `
02.Reranker 在 RAG 中的作用( m2 O$ H x, b) m# e
3 s' }. L% Q6 L/ t G
7 m0 j2 X# M# D& p9 D3 \6 O 将 Reranker 整合到 RAG 应用中可以显著提高生成答案的精确度,因为 Reranker 能够在单路或多路的召回结果中挑选出和问题最接近的文档。此外,扩大检索结果的丰富度(例如多路召回)配合精细化筛选最相关结果(Reranker)还能进一步提升最终结果质量。使用 Reranker 可以排除掉第一层召回中和问题关系不大的内容,将输入给大模型的上下文范围进一步缩小到最相关的一小部分文档中。通过缩短上下文, LLM 能够更“关注”上下文中的所有内容,避免忽略重点内容,还能节省推理成本。
2 z1 J; e7 u+ j+ U6 G2 K- ~4 n
# o3 [& p* e4 `4 n/ J9 ]$ A( v. o |