SelfElicit: Your Language Model Secretly Knows Where is the Relevant Evidence¶
会议: ACL 2025
arXiv: 2502.08767
代码: https://github.com/ZhiningLiu1998/SelfElicit
领域: LLM NLP
关键词: 上下文增强, 注意力机制, 证据定位, RAG, 推理时方法
一句话总结¶
SelfElicit 发现 LLM 深层注意力分数天然能识别上下文中的关键证据(即使回答错误时也是),据此提出推理时自动高亮关键证据句的上下文增强方法,无需训练即可显著提升基于证据的 QA 任务性能。
研究背景与动机¶
- 领域现状:RAG 通过为 LLM 提供相关证据来减少幻觉,但检索到的上下文常包含噪声和无关信息
- 现有痛点:LLM 经常无法从含噪上下文中正确利用关键证据——即使证据就在输入中也会回答错误
- 核心矛盾:LLM 在注意力层面"看到"了证据,但在生成层面未能利用
- 本文要解决什么:通过显式高亮上下文中的关键证据帮助 LLM 聚焦
- 切入角度:深层注意力分数天然具备证据定位能力——利用这个内在能力做推理时增强
- 核心idea一句话:用 LLM 自己的深层注意力分数定位关键证据句,显式高亮后重新生成
方法详解¶
整体框架¶
输入(上下文+问题) → 第一次前向传播获取深层注意力分数 → 按句子聚合注意力 → 选 top-k 高注意力句子作为证据 → 在上下文中显式高亮这些句子(加标记) → 第二次前向传播生成最终答案。
关键设计¶
- 深层注意力证据发现:
- 做什么:利用 LLM 深层 attention 分数自动识别上下文中的关键证据
- 核心思路:计算每层的头平均注意力 \(\mathbf{a}^{(\ell)} = \frac{1}{H}\sum_{h=1}^H \mathbf{a}^{(\ell,h)}\),聚合到句子级别,深层(后 25%)注意力对证据句的相对注意力高达 6 倍
-
关键发现:即使模型回答错误,深层注意力也能正确指向证据——模型"知道"但没"用好"
-
显式证据高亮 (Explicit Highlighting):
- 做什么:在输入上下文中用特殊标记包裹关键证据句
- 核心思路:选择注意力最高的 top-k 句子,用
**等标记高亮,重新拼接上下文 -
设计动机:显式高亮帮助模型在第二次生成时更集中于关键信息
-
推理时增强特性:
- 无需训练、无需额外模型、无需迭代 prompting
- 仅增加约一次前向传播的计算开销
- 对超参数(高亮句子数 k、使用的层范围)鲁棒
实验关键数据¶
主实验¶
| 任务 | 模型 | 基线 | +SelfElicit | 提升 |
|---|---|---|---|---|
| HotpotQA | Llama3.1-8B | ~45% | ~55% | +10% |
| 多种QA | 多个模型 | - | - | 一致提升 |
关键发现¶
- 跨模型家族(Llama、Qwen、Mistral)一致有效
- 含噪上下文中提升更大——正好解决了 RAG 的核心痛点
- 证据定位准确率很高,验证了"LLM 内在知道关键证据在哪"的假说
- 推理时开销小(约 1.3x),比迭代 prompting 方法高效得多
亮点与洞察¶
- "LLM 知道证据在哪但没用好"这个发现本身就很有价值——深层注意力 vs 生成行为的 gap
- 方法极其简单但效果显著——仅两次前向传播 + 注意力分析 + 文本标记
- 可以与任何 RAG 系统无缝集成,作为检索后的增强步骤
局限性 / 可改进方向¶
- 需要访问模型内部注意力权重,不适用于纯 API 调用场景
- 对非常长的上下文(10K+ token)注意力分析的计算和内存开销可能较大
- 高亮标记的选择(** vs 其他标记)可能影响不同模型的效果
相关工作与启发¶
- vs Context Distillation: 训练时方法,SelfElicit 是推理时方法
- vs CAD (Context-Aware Decoding): CAD 对整个上下文做对比解码,SelfElicit 做细粒度句子级高亮
- vs Lost in the Middle: 发现了 LLM 忽略中间上下文的问题,SelfElicit 直接解决
评分¶
- 新颖性: ⭐⭐⭐⭐ 深层注意力做证据发现的发现新颖,方法简洁优雅
- 实验充分度: ⭐⭐⭐⭐ 多模型+多QA任务+噪声分析+效率分析
- 写作质量: ⭐⭐⭐⭐⭐ 图1流程图直观,注意力分析图清晰有说服力
- 价值: ⭐⭐⭐⭐ 即插即用、无训练的RAG增强方法,实用性高