Adaptive-RAG:基于问题难度的自适应RAG框架

665 阅读4分钟

什么是Adaptive-RAG?

Adaptive-RAG是一种智能化的检索增强生成(Retrieval-Augmented Generation,简称RAG)系统。与传统RAG系统不同,Adaptive-RAG能够根据用户提问的难度自动选择最合适的处理模式,从而实现资源的最优配置和回答质量的提升。

image.png

为什么需要Adaptive-RAG?

研究者们注意到了两个重要现象:

  1. 用户的问题通常呈现"二八定律":约80%的问题相对简单,而20%的问题可能需要复杂的推理过程
  2. 一刀切的处理方式效率低下:对简单问题使用复杂的RAG模型会造成资源浪费,而简单的RAG模型又无法应对复杂问题。

正是基于这两点观察,研究者们提出了Adaptive-RAG的创新方案。

Adaptive-RAG如何工作?

Adaptive-RAG的核心思路是在用户提问和RAG模型之间增加一个"智能分流器"。这个分流器实际上是一个经过训练的小型语言模型,它能够快速判断问题的复杂度,并将问题分配给最合适的处理模块。

整个处理流程可以概括为三个步骤:

  1. 难度评估:分流器迅速分析用户问题的复杂度。Adaptive-RAG将用户查询分为三个难度等级,每个等级对应一种处理策略:
    • 直接型查询(Straightforward Query):无需检索,直接由大语言模型(LLM)回答。
    • 简单查询(Simple Query):仅需一轮检索即可获取足够信息支持LLM回答。
    • 复杂查询(Complex Query):需要多步复杂检索才能获得完整答案。
  2. 模式选择:根据评估结果,选择以下三种处理模式之一:
    • 直接回答:对于非常直白的问题,直接由大语言模型(LLM)回答,无需检索额外信息。
    • 单步检索:对于简单问题,进行一轮信息检索后由LLM生成答案。
    • 多步检索:对于复杂问题,进行多轮检索和推理,最后由LLM整合信息给出答案。
  3. 答案生成:选定的处理模式执行相应的操作,最终生成答案。

技术亮点:智能分流器的训练

Adaptive-RAG的关键在于那个"智能分流器"。为实现查询难度的自动分类,研究者训练了一个基于T5-large模型的小型语言模型作为分类器。该分类器接收用户查询作为输入,输出查询的难度等级。但是,如何训练这样一个分流器呢?研究者们采用了一种巧妙的方法来构建训练数据集:

  1. 基于模型预测结果生成初步标注数据:

    • 对于给定查询,首先尝试直接用LLM回答。如果回答正确,将查询标记为最简单等级A。
    • 如果LLM需要一轮检索后才能正确回答,则标记为中等难度B。
    • 如果需要多轮检索才能得到正确答案,则标记为最高难度C。
  2. 利用数据集的内在偏向性:

    • 对于第一步无法标注的查询,研究者利用了不同基准数据集的特性。
    • 例如,某些数据集可能偏向于单步推理(single-hop)查询,而其他数据集则可能包含更多多步推理(multi-hop)查询。
    • 基于这种偏向性,将来自偏向单步推理数据集的查询标记为B级,来自多步推理数据集的查询标记为C级。

通过这种方法,研究者们成功构建了一个大规模的问题-难度配对数据集,为分流器的训练提供了坚实的基础。

Adaptive-RAG的意义

Adaptive-RAG的出现,标志着智能问答系统向着更加精细化、智能化的方向迈出了重要一步。它不仅能提高系统的整体效率,还能在保证回答质量的同时,大幅降低计算资源的消耗。

对于普通用户来说,这意味着我们在使用智能助手时,可以期待更快速、更准确的回答,无论我们问的是简单问题还是复杂问题。对于开发者和研究人员而言,Adaptive-RAG提供了一个全新的思路,启发我们如何更好地设计和优化大规模语言模型的应用系统。