觉得需要更好的重排序模型?先检查你的检索。

觉得需要更好的重排序模型?先检查你的检索。

💡 原文英文,约600词,阅读约需3分钟。
📝

内容提要

搜索效果差时,不应只升级重排序模型。大规模重排序成本高、延迟大,且候选池本身没有好结果时重排序也无能为力。更优方案是将检索设计为多阶段漏斗:先用低成本词法、向量或混合检索生成大量候选,再逐步收窄,最后才用机器学习重排序。该思路同样适用于RAG,需权衡召回率、相关性、延迟与成本。

🔎

延伸解读

重排序并非万能解药

文章指出,当搜索效果不佳时,直接升级重排序模型可能徒劳。大规模重排序成本高、延迟大,且如果候选池中根本没有好结果,重排序也无法凭空创造。因此,在投入资源改进重排序之前,应先检查检索环节是否已将正确结果纳入候选池。

多阶段漏斗:平衡成本与效果

文章建议将检索设计为多阶段漏斗:先用低成本词法、向量或混合检索生成大量候选,再逐步收窄,最后才用机器学习重排序。这种设计能在早期保证覆盖广度,同时将昂贵操作限制在后期,从而在召回率、相关性、延迟和成本之间取得平衡。

RAG场景同样适用

文章强调,多阶段漏斗思路也适用于RAG应用。随着RAG系统规模扩大,检索变得更为关键,需要确保正确信息进入LLM。即使检索到正确文档,仍需决定哪些段落值得占用模型上下文窗口,渐进式收窄方法同样能帮助优化这一过程。

❓

Q&A

搜索效果差时,为什么不应该只升级重排序模型?

大规模重排序成本高、延迟大,且如果候选池中没有好结果,重排序也无法改善。因此,应首先检查检索环节,确保正确结果进入候选池。

如何设计一个高效的多阶段检索漏斗?

先使用低成本词法、向量或混合检索从大量文档中生成宽泛的候选池,然后逐步收窄,最后将精选的候选交给基于机器学习推理的昂贵重排序步骤。

设计检索漏斗时需要考虑哪些权衡?

需要权衡召回率、相关性、延迟和成本。例如,检索更多候选可以提高召回率,但也会增加评估和重排序的负担,影响成本和延迟。

检索漏斗方法如何应用于RAG系统?

在RAG系统中,检索漏斗同样适用。随着系统扩展,检索变得更重要,以确保正确信息到达LLM。即使检索到正确文档,也需要决定哪些段落放入模型上下文窗口,渐进式收窄方法可以帮助实现这一点。

大规模重排序的主要问题是什么?

大规模重排序成本高且延迟大,因为系统需要处理大量候选结果。此外,如果候选池中没有好结果,重排序也无法提升效果。

有哪些低成本检索方法可以生成候选池?

可以使用词法检索、向量检索或混合检索等相对低成本的方法来生成宽泛的候选池。

🏷️

标签

➡️

继续阅读