原文地址:fit-rag-are-rag-architectures-settling-on-a-standardised-approach
2024 年 4 月 2 日
随着RAG的使用,漏洞开始显现,这些问题的解决方案也开始变得越来越相似。
介绍
随着技术的不断发展,我们注意到一个有趣的现象:人们普遍倾向于采用那些被认为是优秀设计的方案。
以提示工程为例,我们可以看到提示的发展历程:从最初的简单提示,演变成了包含占位符的模板,以便于插入各种变量。
这个过程进一步发展,催生了提示链的概念,并最终进化出了能够运用多种工具的自主代理。
RAG 也正沿着类似的路径发展。起初,RAG的设计似乎已经足够完善。但现在,我们正在RAG的架构中增加更多的智能元素,同时还整合了许多其他组成部分,以丰富RAG的整体结构。
四个初步考虑因素
首先,您将会注意到,在RAG架构中,提示结构的角色日益凸显,诸如Chain-of-Thought这类先进的提示技术正逐渐被采用。单纯的将提示与上下文参考数据结合已不再满足需求,我们正在通过精细调整提示用语来提升性能表现。
其次,RAG架构的静态特性也日益受到关注。一方面,RAG在处理对话时可能不会充分考虑到整个对话的上下文,特别是那些跨越多个回合的上下文。另一方面,检索决策往往基于固定的规则,缺乏必要的灵活性。
第三,我们开始关注到不必要的开销问题。不必要的检索和未优化的额外文本增加了我们不愿见到的成本和推理延迟。
最后,为了决定最佳响应,我们正在采用多步骤方法和分类器。这些方法可能涉及使用多个数据存储,或者仅对用户请求进行分类。这些分类器通常需要依赖标注数据进行训练,以便能够有效地完成特定的任务。
来源
CRAG,是一个轻量级的检索评估器,它评估检索到的文档的整体质量,提供触发不同知识检索操作的置信度。
如我先前所述,RAG正逐步演变为LlamaIndex所描述的“Agentic RAG”。在这种模式中,基于RAG的智能代理负责控制数据检索过程,同时整合多个子代理或工具以提升效率。
FIT-RAG
FIT-RAG研究针对大型语言模型(LLMs)和事实数据方面发现了两个主要问题。
缺乏事实数据:LLMs所检索到的文档可能缺少回答特定查询所需的事实信息,这可能会导致检索过程偏离正确轨道,从而削弱黑盒RAG的有效性。
令牌过载:将所有检索到的文档不加区分地合并在一起,会导致LLMs使用的令牌数量过多,进而降低黑盒RAG的效率。
为了解决这些问题,FIT-RAG设计了一个双标签文档评分器,它将事实信息和LLM的偏好作为不同的标签进行整合。
此外,FIT-RAG还实施了一系列令牌缩减策略,包括自我知识识别器和子文档级别的令牌减少器。这些创新措施旨在最小化不必要的增强,并显著减少增强令牌,从而提高FIT-RAG的效率。
过时的长尾知识导致LLMs陷入幻觉和事实错误,尤其是在知识密集型任务中。
~来源
FIT-RAG 的组件
如下图所示,FIT-RAG由五个关键部分组成:
- 基于相似性的检索器
- 双重标签文档评分系统,
- 双重功能的自我知识识别工具,
- 子文档级别的令牌精简机制
- 提示构建模块。
特别值得一提的是,双重标签文档评分系统的设计巧妙地同时考虑了LLM的偏好和事实信息的一致性,有效降低了忽视事实信息的风险。
同时,双重功能的自我知识识别工具和子文档级别的令牌精简机制在减少输入令牌数量方面起到了至关重要的作用,避免了不必要令牌的浪费。
双标签文档评分器通过双标签学习的方式进行训练,涉及以下两个标签:
- 事实信息(Has_Answer):表示文档是否包含问题的答案。
- LLM 偏好(LLM_Prefer):表示文档是否有助于 LLM 生成正确答案。
这两个标签之间存在明显的数据不平衡,这可能影响到双标签学习的表现。为了克服这一挑战,本研究提出了一种针对数据不平衡问题的双标签学习方法。
该方法通过超梯度下降算法自动学习为数据分配不同的权重,有效地解决了数据不平衡问题,使得双标签文档评分器能够对检索到的文档进行更全面的评估。
双面自我知识识别器通过两个维度来判断 LLM 是否需要外部知识:一是问题是否涉及长尾或过时信息,二是问题的最近相似实例是否具备自我知识。
此外,子文档级令牌缩减器通过从检索到的文档中较少的子文档中选择组合来剔除冗余子文档,同时在确保 LLM 能够提供准确答案的前提下减少令牌数量
FIT-RAG 提示
下图展示了提示措辞是如何优化的。
综上所述
将代理功能融入RAG(检索-阅读-生成)管道中,可以显著提升处理复杂查询和推理任务的能力。通过为管道增添代理功能,它能够应对更多种类的复杂问题和场景。
但是,代理在决策过程中缺乏引导性和透明度是一个重大挑战。面对用户查询时,代理可能需要采用思维链或计划方法,并多次与大型语言模型(LLMs)互动,以便有效地探索问题空间。
这种对LLMs的反复互动不仅增加了计算负担,还使得代理难以对其决策提供清晰的解释。
因此,开发能够提升代理系统引导性和透明度的机制变得迫在眉睫,这样用户就能更好地理解并影响代理的行为。
解决这些关键问题不仅能提升代理系统的效率和成效,还能在处理复杂任务和解决问题时,增强人类与AI代理之间的信任和合作。