首页 / 文章

让重排技术在您的RAG流程中占据一席之地

重排序技术应被纳入RAG流程中:补充首轮排序所缺失的信息,保持证据完整性,并在数据测试中优于仅依赖检索的基准方法。

阅读约 3 分钟622 词

添加重排器似乎只是简单的升级:获取大量文本段落,进行更细致的相关性检测,然后将最佳结果传递给模型。

这种架构确实有用,但也可能带来延迟,并使可用证据的质量下降。关键问题在于第二阶段能提供什么信息。

在某篇已发表的案例研究中,重排步骤复用了检索阶段使用的嵌入方法,同时缩短了候选文本的长度。因此第二轮评估时所依据的材料质量更差。这表明一个名为重排器的组件并不一定能自动产生更好的相关性信号。

了解候选文本池的局限性

重排器仅对接收到的文档进行排序,不会在你的整个数据集中搜索缺失的证据。

如果候选列表中缺少相关段落,需检查检索机制、过滤条件或分块边界的问题。即便提升评分算法的复杂度,也无法让未被收录的段落出现。

正因如此,混合候选检索与重新排序机制应分别进行评估。第一阶段的目标是筛选出有用的证据,而第二阶段则是在更有限的资源约束下对这些证据进行选择和排序。

了解第二阶段评分器所看到的内容

交叉编码器能够同时处理查询内容和候选内容,从而得出与独立计算嵌入向量对比不同的相关性判断。正是这种额外的交互特性,使其成为候选列表筛选的合适选项之一。

然而,评分器仍然存在输入长度限制。如果预处理步骤去掉了能够回答问题的句子,模型将无法恢复它。应记录实际传递给评分器的文本,而不仅仅是最初存储的片段。

对于较长的文本段落,需检查相关细节出现的位置。固定的前缀可能会保留引言内容,但会遗漏核心规则、代码示例或异常情况。可以考虑使用更简短且连贯的候选内容或与查询相关的文本片段,并测试实际效果,而非假设截断处理不会带来问题。

在相同候选内容上对比处理前后的结果

为每个评估问题保存一个基准排序结果。使用相同的候选集运行重新排序器,然后比较排序顺序和最终选择结果。

需跟踪最终上下文中所需证据是否依然存在、其位置是否有改善,以及哪些问题出现了恶化。单一的汇总分数可能会掩盖某个特定查询类别中关键信息的缺失。

同时还要测量端到端的延迟与成本。对于复杂的科研工作流程而言,排名提升可能值得,但对于交互式搜索建议来说则成本过高。何种权衡是可接受的取决于你所构建的用户体验。

评估指南说明了如何将这些排名检查与生成答案的质量分开处理。

有意识地定义备用方案

对于交互式应用,应为重新排序阶段设定时间限制。如果超时,则需明确决定是返回基础结果、显示错误信息,还是继续异步处理。

当基线结果已满足质量要求时,重新使用这些结果是合理的。需记录下使用了回退方案这一事实,以免延迟降低被误认为是排名重排实验的成功结果。

同样,应确保排名重排功能易于禁用。某个组件不应仅仅因为下游代码假定其存在就变成必需的。

在更简单的方案更优时仍应选择它

分别在启用和禁用排名重排功能的情况下运行相同的测试。需审查所有的改进与失败案例,包括接近输入长度限制时的情况。

如果在现有约束条件下第二次处理无法带来实际收益,那么移除该功能便是合理的工程决策。目标是以可接受的成本获得有充分依据的答案;只有当更复杂的图表有助于实现这一目标时才有用。