【RAG】R²AG:将检索信息融入RAG,提升问答系统准确性
【RAG】R²AG:将检索信息融入RAG,提升问答系统准确性
在自然语言处理领域,RAG(Retrieval-Augmented Generation)模型通过结合检索和生成技术,显著提升了问答系统的性能。然而,传统的RAG模型在LLM(大语言模型)与检索器之间存在语义鸿沟,导致信息利用效率不高。为了解决这一问题,最新研究提出了R²AG模型,通过引入检索信息增强RAG的性能。本文将详细介绍R²AG模型的创新方法及其实验效果。
方法
模型架构
R²AG模型的核心创新在于引入了可训练的-Former模块,用于弥合检索器和LLM之间的语义鸿沟。具体来说,模型架构包括以下几个关键组件:
- 检索特征提取
在R²AG中,首先从检索器获取语义表示:
- 查询编码表示
- 文档编码表示
然而,这些表示不能直接使用,因为单一的表示无法捕捉到用于LLM生成的交互特征。因此,需要将不同空间中的表示转换为统一格式的特征。研究者提出了三种相似计算方法来对这些表示进行对齐,从而得到检索特征:
- 相关性得分:计算查询和第个文档之间的相关性
- 前例相似性得分:计算第个文档表示与其在排名列表中的前例加权表示之间的相似性
- 邻居相似性得分:计算第个文档表示与其相邻表示之间的平均相似性
这些得分通过相似性函数(如点积或余弦相似性)计算得出。具体的公式如下:
最后,将这三个特征拼接起来作为输入:
然后将特征列表输入到-Former中,以进一步挖掘检索信息。
- -Former
-Former是R²AG框架中引入的一个可训练模块,目的是弥合检索器和LLM之间的语义鸿沟。-Former被设计为接受列表特征作为输入,并输出检索信息。输入列表,-Former处理输入过程公式如下:
其中:
- 是具有隐藏维度的Transformer编码器
- 是一个线性映射层
- 表示可训练的位置嵌入
这个模块通过利用自注意力机制来增强对检索器提供的列表特征的理解。
- 检索感知提示
步骤:
- 使用一个投影层将检索信息线性变换到与LLM的token嵌入层相同的维度
- 使用LLM的分词器对查询和文档进行分词,并将其转换为嵌入
- 检索信息的嵌入:为了对每个文档进行细致的分析,相应的检索信息嵌入被添加到每个文档嵌入的前面。这些嵌入作为外部知识,起到锚点的作用,引导LLM关注有用的文档。最终的输入嵌入可以排列如下:
其中表示第个文档的检索信息嵌入。通过这种方式,相应文档的检索信息可以很好地混合在一起,减少了LLM处理所有文档的负担。
4. 生成响应:
其中表示LLM生成的最终结果。
这一模块主要是将检索信息作为额外的知识输入,增强了LLM对文档的理解能力。
- 训练策略
主要是训练-Former和LLM的对齐训练:
- 训练-Former:-Former是一个查询-文档匹配任务,是一个二分类任务:
其中是一个二分类头,输出文档的相关性预测。支持是文档的真实标签,交叉熵作为损失函数,定义为:
- LLM的对齐训练:语言建模损失
- 联合训练:联合训练使得-Former能够更好地理解来自检索器的列表特征,确保检索信息可以被LLM深入解释。总体损失:
文中,提供了仅训练-Former而冻结LLM,或同时训练