来源于《A Comprehensive Survey of Retrieval-Augmented Generation (RAG): Evolution, Current Landscape and Future Directions》
一、RAG所解决的问题
如何有效地从外部知识源检索相关信息,如何将这些信息无缝地融入到生成文本中,以及如何在保证生成文本流畅性的同时确保其事实性和上下文相关性。
二、组件
RAG(检索增强生成)主要包含以下两个关键组件:检索器和生成器。
1. 检索器(Retriever)
- 功能:从外部语料库中获取与输入相关的文档或信息,为生成器提供知识来源,以增强生成文本的准确性和事实依据。
- 常见算法及特点
- BM25
- 基于经典的信息检索算法,使用词频 - 逆文档频率(TF-IDF)对文档进行相关性排名。
- 计算文档相关性分数时,考虑查询词在文档中的出现频率,并根据文档长度和词在语料库中的频率进行调整。
- 优势在于简单高效,适用于基于关键词匹配的任务。然而,其在理解语义方面存在局限性,对于复杂的自然语言查询,由于无法捕捉词间关系,性能较差。
- Dense Passage Retrieval(DPR)
- 一种现代的检索方法,将查询和文档编码到高维向量空间。
- 采用双编码器架构,分别对查询和文档进行编码,从而实现高效的最近邻搜索。
- 擅长捕捉查询与文档之间的语义相似性,能基于语义含义检索相关信息,而非仅仅依靠关键词匹配。通过在大规模问答对语料库上训练,即使查询与文档无精确术语匹配,也能找到上下文相关的文档。
- REALM(Retrieval-Augmented Language Model)
- 将检索机制集成到语言模型的预训练过程中。
- 创新之处在于学习检索对特定任务(如问答、文档总结)性能有提升作用的文档。在训练期间,同时更新检索器和生成器,使检索过程针对生成任务进行优化。
- 其检索器不仅能找到与查询相关的文档,还能挑选出对生成准确、连贯回复有帮助的文档,从而显著提高生成回复的质量,尤其在需要外部知识的任务中表现突出。
- BM25
检索时查询和文档是分别经过编码器,计算余弦相似度等距离,只能得到字面上相似的;重排时查询和文档同时经过一个编码器,得到一个logit,得到相关分数。
2. 生成器(Generator)
- 功能:负责接收检索器获取的信息,并将其与输入查询相结合,生成最终的连贯、上下文相关的文本输出。主要还是大模型。
- 常见模型及特点
- T5(Text-to-Text Transfer Transformer)
- 采用统一的文本到文本框架处理各种自然语言处理任务。
- 能够通过微调适应广泛的任务,如问答、总结和对话生成等。
- 在RAG系统中,将检索与生成相结合时,T5 - based RAG模型在多个基准测试中表现优于传统生成模型(如GPT - 3和BART),其多任务学习能力使其成为处理多样化知识密集型任务的理想选择。
- BART(Bidirectional and Auto-Regressive Transformer)
- 特别适合处理从含噪声输入生成文本的任务,如总结和开放域问答。
- 作为去噪自编码器,能够重建损坏的文本序列,从而在处理不完整或含噪声数据时,生成连贯、准确的文本。
- 当与检索器结合用于RAG系统时,BART通过基于外部知识生成文本,有效提高了生成文本的事实准确性。
- T5(Text-to-Text Transfer Transformer)
三、多种模态的RAG
包括文本、音频、视频、多模态RAG。
1.文本RAG
基于文本的RAG模型是最成熟且研究最多的类别。这些模型利用文本数据进行检索和生成任务。
2.音频RAG
区别在于使用音频数据。
3.视频RAG
4.多模态RAG
多模态RAG模型整合来自多种模态的数据——文本、音频、视频和图像,以提供更全面的检索和生成任务方法。像Flamingo这样的模型将多种模态集成到一个统一的框架中,使得文本、图像和视频可以同时处理。跨模态检索技术是核心。
利用大量成对的图像和文本描述数据集,当用户查询与存储的文本描述相匹配时,系统加速图像生成(“检索作为生成”)。图像到文本功能允许用户基于输入图像进行讨论。
四、流行的框架
Agentic Retrieval-Augmented Generation for Time Series Analysis
当前时间序列分析方法存在局限,如依赖固定长度窗口、难以捕捉复杂趋势、SLMs 处理长序列能力有限等。检索增强生成(RAG)方法可增强文本生成能力,Agentic RAGs 能通过多步推理和迭代优化更好地满足复杂需求。
时序任务包括:预测、缺失数据插补、异常检测、分类任务。
论文所提出的框架通过利用分层的多智能体架构,为时间序列分析提供了一种新颖的方法。**它包含一个主智能体,该主智能体协调专门的子智能体,每个子智能体致力于特定的时间序列任务,如预测、异常检测或插补。**这些子智能体采用预训练的语言模型SLM,并利用提示池作为内部知识库,存储代表历史模式和趋势的键值对。通过从这些池中检索相关提示,子智能体可以用有关过去相关模式的上下文知识来增强其预测,使它们能够适应复杂时间序列数据中的各种趋势。该框架的模块化设计,结合各个子智能体的优势,能够在各种时间序列分析任务中提高性能,超越传统固定窗口方法的限制。
RULE:多模态医学RAG
解决的问题:Med-LVLMs 在医疗诊断中存在事实性问题,其生成的响应可能与既定医学事实不符,影响临床决策。虽然检索增强生成(RAG)策略可提升模型事实准确性,但面临检索上下文数量难以确定和模型过度依赖检索信息两大挑战。
框架:(1)事实性风险控制策略。(2)知识平衡偏好调整。
主要工作:
1.微调医学影响领域的图像和文本编码器,使用对比学习。多模态RAG。
2.事实性风险控制策略:旨在通过校准检索上下文的数量来确保模型的回答具有较高的事实准确性。
3.知识平衡偏好调整:DPO。
偏好数据:模型原本回答正确但引入检索知识后回答错误的响应作为不被偏好的效应(模型对检索得到过度依赖);真实答案是被偏好的响应。
METRAG:面向实用性和紧凑性
认为完全依赖相似性有时会降低性能。所以提出和实用性相结合。
1.引入 LLM 对文档效用的监督获取效用导向思维,结合文档相似性和效用提升性能。
相似性模型作为现成检索器;文档效用是其辅助 LLM 回答问题的有用性,通过 LLM 对文档效用的监督使检索器具备效用导向思维。
引入 LLM 作为文档效用的监督信号,计算文档相对于输入查询的效用似然。最小化相似性和效用似然分布间的KL散度。
2.控制文档数量:从教师模型蒸馏数据,然后SFT和DPO一个学生模型做摘要。
RAFT:Retrieval Aware Fine-Tuning
域内RAG
RAFT 通过训练模型来忽略任何检索到的无助于回答给定问题的文档,从而消除干扰。这是通过从有用的文档中准确识别和引用相关片段来解决手头的问题来实现的。此外,RAFT 对思维链式响应的使用进一步完善了模型的推理能力。
SFT微调:给定一组文档,查询,答案和思维链过程(防止过拟合),训练模型从抗干扰文档的能力。
SELF-RAG
目的:通过按需检索和自我反思提高 LLM 生成质量与事实准确性,同时不影响其通用性。
SELF-RAG往语言模型的词表中引入了4种新类型的reflection tokens,分别是Retriver, IsRel, IsSup, IsUse,对应四种不同的子任务,每个子任务下包括多个对应的reflection tokens。
1.模型训练
涉及到两个模型,分别是评判模型C跟生成模型M。
评判模型C:根据不同情形生成对应的判别结果,分别对应前面提到的4种类型的reflection token。训练数据由GPT-4合成,用标准的条件语言模型训练目标优化评判模型(最大化reflection token在给定x和y条件下的对数似然概率。
生成模型:在完成评判模型C的训练后,需要利用其来生成训练生成模型M的数据。构建出对应的训练数据(x,augmented y)。在完成训练数据构建后,按照标准的自回归任务训练生成模型。
2.模型推理
生成模型M首先会判断当前问题是否需要使用检索,如果需要的话,就会检索召回多个相关文档,通过并行的方式同时处理多个文档,并生成对应回复,再通过排序选择其中最合适的回复作为最终结果。
KG-RAG:融合知识图谱
总览:KG-RAG 管道,该管道从原始文本中提取三元组,将它们存储在 KG 数据库中,并允许搜索复杂信息以使用外部 KG 来增强 LLM。
1.存储
将非结构化文本数据转换为结构化 KG,通过 LLM 进行三元组提取,引入三元组超节点处理复杂结构,最后计算节点、超节点和关系的嵌入并存储在向量数据库中。
2.检索
3.生成