这篇文章提出了一种名为CrAM(Credibility-aware Attention Modification)的方法,用于解决检索增强生成(RAG)中的错误信息问题。以下是CrAM方法的详细解释:
- 问题定义:
- 文章定义了”可信度感知RAG”任务。给定一个用户查询、一组相关文档及其可信度分数,目标是让大语言模型(LLM)能够根据文档的可信度自动调整它们对生成输出的影响。
- 方法概述:
- CrAM包括两个主要步骤:
- 识别有影响力的注意力头
- 根据文档可信度修改注意力权重
- CrAM包括两个主要步骤:
- 有影响力的注意力头识别:
- 使用扩展的因果追踪方法来识别对生成错误答案有重大影响的注意力头。【原理:在retrieve后的文档里面掺一个不正确的文档,分别计算(未改动的LLM | 修改特定attention head权重后的LLM)生成错误答案的概率】 -> P0和P1
- 计算过程:
- 给定一个查询、相关文档(包括一个错误信息文档)和一个错误答案。
- 计算LLM生成错误答案的初始概率P0。
- 修改特定注意力头的权重,重新计算生成错误答案的概率P1。
- 计算间接效应(IE): IEh = P0 – P1。
- 使用小数据集计算每个注意力头的平均IE。
- 根据IE值对注意力头进行排序,选择排名靠前的头(就是不好的头,需要进行权重修改)。
- 注意力权重修改(相关文档拼接 + token化 + 根据每个文档的相关分数,为每个token分配相关分数):
- 对于识别出的有影响力的注意力头,根据文档的可信度分数调整其注意力权重。
- 修改过程:
- 将用户查询和相关文档连接并token化。
- 计算每个token的归一化可信度分数。
- 使用元素乘法将注意力权重与归一化可信度分数相乘。
- 应用ℓ1归一化确保修改后的注意力权重之和为1。
- 实现细节:
- 使用小数据集(100个样本)来识别有影响力的注意力头。
- 使用验证集(100个样本)确定最终要修改的注意力头数量。
- 评估方法:
- 在两个开放域问答数据集(Natural Questions和TriviaQA)上进行实验。
- 使用三个不同的LLM(Llama2-13B、Llama3-8B和Qwen-7B)。
- 采用两种设置:理想设置(人工分配可信度分数)和GPT3.5设置(使用GPT生成可信度分数)。
- 使用精确匹配(EM)和F1分数作为评估指标。
- 与多种基线方法进行比较,包括朴素RAG、基于提示的方法(即只在prompt里面说明每个文档的相关分数)、排除法(直接在prompt前剃掉低相关文档)和基于SFT的方法(CAG)(训练一个score aware的LLM)。
- 实验分析:
- 评估CrAM在不同数量的错误信息文档下的性能。
- 分析用于识别有影响力注意力头的数据集大小对性能的影响。
- 研究选择的注意力头数量对性能的影响。
- 进行消融研究(全部的头都进行/不进行attention modify),验证方法各组成部分的必要性。
CrAM通过识别和修改关键注意力头的权重,使LLM能够在生成过程中考虑文档的可信度,从而减少错误信息的影响。这种方法不需要额外的训练,可以作为一种即插即用的解决方案应用于现有的RAG系统。
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。