Adaptive-RAG论文阅读笔记:基于问题复杂度的动态检索增强框架
论文标题:《Adaptive-RAG: Learning to Adapt Retrieval-Augmented Large Language Models through Question Complexity》
会议/期刊:arXiv 2024
代码地址:GitHub仓库
一、核心创新点
🔥 动态策略选择机制
首创基于问题复杂度的三级响应体系:
- 无检索模式:直接调用LLM处理简单问题(如常识问答)
- 单步检索增强:常规RAG流程(检索->生成)
- 多步迭代检索:复杂问题的链式推理(检索->推理->再检索)
📊 自动化复杂度分类器
- 采用轻量级LM(<1B参数)实现实时分类
- 创新标签生成方法:
# 伪代码示例 def generate_labels(query): if any(model.predict(query) == gold_answer for model in [NoRetrieval, SingleStep]): return complexity_level else: return max_complexity
利用数据集固有偏置(单跳/多跳设计)作为监督信号
⏱ 效率-精度平衡
实验显示相比基线方法:
- 平均响应时间降低37%(通过减少不必要的检索)
- 多跳QA任务F1值提升15.2%
- 资源消耗减少42%(GPU-hours)
二、系统架构解析
核心组件详解
1. 复杂度分类器
输入编码:问题文本 + 实体类型特征
层级划分:
复杂度等级 | 判定标准 | 处理策略 |
---|---|---|
Level 0 | 单实体 & 高频率知识 | 无检索 |
Level 1 | 多实体 & 单跳推理 | 单步检索 |
Level 2 | 时序/逻辑依赖 & 多跳推理 | 迭代检索 |
训练策略:混合课程学习(Curriculum Learning)与对比学习 |
2. 策略执行引擎
无检索模式:
单步增强模式:
多步迭代模式:
采用思维链(CoT)增强:
三、实验设计亮点
数据集组合策略:
- 单跳数据集:SQuAD, NaturalQuestions
- 多跳数据集:HotpotQA, 2WikiMQA
- 混合测试集:40%简单/40%中等/20%复杂问题
基线对比模型:
- Fixed-RAG:固定使用多步检索
- Threshold-RAG:基于实体频率的启发式策略
- Oracle-RAG(理论上界):人工标注复杂度
四、创新启示
动态计算范式:打破传统RAG的固定流程,开创条件式执行新范式
轻量级决策模型:证明小模型(<1B)在大模型工作流中的关键控制作用
数据高效利用:通过自动标注机制降低人工标注成本90%+
启示:该框架为构建企业级智能问答系统提供了新思路,特别适合处理用户问题复杂度分布不均衡的实际场景。