重排序器(Reranker)是在检索阶段之后对初步候选结果进行精细排序的模型。典型的RAG流水线可能首先用高召回的检索器找出若干文档候选(例如Top 50),然后用重排序模型对这50个候选打分排序,选出前若干(如Top 5)提供给生成器使用。这样可以兼顾效率和精度:检索器快速筛选可能相关的集合,重排序器深入分析内容相关性以提高Precision。
常见的重排序模型基于BERT等预训练模型的交叉编码(Cross-Encoder)。与双塔模型不同,交叉编码器在输入时将查询和文档拼接,让Transformer同时关注二者来判断相关性。以Nogueira等人在2019年提出的BERT reranker为例,他们将(query, passage)对输入BERT,取[CLS]输出通过一个线性层得到相关性分数,并在大规模标注数据(如MS MARCO)上训练模型区分相关/不相关文档。这种方法利用BERT强大的表征