RankRAG:基于排序增强的单一LLM问答生成框架
检索增强生成已成为增强大型语言模型能力的关键技术,让它们能够处理专业知识、提供实时信息、适配特定领域,而无需改动模型权重本身。但这个流程有一个棘手的矛盾:LLM 很难有效处理大量分块的上下文,越小、相关性越高的上下文集,效果反而越好。同时,要在有限的检索内容中确保高召回率,也是一道难题。单独用排序模型可以改进上下文选择,但跟通用LLM比,它们的零样本泛化能力往往有限。这些矛盾指向了一个方向——我们需要更高效的RAG方法,在高召回率的上下文提取和高质量内容生成之间找到平衡。
为了解决这些挑战,学术界已有不少尝试。有的方法主打让检索器对齐LLM的需求,有的探索多步骤检索或上下文过滤,指令微调技术也被用来增强LLM的搜索能力和RAG表现。检索器和LLM的端到端联合优化看起来前景不错,但训练和数据库维护的复杂性也随之而来。至于排序方法,它被当作中间步骤来提升信息检索质量,但通常依赖BERT或T5这类额外模型,这些模型在捕捉查询-上下文相关性上可能力不从心,零样本泛化也困难。虽然近期研究已经展示了LLM强大的排序能力,但跟RAG系统的整合仍是个未充分开发的领域。
那么,如何在高召回率上下文提取和高质量生成之间高效平衡?尤其是在处理复杂查询或多样化知识领域时,现有方法显然还有改进空间。来自英伟达和佐治亚理工学院的研究人员带来了一个名为 RankRAG 的创新框架,它的核心思路是对单个LLM进行指令微调,让它在RAG框架内既能做上下文排序,又能生成答案。
RankRAG 的训练数据很有意思——它在现有指令微调数据集的基础上,整合了上下文丰富的问答、检索增强型问答和排序数据集。这种综合训练的目的很明确:让LLM在检索和生成阶段都能更好地过滤掉无关上下文。具体来说,框架引入了一个专门的任务,用来为给定问题识别相关的上下文或段落。这个任务虽然是为了排序而设计的,但被构建成了带有指令的常规问答形式,这样反而能更有效地对齐RAG任务。到了推理阶段,LLM先对检索到的上下文重新排序,然后根据优化后的top-k上下文生成答案。

训练流程分两阶段。第一阶段是在各种指令遵循数据集上进行监督微调,第二阶段则是统一排序和生成任务,整合前面提到的四种数据。值得注意的是,所有任务都被标准化成了(问题、上下文、答案)格式,这种设计有利于知识迁移。推理时的流程是标准的检索-重新排序-生成:先检索出top-N个上下文,接着重新排序选出最相关的top-k个,最后根据这些优化后的上下文生成答案。这样一来,单个LLM内部的上下文相关性评估和答案生成能力都得到了改善。
性能方面,RankRAG 在各种基准测试中表现抢眼。8B参数版本始终优于 ChatQA-1.5 8B,甚至跟参数量5到8倍更大的模型也能一较高下。而RankRAG 70B不仅超越了强大的 ChatQA-1.5 70B,还明显优于以往使用InstructGPT的RAG基准。更令人印象深刻的是,在具有挑战性的长尾问答(PopQA)和多跳问答(2WikimQA)数据集上,RankRAG 的提升幅度超过了10%。这意味着当排名靠前的检索文档与答案相关性较低时,RankRAG 的上下文排序能力尤其能发挥作用。

这项研究的核心价值在于,RankRAG 代表了RAG系统的一种重大进步。通过对单个LLM进行指令微调,让排序和生成任务在同一个模型中统一起来,并且在训练组合中只加入了少量排序数据就能让LLM超越现有专家排序模型的性能。在九个通用领域和五个生物医学RAG基准测试中,RankRAG 都表现出卓越性能,明显优于最先进的RAG模型。这种统一方法为增强RAG系统在各个领域的能力,提供了一个很有希望的方向。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名