SeaKR: Self-aware Knowledge Retrieval for Adaptive Retrieval Augmented Generation¶
会议: ACL 2025
arXiv: 2406.19215
代码: 已开源(GitHub)
领域: RAG / 检索增强生成
关键词: 自适应检索, 自感知不确定性, 内部状态, 知识重排, 迭代推理
一句话总结¶
SeaKR 利用 LLM 内部隐藏层的自感知不确定性(通过多次采样 EOS token 隐藏表示的 Gram 行列式度量)来自适应地决定何时检索、如何重排检索结果、以及选择何种推理策略,在复合 QA 上 F1 比 DRAGIN 提升 6%,比 IRCoT 提升 9.5%。
研究背景与动机¶
领域现状:RAG 通过将外部知识注入 LLM 上下文来缓解幻觉问题。自适应 RAG 进一步优化为仅在需要时才检索,避免不相关知识干扰。现有自适应方法如 FLARE 和 DRAGIN 通过输出 token 概率判断何时检索,Self-RAG 通过微调让模型生成特殊标记来指示检索需求。
现有痛点:(1)现有方法仅基于 LLM 输出来判断检索需求,但 LLM 存在系统性的自信偏差——即使参数知识不足也会自信地输出错误答案,输出概率并不能可靠反映真实的知识缺口。(2)现有方法忽略了检索后的知识整合问题——检索到多条知识后如何选择最有用的?多条知识如何整合推理?这些问题几乎未被系统性地解决。
核心矛盾:自适应 RAG 需要准确感知"我不知道什么",但 LLM 的输出是经过离散化和自信偏差过滤后的,信息损失严重。更底层的内部状态理论上承载更丰富的不确定性信息,但尚未被利用于 RAG。
本文目标 利用 LLM 内部隐藏状态的自感知不确定性,在自适应 RAG 的三个关键环节——何时检索、如何整合、如何推理——都进行不确定性驱动的决策。
切入角度:基于认知科学研究中"LLM 对不确定内容的多次采样在隐空间中表现不一致"的观察,SeaKR 用 Gram 行列式度量多次生成的 EOS 隐藏表示的一致性作为不确定性分数,高不确定性触发检索,低不确定性的知识片段被优先选择。
核心 idea:用 LLM 中间层 EOS token 隐藏表示的多次采样一致性作为自感知不确定性度量,驱动检索触发、知识重排和推理策略选择。
方法详解¶
整体框架¶
SeaKR 采用 CoT 风格的迭代推理。每一步:(1)生成候选推理步骤,用自感知不确定性评估器判断是否需要检索;(2)如需检索,从搜索引擎返回的 top-N 片段中选择最能降低不确定性的知识;(3)迭代完成后,用自感知推理在"直接生成"和"基于所有检索知识的 CoT 推理"两个策略中选择不确定性更低的结果。
关键设计¶
-
自感知不确定性评估器:
- 功能:从 LLM 内部状态量化其对当前生成内容的确信程度
- 核心思路:对同一输入上下文 \(\mathbf{c}\) 采样 \(k=20\) 次生成,收集每次生成的 EOS token 在中间层 \(l=L/2\) 的隐藏表示 \(\mathbf{H}^{(l)}_{\langle EOS \rangle}\),计算这 \(k\) 个向量的正则化 Gram 矩阵的行列式作为不确定性分数 \(U(\mathbf{c})\)。行列式越大表示向量越分散、模型越不确定
- 设计动机:相比输出 token 概率,内部状态级别的一致性度量避免了自然语言的多义性干扰——相同语义可以有不同的表面表达导致 token 概率低,但隐藏状态在语义空间中保持一致
-
自感知重排(Self-aware Re-ranking):
- 功能:从搜索引擎返回的 top-N 知识片段中选择最能降低 LLM 不确定性的片段
- 核心思路:将每个候选知识片段分别拼接到输入上下文中,独立计算 \(N\) 个增强上下文的不确定性 \(U(\mathbf{c} + \mathbf{k}_i)\),选择不确定性最低的片段。这从"检索相关性"视角转变为"对模型最有帮助"视角
- 设计动机:传统 RAG 按查询相关性排序知识,但高相关性不等于高实用性——可能与模型已有知识冲突或无法降低特定的不确定性
-
自感知推理(Self-aware Reasoning):
- 功能:在迭代推理结束后,选择最优的知识整合策略生成最终答案
- 核心思路:提供两种推理策略——(1)直接从 CoT 推理链的最后一步生成答案;(2)将所有重排后的检索知识拼接为上下文做新的 CoT 推理。分别计算两种策略的答案不确定性,选择更确信的
- 设计动机:不同问题的最优推理路径不同——有些问题的 CoT 推理链已经足够,额外知识反而干扰;有些问题需要综合所有知识重新推理
损失函数 / 训练策略¶
SeaKR 是无需训练的方法(tuning-free)。所有组件都基于 LLaMA-2-7B-chat 的原始推理能力和内部状态,不需要额外的微调。不确定性阈值 \(\delta\) 在 NQ 训练集的小子集上搜索确定。
实验关键数据¶
主实验¶
复合 QA(多跳推理,LLaMA-2-7B-chat + BM25):
| 方法 | 2WikiMultiHop F1 | HotpotQA F1 | IIRC F1 |
|---|---|---|---|
| CoT (无检索) | 22.3 | 27.5 | 17.3 |
| IRCoT (每步检索) | 26.5 | 30.4 | 21.6 |
| Self-RAG (微调) | 19.6 | 17.5 | 5.7 |
| FLARE | 21.3 | 22.1 | 16.4 |
| DRAGIN | 30.0 | 34.2 | 22.9 |
| SeaKR | 36.0 | 39.7 | 23.5 |
消融实验¶
| 消融配置 | 2Wiki F1 | HotpotQA F1 | 说明 |
|---|---|---|---|
| SeaKR (完整) | 36.0 | 39.7 | 基线 |
| w/o 自感知检索 (每步检索) | 33.5 | 37.1 | -2.5/-2.6,验证自适应检索有效 |
| w/o 自感知重排 (用 top-1) | 31.2 | 35.6 | -4.8/-4.1,重排贡献最大 |
| w/o 自感知推理 (直接生成) | 33.8 | 37.9 | -2.2/-1.8 |
| 用输出概率替代内部状态 | 27.8 | 33.1 | -8.2/-6.6,验证内部状态优于输出概率 |
关键发现¶
- 自感知重排贡献最大:消融显示去掉重排后 F1 下降 4-5%,大于去掉自感知检索(-2.5%)和推理(-2.2%),说明"如何整合知识"比"何时检索"更重要
- 内部状态远优于输出概率:用输出概率替代内部状态后 F1 下降 6-8%,验证了内部状态承载更丰富的不确定性信息
- Self-RAG 在复合 QA 上崩塌:基于 NQ 微调的 Self-RAG 在多跳 QA 上 F1 仅 17.5-19.6%,甚至低于无检索的 CoT,说明微调类方法的分布偏移问题严重
- 自适应检索 vs 全量检索:SeaKR 检索次数约为 IRCoT 的 60%,但 F1 高出 9.5%,证明减少不必要检索确实能提升性能
亮点与洞察¶
- 内部状态驱动的 RAG 决策是全新范式:SeaKR 首次将 LLM 内部状态的自感知不确定性引入 RAG 的每个环节(检索、重排、推理),建立了"不确定性驱动的自适应 RAG"范式
- Gram 行列式的不确定性度量:通过多次采样隐藏表示的一致性来量化不确定性,这个度量方式兼顾了理论优雅性(Gram 行列式度量线性无关程度)和实践有效性(无需额外训练)
- 无需训练即可泛化:相比 Self-RAG 的微调方案在分布偏移时崩塌,SeaKR 的 tuning-free 设计在不同类型 QA 上都保持稳健
局限与展望¶
- 推理开销大:每次不确定性评估需要 20 次采样,每次重排需要 N×20 次推理,计算成本显著高于基线方法
- 仅在 LLaMA-2-7B 上验证:缺少对更大规模和更新 LLM 的验证
- BM25 检索器限制:使用 BM25 而非密集检索器,检索质量可能是性能瓶颈
- 简单 QA 上优势不明显:Self-RAG 在简单 QA 上仍有优势,说明 SeaKR 的优势主要体现在多跳推理场景
相关工作与启发¶
- vs DRAGIN:DRAGIN 也做自适应检索但仅用输出 token 概率,SeaKR 用内部状态 F1 高出 6%
- vs Self-RAG:Self-RAG 通过微调让模型自判断检索需求,但存在严重的分布偏移问题;SeaKR 无需微调,泛化性更强
- vs INSIDE (Chen et al. 2023a):SeaKR 将 INSIDE 的内部状态不确定性度量从幻觉检测扩展到 RAG 全流程
评分¶
- 新颖性: ⭐⭐⭐⭐ 首次将内部状态自感知引入 RAG 的检索/重排/推理三环节
- 实验充分度: ⭐⭐⭐⭐ 多数据集、详细消融、组件贡献分析清晰
- 写作质量: ⭐⭐⭐⭐ 问题定义明确,框架结构清晰
- 价值: ⭐⭐⭐⭐ 开创了不确定性驱动的自适应 RAG 范式,尤其在复合 QA 上效果显著