SH

Soloharness

概念 · 辨析 · Agent

← 返回概念辨析

Concept Contrast Fable

重排序和重排序器:一个讲做了什么,一个讲用什么做的

做检索增强时经常把重排序和重排序器当成同一件事来讨论。重排序是搜索流水线里的一个处理步骤,把初检结果按相关性重新排列;重排序器是执行这个步骤的具体模型或算法。讨论技术方案时先分清楚:你缺的是这个步骤,还是缺一个更好的排序模型。

寓言

药房的抓药流程

一家中医院药房每天要处理几百张方子。老药剂师有个习惯:抓药之前先把所有药材铺在台面上按方子用量的重要性排一遍,用量大、主效的药放在最顺手的位置,辅料和引子放在后排。排完之后才开始装袋。

药房新装了台自动分拣机,厂家说能按拼音首字母自动排药。药剂师试了两天发现不对——机器把党参和当归排在一起,因为都姓当,但一张方子里党参是主药,当归只是佐料。按机器排的顺序抓药,主药藏在第三排,辅料反而在最前面,装袋时手忙脚乱。

药剂师跟主管争了一周。主管说分拣机已经很先进了,你还要什么。药剂师说分拣机能排药不假,但排的依据不对。我要的不是一个能排药的机器,是一个能按方子重要性排对的机器。主管这才明白:排药这个步骤本身没问题,是执行排药的东西没选对。

药房最后定了两条规矩。第一,排药这个工序必须保留——直接从分拣机装袋省了排药一步,错袋率高了三倍。第二,排药的人或机器必须用方子剂量做排序依据,不能用拼音、笔画或其他和药效无关的规则。

一年后药房升级了分拣系统,换了新的排序模块。工序没变——依然是先排后装,但排序的人从老药剂师变成了带剂量权重的算法。装袋效率涨了百分之四十,错袋率没涨。主管在采购报告里特意写了:这次升级换的是排序器,不是新增一道工序。

后来药房行业出了个不成文的采购规矩:买分拣机的时候别把排药功能写成一个整体功能。写到合同里就拆成是否需要排药步骤和排药模块的排序算法两条线。两条线各自比价、各自测试、各自验收。

老药剂师退休的时候说了一句话:先想清楚你是不是需要有人帮你排药,再想清楚那人用的是什么眼睛在看药。把要不要排和用什么排捏在一起谈,最后会买了一台很贵的分拣机,排出来的药还是乱的。

重排序

检索流水线中的一个处理步骤,对初步检索结果按相关性、重要性或其他标准重新排列,是流程中的一个环节。

重排序器

执行重排序步骤的具体模型、算法或组件,决定排序所依据的逻辑、特征和权重,是这个环节的具体实现。

故事对应

  • 老药剂师抓药前先排药:重排序,流程中固定存在的一个处理环节
  • 自动分拣机按拼音首字母排药:重排序器的一种实现,排序依据决定了排列质量
  • 排药步骤保留但换了排序依据:保留reranking步骤,升级reranker模型
  • 主管分不清是要排药还是换个排序方式:方案讨论中混淆步骤需求和实现选型

落到 Agent 项目里

做RAG系统选型时,把重排序写成一个独立的流水线节点,明确它的输入(初检结果列表)和输出(重排后的列表)。然后再为这个节点选择具体的重排序器。评测时分别度量:去掉这个节点后的效果变化告诉你步骤有没有价值,换一个重排序器后的效果变化告诉你模型选得对不对。