指令跟随 reranker
经典 cross-encoder 只回答一个问题:「这段与查询有多相关?」指令跟随 reranker(如 Contextual AI Rerank v2)多一个控制信号 —— 简短指令,定义本任务下何谓「相关」。
为何纯相关性不够
两篇文档都可能「匹配」查询,却服务相反目标。「取消订阅」对客服机器人可能要自助步骤,对销售侧可能要挽留优惠。通用 MS MARCO 式 reranker 学的是话题相关,不是任务策略。
指令让你无需为每个产品面微调新 checkpoint 就能引导排序。
指令 rerank 有何不同
| 输入 | 经典 cross-encoder | 指令 reranker |
|---|---|---|
| 查询 | 是 | 是 |
| 段落 | 是 | 是 |
| 任务指令 | 否(或塞进查询文本) | 一等字段 |
| 典型部署 | 自托管或 API | 目前多为托管 API |
# Conceptual API shape (vendor SDKs differ)
results = client.rerank(
query="cancel my plan",
documents=candidates,
instruction="Prefer official help articles with step-by-step cancel steps; demote marketing and upsell pages.",
) # higher score = better match to query under that instruction
经典模型可用查询前缀近似("[Support KB] cancel my plan"),但专用指令模型会把控制文本当约束,而非词袋话题。
何时使用
- 多产品面。同一语料,不同排序策略(客服 / 销售 / 合规)。
- 难负例共享词汇。法律「便利终止」vs「因故终止」;客服「退款」vs「换货」。
- 微调预算不足。用指令引导比每季度训领域适配器更便宜。
若查询是单意图 FAQ,且小 cross-encoder(Jina tiny、mxbai xsmall、bge-base)已在标注上达标,可跳过 —— 见 评测 reranker。
对比经典 cross-encoder
- 经典(bge、Cohere、Jina、mxbai):BEIR 类数字最全;开源或成熟免费档;RAG「话题精度」的默认好选择。
- 指令 API(Contextual AI 等):相关性偏策略时更强;可移植性差;公开榜难比 —— 本站 模型表 故意标 BEIR 为 n/a。
- Late-interaction(ColBERT):完全另一轴(大规模 token MaxSim)—— 见 late-interaction 指南。
如何评测
不要贴一个通用 BEIR 数字就算完。用将上线的指令建 30–50 条查询,标注该策略下正确文档,测前后 NDCG@5 / MRR。只改指令文本,检查排序是否按预期移动。
若改指令顶 5 不变,你在为用不上的功能付费 —— 退回经典 reranker。