链载Ai

标题: Adaptive-RAG:性能提升50%以上的高效RAG策略 [打印本页]

作者: 链载Ai    时间: 昨天 21:15
标题: Adaptive-RAG:性能提升50%以上的高效RAG策略

Adaptive-RAG:性能提升50%以上的高效RAG策略

发布时间:2024年03月21日

RAG 问答系统

摘要

近年来, Retrieval-Augmented LLMs因其能将外部数据库中的非参数知识融入LLMs,从而有效提升诸如问答等任务的回答准确性而备受瞩目。然而,现有处理复杂度各异的查询方法尚存不足,或在处理简单查询时消耗过多计算资源,或难以妥善解决复杂的多步骤问题,且用户的查询并非都能明确划分为简单或复杂。为此,我们创新性地设计了一款自适应QA框架,它能根据查询复杂度智能选取适宜的策略,范围涵盖了从最基础到最高级的(增强型检索)LLMs方案。尤为巧妙的是,这一选取过程利用了一个小型LM训练而成的分类器,此分类器借助于实际模型预测结果及数据集中内在归纳偏置生成的自动化标签,准确预测新查询的复杂度级别。这一方案犹如一座桥梁,无缝衔接了迭代式和单步检索增强型LLMs以及无需检索的方法,针对各种查询复杂度提供了均衡而灵活的应对策略。我们已在一系列覆盖多元复杂度的开放领域QA数据集上验证了该模型,实验证明,相较于包括自适应检索在内的同类基准方法,我们的模型显著提升了QA系统的综合效能和精确度。相关代码已开源,地址为:https://github.com/starsuzi/Adaptive-RAG。

框架

自适应RAG通过判断问题的复杂性来自动选择使用哪种RAG策略。作者将问题划分为三类(如上图的C部分):

分别使用三种策略来运用RAG进行回答:

Adaptive Retrieval-Augmented Generation (Adaptive-RAG) 是一种新型的问答框架,它能够根据问题的复杂性动态选择最适合的策略来处理检索增强的大型语言模型(LLMs)。这三种策略包括:

  1. 1. 非检索方法(No Retrieval):这是最简单的策略,直接使用大型语言模型(LLM)本身的知识库来生成答案。这种方法适用于那些模型已经知道答案的简单问题,不需要额外的外部信息。

  2. 2. 单步检索方法(Single-step Approach):当问题需要额外的信息时,这种方法会先从外部知识源检索相关信息,然后将检索到的文档作为上下文信息输入到LLM中,帮助模型生成更准确的答案。这种方法适用于需要一次额外信息检索的中等复杂度问题。

  3. 3. 多步检索方法(Multi-step Approach):对于最复杂的问题,需要从多个文档中综合信息并进行多步推理。这种方法通过迭代地访问检索器和LLM,逐步构建起解决问题所需的信息链。这种方法适用于需要多步逻辑推理的复杂问题。

Adaptive-RAG的核心在于它能够通过一个分类器来评估问题的复杂性,然后根据这个评估结果选择最合适的处理策略。分类器是一个较小的语言模型,它被训练来预测传入问题(query)的复杂性级别,并自动收集标签,这些标签来自于模型预测的实际结果和数据集中固有的归纳偏差。

通过这种方式,Adaptive-RAG能够灵活地在不同的检索增强LLM策略之间进行切换,从而在处理各种复杂性的问题时,实现更高的效率和准确性。这种方法在实验中显示出,与现有的自适应检索方法相比,Adaptive-RAG在多个开放域问答数据集上都取得了更好的整体效率和准确性。

在Adaptive-RAG模型中,训练分类器以准确评估问题的复杂性是一个关键步骤。这个过程涉及以下几个关键步骤:

  1. 1. 定义复杂性标签:首先,需要定义问题的复杂性等级。在Adaptive-RAG中,通常有三个类别:简单(A)、中等(B)和复杂(C)。简单问题可以直接由LLM回答,中等复杂度问题需要单步检索,而复杂问题则需要多步检索和推理。

  2. 2. 自动收集训练数据:由于没有现成的带有复杂性标签的查询数据集,Adaptive-RAG通过两种策略自动构建训练数据集:







欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5