跳转至

Improving Contextual Faithfulness of Large Language Models via Retrieval Heads-Induced Optimization

会议: ACL 2025
arXiv: 2501.13573
代码: github
领域: LLM/NLP
关键词: 检索增强生成, 上下文忠实度, 注意力头, 对比解码, 长文本问答

一句话总结

本文发现LLM中的"检索头"(retrieval heads)与长文本问答的上下文忠实度高度相关,据此提出Rhio框架:通过遮蔽检索头生成不忠实样本、引入控制令牌进行忠实度感知调优、再利用对比解码增强忠实度,在7B和13B模型上均超越GPT-4o。

研究背景与动机

检索增强生成(RAG)已成为提升LLM在信息检索任务中表现的重要技术,但在长文本问答(LFQA)场景中,模型生成的回答常常不忠实于提供的上下文——即产生"忠实度幻觉"。这种幻觉表现为:生成的回答包含上下文中没有的信息(凭空捏造),或对上下文信息进行不准确的综合(如错误关联不同文档的内容)。

现有缓解方法主要通过提升上下文质量(显式去噪)、自我反思或上下文感知解码等"补偿性"手段来间接改善忠实度,而没有让模型从根本上学会区分忠实与不忠实的输出。

本文的关键洞察来自对"检索头"的研究。检索头是Transformer中特殊的注意力头,负责从上下文中检索相关信息并执行"复制-粘贴"操作。作者通过先导实验发现:遮蔽检索头数量的增加与忠实度的下降直接相关,且遮蔽检索头产生的错误类型分布与模型自身的真实错误模式高度相似。这一发现启发了整个方法设计。

方法详解

整体框架

Rhio(Retrieval Heads-Induced Optimization)包含三个核心组件: 1. 不忠实数据增强(通过遮蔽检索头) 2. 忠实度感知调优(FAT,通过控制令牌区分忠实/不忠实) 3. 自诱导解码(SID,通过对比解码增强推理时忠实度)

关键设计

  1. 不忠实数据增强: 利用先导实验的发现,通过遮蔽LLM中前N=100个检索头来生成不忠实样本。具体做法是将检索头对应的注意力权重矩阵置零。这种方法有两大优势:(a) 生成的不忠实样本模式与模型真实错误高度相似,包括不完整幻觉(最常见)、凭空捏造幻觉等;(b) 方法简单高效,无需复杂的实体替换或关系扰动。与传统的实体替换等方法相比,遮蔽检索头产生的是更真实、更多样化的错误模式。

  2. 忠实度感知调优(FAT): 引入两个特殊控制令牌[POS]和[NEG]。[POS]引导模型生成忠实回答,[NEG]引导生成不忠实回答。训练目标由两部分组成:(a) 在[POS]条件下让模型学习生成忠实输出y+;(b) 在[NEG]条件下让模型学习生成不忠实输出y-。这种双向学习使模型不仅知道"应该做什么",更知道"不应该做什么",从而增强对忠实度的感知能力。

  3. 自诱导解码(SID): 在推理阶段,利用训练好的控制令牌诱导出对比生成。将[POS]诱导的忠实预测的logits放大(1+α倍),同时减去[NEG]诱导的不忠实预测的logits(α倍),通过这种对比解码进一步增强忠实度。α设为0.2时取得最优效果。相比上下文感知解码(CAD),SID利用了更多样化的模型内在错误类型。

  4. GroundBench基准: 设计了一个综合性LFQA忠实度评估基准,包含5个数据集(ELI5-WebGPT、ExpertQA、HAGRID、CLAPNQ、QuoteSum),覆盖不同类型的查询和检索源。关键设计是确保提供的文档包含足够信息来回答问题,从而提供受控的评估设置。

损失函数 / 训练策略

损失函数为标准交叉熵,但同时优化两个目标:

\[\mathcal{L}(\theta) = -\mathbb{E}_{(\mathbf{x},\mathbf{c},y^+)}[\log p_\theta(y^+ | [\text{POS}] \oplus \mathbf{x}, \mathbf{c})] - \mathbb{E}_{(\mathbf{x},\mathbf{c},y^-)}[\log p_\theta(y^- | [\text{NEG}] \oplus \mathbf{x}, \mathbf{c})]\]

训练使用FRONT数据集的长文本split,backbone为Llama-2-7B和13B。解码采用采样策略(temperature=1, top-p=0.95)。

实验关键数据

主实验

模型 方法 平均忠实度(%)
GPT-4o Prompting 82.33
GPT-4o-mini Prompting 80.97
Llama-3.1-70B Prompting 75.87
Llama-2-7B SFT 72.98
Llama-2-7B Self-RAG 68.60
Llama-2-7B RECOMP 56.52
Llama-2-7B Rhio 82.35
Llama-2-13B SFT 74.40
Llama-2-13B Rhio 83.77

Rhio-7B相比SFT-7B提升12.84%忠实度,Rhio-13B超越GPT-4o达1.74%。

消融实验

配置 平均忠实度(7B) 平均忠实度(13B) 说明
Rhio (完整) 82.35 83.77 完整方法
w/o SID 80.03 80.42 去除对比解码,-2.90%/-4.17%
w/o FAT 72.98 74.40 去除忠实度感知调优,-12.84%/-12.59%

关键发现

  • FAT是最关键的组件,贡献了绝大部分性能提升;SID在此基础上进一步提升2-4%
  • 遮蔽检索头的负样本增强方式优于实体替换、关系扰动和直接prompt等替代策略
  • 自诱导的负样本(同一模型的检索头生成)比使用其他模型生成的负样本效果更好
  • α=0.2是SID的最优超参数,过大会导致性能下降
  • SID略优于上下文感知解码(CAD),利用了更多样化的错误类型
  • 人工评估确认Rhio-13B的忠实度(87.5% Full Support)超越GPT-4o(86.5%)

亮点与洞察

  1. 检索头与忠实度的关联:将模型内部的注意力机制(检索头)与外部任务属性(忠实度)建立了因果关联,这是一个非常深刻的发现,为理解RAG的工作机制提供了新视角。
  2. 利用模型自身弱点进行训练:遮蔽检索头产生的错误模式就是模型自己容易犯的错误——用模型自身的"弱点"训练模型克服弱点,这种自举式的方法论很有启发性。
  3. 控制令牌的对偶使用:[POS]/[NEG]在训练时用于区分学习,在推理时用于对比解码,一个设计服务两个目的,非常优雅。
  4. 小模型超越大模型:7B模型不仅大幅超越同级别基线,甚至超越GPT-4o,说明针对性的训练策略可以弥补模型容量的不足。

局限与展望

  • 检索头的检测算法来自已有工作,检索头集合本身可能不完美
  • 仅在Llama-2系列上验证,缺乏对更新模型(如Llama-3、Qwen-2.5)的评估
  • 遮蔽数量固定为N=100个检索头,不同模型的最优设置可能不同
  • SID需要两次前向传播([POS]和[NEG]各一次),增加了推理成本
  • GroundBench虽然全面,但每个子数据集的规模相对有限
  • 方法聚焦于LFQA场景,对短文本QA或其他RAG任务的泛化性有待验证

相关工作与启发

  • 与Self-RAG(使用反思令牌进行自我评估)形成互补:Self-RAG通过反思令牌评估检索质量,Rhio通过控制令牌区分生成质量
  • 受上下文感知解码(CAD)启发,但SID通过训练得到更有效的对比信号
  • 检索头的概念来自模型可解释性研究,本文将其成功应用于实际的模型改进
  • 为RLHF/对齐技术提供了新思路:可以利用模型内部机制(如特定注意力头)来构造训练信号

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 检索头与忠实度的关联发现和利用方式新颖,整体方法设计巧妙
  • 实验充分度: ⭐⭐⭐⭐⭐ 提出新基准GroundBench,消融实验充分,含人工评估
  • 写作质量: ⭐⭐⭐⭐ 结构清晰,从先导实验到完整方法层层推进
  • 价值: ⭐⭐⭐⭐⭐ 小模型超越GPT-4o的忠实度,方法实用,代码已开源

相关论文