张芷铭的个人博客

Reranker 是排序模型,训练目标是让相关 doc 的分数 > 不相关 doc,核心围绕 (query, doc) 对的相关性打分展开。

基础训练数据单元

字段含义示例
query用户查询“Reranker 模型有什么用”
doc候选文本“Reranker 用于检索后二次精排”
label/score相关性标注0/1(二分类)、1-5(分级)

主流训练数据形式

标注式数据

二分类标签

1
2
3
query,doc,label
"Reranker模型有什么用","Reranker是检索精排模型",1
"Reranker模型有什么用","Embedding模型用于向量召回",0

多分级标签

分数相关性等级
5完全匹配
3部分相关
1完全无关

对比式数据

成对式(Pair-wise)

1
2
query,pos_doc,neg_doc
"Reranker训练","Reranker用交叉编码训练","Reranker用于海量召回"

列表式(List-wise)

1
2
query,doc_list,rank_list
"AI绘画原理","[扩散模型,Transformer,Java]","[1,2,3]"

负样本构造

方法说明
随机负样本语料库随机选非正样本,噪声大
难负样本语义相似但不相关,效果最优
检索负样本粗召回排前但不相关的 doc

主流训练范式

Point-wise 逐点训练

项目说明
数据(query, doc, label)
损失BCE Loss(二分类)、CE Loss(多分级)
优点数据简单、训练快
缺点忽略排序相对关系

Pair-wise 成对训练(工业界主流)

项目说明
数据(query, pos_doc, neg_doc)
损失Margin Loss:$max(0, margin - score(pos) + score(neg))$
优点聚焦排序相对关系,精排精度高
缺点对难负样本依赖度高

List-wise 列表训练

项目说明
数据(query, doc_list, rank_list)
损失ListNet Loss、NDCG Loss
优点排序效果最优
缺点标注成本极高

训练流程

  1. 数据准备:收集 query + doc,构造正/负样本
  2. 数据编码:[CLS] query [SEP] doc [SEP]
  3. 模型初始化:加载预训练编码器,替换输出层
  4. 训练:AdamW(学习率 1e-55e-5),批次 832
  5. 评估:NDCG@10、MRR@10

选型速查

场景数据形式训练范式模型
快速原型二分类 Point-wisePoint-wiseMiniLM
通用 RAG成对式 + 难负样本Pair-wiseBGE-Reranker
高精度搜索列表式 + 分级标签List-wiseRoBERTa-large
低延迟部署蒸馏数据知识蒸馏 + Pair-wise蒸馏轻量模型

Comments