赞
踩
本文基于该篇文章,按照自己理解思路整理。
https://arxiv.org/abs/2402.19473
更详细RAG技术论文可从该链接获取。
基于查询的 RAG 无缝地将用户的查询与检索信息的见解集成在一起,将其直接提供给语言模型输入的初始阶段。
一般而言,通过检索器检索得到相关数据内容后,与用户原始查询合并,形成一个复合输入序列,然后由生成器处理以创建响应。
常见的 Query-based 技术:
在基于潜在表示的 RAG 框架中,检索到的对象被合并到生成模型中作为潜在表示。这增强了模型的理解能力并提高了生成内容的质量。
FiD 和 RETRO 是基于潜在表示的 RAG 的两个经典结构。
在基于 logit 的 RAG 中,生成模型在解码过程中通过 logits 集成检索信息。通常,logits 通过简单的求和或模型组合以计算逐步生成的概率。
基于 Logit 的 RAG 利用历史数据来推断当前状态并在 logit 级别合并信息,非常适合序列生成。它专注于生成器训练,并允许利用概率分布进行未来任务的新方法。
Speculative RAG 寻求使用检索而不是纯生成的机会,旨在节约资源,加快响应速度。
基于 RAG 系统的抽象结构,可以将 RAG 增强技术分为 5 组:
查询转换可以通过修改输入查询来增强检索结果。
数据增强在检索前改进了数据,包括去除不相关信息、消除歧义、更新过时文档
合成新数据等。
递归检索通过执行多次搜索以检索更丰富、更高质量的内容。
Chunk 优化是指调整块大小以提高检索结果。
RAG 系统的核心检索器依靠熟练嵌入模型对相关内容进行聚类并输入生成器,提高系统性能。具有强表达能力的嵌入模型可以使用特定领域的或与任务相关的数据进行微调,以提高目标区域的性能。
混合检索并发使用各种检索方法或从多个不同来源中提取信息。
重排是对检索到的内容进行重新排序,以实现更大的多样性和更好的结果。
检索转换涉及改写检索到的内容以更好地激活生成器的潜力,从而提高输出。
检索过程还存在其他优化方法。
提示工程(Prompt Engineering)专注于提高 LLM 输出质量。相关技术:
解码调整涉及通过微调超参数来增强生成器控制,以增强多样性和约束输出词汇,以及其他调整。
生成器微调可以增强模型对具有更精确领域知识或更适合检索器的能力。
输出重写是指,在某些特定场景下,对生成器生成的内容进行重写,以满足下游任务的具体需求。
Pipeline 增强指在系统级别优化 RAG 的过程,以实现更好性能结果。
一些研究表明检索并不总是增强最终结果。当模型固有的参数化只是足以回答相关问题时,过度地检索会导致资源浪费和潜在混淆。
由于项目表示和 ANN 搜索中的信息丢失,信息检索本质上存在缺陷。不可避免的噪声,表现为不相关的内容或误导性信息。
尽管提高检索精度对于 RAG 有效性似乎很直观,但最近的研究令人惊讶地发现嘈杂的检索结果可能会提高生成质量。一种可能的解释是,不同的检索结果可能有助于提示构建。
因此,检索噪声的影响尚不清楚,导致实际用途中度量选择和检索器-生成器交互混淆。
虽然检索在某些情况下可以减少生成成本,但在大多数情况下会产生不可忽略的开销。检索和交互过程不可避免地会增加延迟。
当RAG与复杂的增强方法相结合时,这一点被放大,如递归检索和迭代RAG。
此外,随着检索源的规模扩大,存储和访问复杂性也会增加。这种开销阻碍了RAG在对延迟敏感的实时服务中的实用性。
检索器和生成器的目标可能不对齐,它们的潜在空间可能不同,设计它们的交互需要细致的设计和优化。目前的方法要么解开检索和生成,要么将它们集成到中间阶段。虽然前者更具模块化,但后者可以从联合训练中受益,但阻碍了通用性。
检索的引入不可避免地增加了系统复杂度和要调整的超参数数量。
RAG 的主要缺点之一,特别是基于查询的 RAG,它极大地延长了上下文,使得对于上下文长度有限的生成器是不可行的。
此外,延长的上下文也通常会减慢生成过程。
提示压缩和长上下文支持的研究进展部分缓解了这些挑战,尽管在准确性或成本方面有轻微的权衡。
-持续更新-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。