AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


一百零八智英汇,RAG开启新纪元(下)
发布日期:2025-01-24 18:28:31 浏览次数: 1543 来源:青哥谈AI
推荐语

推荐语:
这是关于 RAG 方法的深度解读,多模态融合带来全新可能,极具前瞻性!

核心内容:
1. RAG 方法的优势与应用场景
2. 当前 DocVQA 面临的问题
3. M3DOCRAG 框架的核心内容

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家

本文续上篇《一百零八智英汇,RAG开启新纪元(上)》


智联多模,开启感知

摘要:

结合文本、图像、代码、结构化知识、音频和视频等多模态数据的RAG方法,可以加强不同模态间信息的融合,实现更深层次的理解和生成。可以根据不同的业务情况,创建更加灵活和精确的检索策略,以满足不同应用场景的需求,提供更广泛的知识获取途径,从而显著提升大模型的理解和生成能力,目前已经有很多RAG的相关工作在医疗领域实现落地。展望未来,随着多模态大语言模型的发展,检索多模态信息以增强文本生成的能力将成为一个重要的研究方向。这不仅有助于使文本生成更加贴近现实世界的语境,而且能够构建出更加智能、互动性更强的AI系统。


M3DocRAG: Multi-modal Retrieval is What You Need for Multi-page Multi-document Understanding


    论文链接:https://arxiv.org/abs/2411.04952

    Demo展示:https://shorturl.at/qMSzM

    文档视觉问答(DocVQA)是通过解读文档图像所含信息来回答文本问题的多模态任务。下图(a)(b)中展示了当前DocVQA所遇到的问题:往往需要跨越不同页面或文档的信息,现有的VQA方法难以处理众多长文档;部分文档具有复杂的视觉格式,像表格、图表和混合布局,可诸如OCR这类的文本提取方法会忽略这些细微之处,致使文档解读不完整或不准确。

    M3DOCRAG(Multi-modalMulti-pageMulti-DocumentVisualQuestionAnswering,多模态多页多文档检索增强生成)作为一个新的多模态RAG框架,M3DOCRAG的核心内容包括:

    1. 文档嵌入阶段:把所有文档页面转为RGB图像,并从页面图像中提取视觉嵌入(例如 ColPali)。

    2.页面检索阶段:用文本查询检索相似度高的前K个页面。对于开放域设置,创建近似页面索引,比如倒排文件索引(IVF),以加快搜索速度。

    1. 问答阶段:使用MLM进行视觉问答以获取最终答案,M3DOCRAG能够灵活处理封闭域(单个文档)和开放域(大量文档的语料库)设置中的DocVQA。

    M3DOCRAG能够灵活适应各类文档情境(封闭域和开放域)、问题跳转(单跳和多跳)以及内容形式(文本、图表、图形等)。M3DOCRAG框架借助多模态检索模型检索相关文档页面,并利用多模态语言模型(MLM)从检索到的页面生成问题答案。



    VisRAG: Vision-based Retrieval-augmented Generation on Multi-modality Documents

    论文链接:https://arxiv.org/abs/2410.10594

    代码地址:https://github.com/openbmb/visrag

    在真实场景中,知识往往以多模态的形式出现,比如教科书、手册等。这些文档中的文本与图像交织在一起。为了从这类数据源中提取文本,通常需要一个解析阶段,这包括布局识别、光学字符识别(OCR)和文本合并等后处理步骤。论文提出了一种VisRAG,旨在探索完全基于视觉语言模型(VLMs)构建纯视觉RAG流程的可行性。TextRAG 通常使用基于文本的单元进行检索和生成。右边是 VisRAG,与传统RAG框架利用文本片段进行检索和生成不同,VisRAG通过文档图像来保留全部信息,确保数据的完整性。

    VisRAG 由基于 VLM 的检索器(VisRAG - Ret)和生成器(VisRAG - Gen)组成。它直接将文档作为图像进行嵌入和检索,避免了传统方法中解析文档获取文本的过程,从而最大程度地保留了原始文档中的信息。核心内容包括:

    1. 检索阶段(VisRAG-Ret):遵循双编码器范式,使用 VLM 对查询和文档页面进行编码。通过位置加权平均池化获取最终嵌入,并使用 InfoNCE 损失进行优化。

    2. 生成阶段(VisRAG-Gen):针对不同的 VLM 能力提出了多种生成方法,包括页面拼接(Page Concatenation)、加权选择(Weighted Selection)和使用支持多图像输入的 VLM 等,以处理多个检索到的页面并生成答案。

    VisRAG-Ret 在不同设置下均优于现有模型,具有更好的泛化能力和内存效率,VisRAG - Gen 在使用真实文档时性能优于传统方法,在处理检索到的文档时,加权选择方法在处理多文档时表现更好,多图像 VLM 随着检索文档增多性能提升,VisRAG 利用 VLM 处理多模态文档,在检索和生成方面优于传统基于文本的 RAG,具有更高的训练数据效率和泛化能力。


    Retrieval-Augmented Egocentric Video Captioning

    论文链接:https://arxiv.org/abs/2401.00789v4

    代码地址:https://jazzcharles.github.io/Egoinstructor/

    以第一人称视角的视频理解存在挑战,以往方法多局限于对自身视频的表示学习,未充分利用大规模第三人称视频。论文提出了 EgoInstructor 模型,包括跨视图检索模块和多模态字幕生成模型,先检索相关视频再生成字幕,核心内容包括:

    1. 跨视图视觉表示对齐:分别提取自身和外部视频的视觉 - 语言表示,并训练跨视图视频编码器。利用自然语言配对视频,包括字幕精炼、配对和长视频对构建步骤。用 EgoExoNCE 损失训练,定义正负样本,在推理时选择相似度最高的样本。

    2. 检索增强字幕生成:包含字幕生成模型的视觉编码器、感知器重采样器和文本解码器等关键模块。

    字幕优化和 EgoExoNCE 损失函数能提升检索效果,不同的第一人称视频编码器在应用本文方法后性能均有提升,检索的第三人称视频能显著提升字幕生成性能,EgoInstructor 模型在不同数据集上表现出良好的泛化能力,且可视化结果证明了其有效性。





    EVOR: Evolving Retrieval for Code Generation


      论文链接:https://arxiv.org/abs/2402.12317v2

      代码地址:https://arks-codegen.github.io/

      检索增强生成(RAG)技术无需额外训练即可与大语言模型(LLM)无缝集成,已在代码生成领域展现出应用潜力。然而,当前的检索增强代码生成(RACG)系统多依赖于单一类型的静态知识源,如语法文档或代码仓库,这限制了LLM在面对新库或不常见编程语言时的表现,可能导致代码生成不够准确。针对这些情况,论文提出EVOR,核心内容包括:

      1. 查询进化从给定的自然语言问题出发,在首轮迭代中,直接将问题作为查询用于检索。随后,基于问题、检索到的知识、LLM 生成的草稿程序以及执行反馈,利用另一个 LLM生成新的查询。在后续迭代中,新查询将替代上一轮查询进行检索操作,通过不断调整查询内容,使检索模型能够更精准地获取与当前任务相关的信息,从而提高 LLM 生成代码的质量。

      2. 知识库构建与进化知识汤是 EVOR 方法的核心组成部分,包含四种类型的知识。网络搜索是传统 RAG 应用中常用的资源,通过 Python API 获取谷歌搜索排名靠前的网站内容,并转换为 markdown 格式,为解决编码问题提供丰富的参考资料;知识库的进化主要依赖于执行反馈和代码片段。在每次迭代中,使用样本输入执行生成的程序,如果程序执行成功,将其标记为 “语法正确” 的代码片段并纳入知识库,作为后续任务的有效参考;若执行失败,则将(代码片段,错误消息)对添加到知识库中。

      3. EVOR 管道:包括查询制定、知识检索、程序生成、执行反馈和知识库更新等步骤,设置最大迭代次数和终止条件。

      在该场景下 EVOR 表现优于传统 RAG,与 SWE-Agent 相当且可融合提升性能。在不同 Token 水平下 EVOR 性能均高于 DocPrompting,token 增加时优势更明显。与基于 LLM 的代码生成、检索增强生成、代码执行相关工作紧密相连,且 EVOR 在利用外部知识的代码生成设置上有创新。



      HtmlRAG: HTML is Better Than Plain Text for Modeling Retrieval Results in RAG Systems

      论文链接:https://arxiv.org/abs/2411.02959

      代码地址:https://github.com/plageon/HtmlRAG

      在传统的RAG系统中,HTML文档被转换为纯文本输入给LLM,这导致了结构化信息丢失、语义信息削弱和冗余信息增加等问题。例如,表格变得无序,关键的HTML标签语义被忽略,且非语义内容如CSS和JavaScript增加了LLM的处理负担。提出了一种创新的HtmlRAG系统,直接在RAG中使用HTML格式来保持内容的结构和语义信息,核心内容包括:

      1. HTML 清理模块:去除 CSS 样式、注释、JavaScript 以及冗长的 HTML 标签属性,因为这些内容对 LLMs 理解帮助有限。合并多层单嵌套标签和删除空标签,在不损失语义信息的情况下压缩 HTML 结构。

      2. 块树构建与修剪:将检索到的所有 HTML 文档连接并解析为 DOM 树,再转换为块树。通过设置每个块的最大字数来调整块树的粒度,合并节点形成块,以降低计算成本。用现成的嵌入模型计算块与用户查询的相似度得分,采用贪心算法删除低相似度块。但该方法对细粒度块效果不佳,且缺乏全局视野。利用生成式模型对进一步修剪块树。通过训练模型计算块的得分,该得分基于从根标签到块标签和文本的路径生成概率。在推理过程中,采用高效的树状推理和动态跳步策略来降低计算成本。

      在六个QA数据集上进行了实验,全面评估了该系统在准确率和生成质量上的表现。实验结果显示,与传统的纯文本RAG系统相比,HtmlRAG在保持信息结构和提升内容相关性上均表现出色。



      Video-RAG: Visually-aligned Retrieval-Augmented Long Video Comprehensio

      论文链接:https://arxiv.org/abs/2411.13093

      代码地址:https://github.com/Leon1207/Video-RAG-master

      当前 LVLMs 在理解短视频上表现尚可,但长视频理解仍具挑战。扩展 LVLMs 上下文长度的微调方法需大量数据和 GPU 资源,基于 GPT 的Agent方法则依赖专有模型且有诸多局限,检索增强生成(RAG)技术被应用于视频任务,即利用工具处理长视频后送 Proprietary Model(如 GPT-4o)生成结果。但这些方法大多将视频转为文本,缺乏与视觉上下文的对齐,导致视觉信息丢失,且在多轮交互中资源消耗大,依赖强大的 LLMs,灵活性和生成能力受限。因此,论文提出Video-RAG,核心内容如下:

      1. 查询分解:当 LVLM 接收到用户关于视频的查询后,在无视频帧信息的情况下处理文本信息,借助解耦提示生成检索请求,格式为 JSON。请求涵盖语音识别、物理实体识别和实体细节等方面,这些请求可能为空值,随后被解析并传递到辅助文本检索阶段。

      2. 辅助文本生成:从视频中并行构建三个数据库。利用 EasyOCR 从采样视频帧提取文本构建 OCR 数据库,并用 Contriever 编码文本嵌入存储;从视频提取音频并通过 Whisper 转录为文本构建 ASR 数据库,同样编码存储;基于对象检测请求和 CLIP 相似度筛选关键帧,用 APE 模型检测对象信息,以自然语言表示存储构建 DET 数据库。

      3. 检索:用 Contriever 框架编码用户查询和 OCR、ASR 解析请求为文本嵌入,通过 FAISS 工具从相应数据库检索辅助文本。对于 DET 数据库,先对原始检测信息用场景图预处理为更易被 LVLM 理解的格式,再依据 LVLM 的请求选择确定最终的对象辅助信息。

      4. 集成与生成:将不同类型辅助文本按时间顺序用自然语言组织成统一辅助输入,与用户查询和采样视频帧一起输入 LVLM 生成最终结果。

      使用 Video-MME、MLVU 和 LongVideoBench 等长视频基准数据集。在 Video-MME 上,对六个开源 LVLMs 应用 Video-RAG 平均性能提升 8.0%,72B 模型下性能优于 Gemini 1.5-Pro;在 MLVU 和 LongVideoBench 上也有不同程度的性能提升。



      TableRAG: Million-Token Table Understanding with Language Models

      论文链接:https://arxiv.org/abs/2410.04739

      代码地址:https://github.com/google-research/google-research/tree/master/table_rag

      大语言模型受到上下文长度的限制,长上下文还会降低模型的推理能力,产生所谓的“中间迷失”现象。同时,表格规模的增加还会显著提升计算成本和处理延迟。简单的解决方案,比如截断表格或仅读取表格模式,通常会导致关键信息的缺失。为此,已有的研究尝试通过检索关键行和列来构建子表,从而提取回答查询所需的重要信息。这些方法将整行或整列编码为稀疏或密集向量,以减少LM的token使用量,但在处理极大规模的表格时,依然面临计算效率和性能方面的挑战。因为要编码整行或整列,需要处理整个表格,这对于包含数百万个单元格的表格来说是不现实的。论文提出了一种新的可扩展框架TableRAG,核心内容如下:

      1. 表格查询扩展:为模式和单元格值生成单独查询,如对于 “What is the average price for wallets?” 会生成针对列名(如 “product”“price”)和相关单元格值(如 “wallet”)的查询。

      2. 模式检索:使用预训练编码器根据查询获取相关列名及数据类型、示例值等信息,对列进行类型转换和示例值展示,并结合 top-K 检索结果进行排序。

      3. 单元格检索:构建包含不同列值对的数据库,提取回答问题所需的特定单元格值,可实现单元格识别和单元格-列关联,在必要时引入单元格编码以提高效率。

      4. 程序辅助求解器:使语言模型能利用检索到的信息与表格进行交互,文中采用 ReAct 方法,通过示例展示了其工作流程。

      构建了 ArcadeQA 和 BirdQA 两个大规模表格问答数据集,分别源自 Arcade 和 BIRD-SQL 数据集,还扩展了 TabFact 数据集以生成不同规模的合成表格,与 ReadTable、ReadSchema、RandRowSampling、RowColRetrieval 四种方法进行比较,均基于相同的 PyReAct 求解器实现。结合模式检索和单元格检索,利用查询扩展来提取表格中的关键信息,减少提示长度和信息损失,使语言模型能有效处理大规模表格。



      CodeGRAG: Bridging the Gap between Natural Language and Programming Language via Graphical Retrieval Augmented Generation

      论文链接:https://arxiv.org/abs/2405.02355

      模型地址:https://anonymous.4open.science/r/Code-5970/

      大语言模型在代码生成方面有潜力,但自然语言和编程语言之间存在语法差距和词汇不匹配问题,影响了代码生成性能。例如,编程语言有特殊标记且结构复杂,与自然语言的顺序结构不同。论文提出了CodeGRAG 框架,核心内容包括:

      1. 图形知识库准备:提取代码块的数据流图和控制流图,并结合读写信号组成复合语法图,以更好地表示代码,同时保留语义和逻辑信息。

      2. 知识查询:根据任务生成查询,从知识库中检索图形知识,通过特定的编码和距离计算来匹配查询与知识库内容。

      3. 图形知识增强生成:针对无调优模型提出元图模板将图形视图转换为知识,针对可调优模型提出软提示技术,利用预训练的 GNN 专家模型将编程领域知识注入 LLMs 参数。

      CodeGRAG 相比基础模型有性能提升,元图引导的模型比原始代码块引导的模型表现更好,软提示调优比简单监督调优更有效。同时研究了 GNN 专家预训练目标的影响,发现对齐和结构保留目标都有助于提升模型性能;分析了图形视图组件的影响,表明边缘特征、节点类型和整体结构都对构建代码结构视图有作用。在图形视图的兼容性上,其提取过程适用范围广且提取率较高。



      RECAP: Retrieval-Augmented Audio Captioning

      论文链接:https://arxiv.org/abs/2309.09836

      代码地址:https://github.com/Sreyan88/RECAP

      音频字幕旨在用自然语言描述音频内容,与语音识别不同,它侧重于环境声音。过去的音频字幕模型多采用编码器 - 解码器架构,但在跨域设置中表现不佳。主要原因是不同域中独特音频事件的出现情况不同,且新音频概念不断涌现。

      论文提出一种新的音频字幕系统 RECAP,它基于检索增强生成技术,能有效解决音频字幕领域的域转移问题,并在多个数据集上取得优异性能。核心内容包括:

      1. 总体架构:采用 CLAP 作为音频编码器,GPT-2 作为语言解码器。通过 CLAP 提取音频的最后隐藏状态,并利用随机初始化的交叉注意力模块连接音频嵌入和解码器。训练时冻结 GPT-2 和 CLAP,仅训练交叉注意力层。

      2. 提示构建:利用 CLAP 从数据存储中检索与音频最相似的前 k 个字幕来构建提示,计算当前音频嵌入与数据存储中所有字幕嵌入的余弦相似度,选择相似度最高的字幕。

      在处理组合音频和新音频事件时,RECAP 相比当前最优方法(SOTA)表现更好,如在 Clotho 和 AudioCaps 测试集的组合实例中,SOTA 只能描述一个音频事件,而 RECAP 能捕捉多个,同时训练成本低且能利用文本字幕数据存储提升性能。



      Retrieval-Augmented Score Distillation for Text-to-3D Generation

      论文链接:https://arxiv.org/abs/2402.02972

      代码地址:https://ku-cvlab.github.io/ReDream/

      文本到 3D 生成虽借助 2D 扩散模型取得进展,但 3D 先验知识不足导致几何不一致。现有解决方法如在多视图数据集上微调扩散模型受 3D 数据质量和多样性限制,基于分数蒸馏的方法虽能生成高质量 3D 模型,但缺乏 3D 几何知识会产生伪影和不一致问题。论文提出ReDream,核心内容包括:

      1. 公式化:基于粒子变分推理框架,使粒子从检索资源吸收信息,通过检索模块和新方法优化粒子速度,促进分布优化。

      2. 初始化分布作为几何先验:利用检索邻居初始化粒子,使其成为变分分布的引导,通过辅助目标使变分分布与检索资源经验分布相似,实验证明可确保粒子 3D 结构稳健性和一致性2

      3. 2D 先验的轻量级适应:针对分数蒸馏中 2D 先验模型的视点偏差问题,利用检索到的 3D 资产在测试时进行轻量级适应,平衡视点概率密度,有效减少偏差且不降低模型质量。

      4. 3D 资源检索:从 Objaverse 1.0 数据集检索 3D 资源及对应字幕,用 ScaNN 算法基于 CLIP 嵌入检索,结合图像和文本嵌入,检索时间短,未检索到完全匹配资产时也能提供参考。

      与多种方法比较,在处理复杂提示和生成高质量纹理方面表现更好,通过 CLIP 分数和 A-LPIPS 指标证明在文本-3D 对齐和视图一致性上更优,用户研究中约 75% 参与者更偏好本文方法。



      MMed-RAG: Versatile Multimodal RAG System for Medical Vision Language Models

      论文链接:https://arxiv.org/abs/2410.13085

      代码地址:https://github.com/richard-peng-xia/MMed-RAG

      人工智能在医疗领域有潜力,但 Med-LVLMs 存在事实性幻觉问题。微调受数据量和分布限制,现有基于检索增强生成(RAG)的方法缺乏通用性且存在对齐问题。论文提出MMed-RAG,核心内容包括:

      1. 领域感知检索机制:通过领域识别模块为输入医学图像分配标签,选择对应的检索模型,其多模态检索器经对比学习训练,为 Med-LVLMs 提供知识检索。

      2. 自适应检索上下文选择:根据检索上下文的相似度分数动态选择合适数量的上下文,避免信息过多或过少导致的幻觉,利用相似性比率优化检索结果。

      3. 基于 RAG 的偏好微调:构建偏好对解决跨模态和整体对齐问题,包括鼓励模型利用图像信息和正确处理检索知识的不同情况,通过直接偏好优化微调模型。

      在多个数据集的医学视觉问答和报告生成任务中,MMed-RAG 优于基线方法和其他开源 Med-LVLMs,在不同任务上分别有显著提升,且在报告生成任务提升更明显。



      LaB-RAG: Label Boosted Retrieval Augmented Generation for Radiology Report Generation

      论文链接:https://arxiv.org/abs/2411.16523

      代码地址:https://github.com/uc-cdis/label-boosted-RAG-for-RRG

      放射学报告对疾病诊断和治疗至关重要,但放射科医生面临着工作量大的问题,同时人工智能在医学领域的应用受到关注。放射学报告生成(RRG)是从图像自动生成报告的任务,当前方法存在需大量计算资源或数据泄露等问题。RRG 作为图像字幕的一种特殊形式,检索增强生成(RAG)等无需模型训练的方法受到关注,但 RRG 作为图像到文本任务,如何有效应用这些方法仍需研究。同时,医疗领域有多种特定模态的基础模型,如何组合使用这些未联合训练的模型以提升 RRG 性能是一个开放问题。因此,本文提出的 LaB-RAG,核心内容包括:

      1. 框架概述:使用标签增强的 RAG 算法和上下文学习(ICL)进行图像字幕生成,包括图像、文本和标签数据集的准备,使用 BioViL-T 提取图像特征,训练 LaB-Classifiers 进行标签预测等步骤。

      2. 标签增强的 RAG 算法:通过图像嵌入相似性检索示例文本,利用分类标签对检索和增强步骤进行改进,包括标签增强过滤(如 “Exact”“Partial” 等过滤方式)和标签增强格式与提示(如 “Naive”“Simple” 等格式)。

      与其他检索式和直接微调模型相比,LaB - RAG 在某些指标上表现更好或相当,对模型组件的实验表明标签的使用和模型选择对结果有影响。



      Path-RAG: Knowledge-Guided Key Region Retrieval for Open-ended Pathology Visual Question Answering

      论文链接:https://arxiv.org/abs/2411.17073

      代码地址:https://github.com/embedded-robotics/path-rag

      病理图像分析对癌症诊断和治疗至关重要,但深度学习方法常忽略组织结构和细胞组成等领域知识。在开放式病理视觉问答中,现有视觉语言模型表现不佳,如 LLAVA 召回率仅 38%。因此需借助病理文献领域知识确定关键区域,并利用 VLM 检索信息。论文提出Path-RAG,核心内容包括:

      1. H&E 染色病理图像识别:用 HistoCartography 工具检测图像中细胞核数量,以 5 个细胞核为阈值区分病理与非病理图像,非病理图像直接用 LLaVA - Med 处理,病理图像则进行下一步操作。

      2. 病理图像分解:利用 HistoCartography 中的工具进行染色归一化、细胞核检测、特征提取等操作构建细胞核图,将图像分为 9 个有 20% 重叠的补丁,按细胞核中心数量排名选取补丁,并通过随机补丁消融研究验证方法有效性。

      3. 补丁标注和候选答案提取:用 LLaVA - Med 为每个补丁生成文本描述和候选答案,非病理图像只用输入图像生成描述。

      4. 基于补丁知识的推理:用 GPT - 4 对问题及补丁答案 / 描述进行推理,病理图像有 Path-RAG(answer)和 Path-RAG(description)两种方式,同时设置了不使用 GPT - 4 的基线方法。

      使用 PathVQA 和自建的 ARCH-Open 数据集,使用 LLaVa - Med 模型及在 PathVQA 训练集上微调的模型,在 NVIDIA RTX A6000 GPU 上进行推理,用 GPT4 生成最终答案,Path-RAG 通过检索领域知识选择相关补丁,显著提升了召回率,在有无 GPT-4 时均有性能提升,且对未微调的 LLaVa-Med 也有改善。





      长文本 vs RAG,是敌是友

      摘要:

      过去,在大模型能力有限的情况下,微调曾经是解决业务场景的主要方 法,如今,长文本和RAG提供了额外的选择,构建大模型应用时,较长的文本输入有助于模型捕捉到更为复杂和细微的关系,从而提高输出的质量。这实际上反映了输入输出窗口大小对模型性能的影响:当模型能够处理更大范围的信息时,其理解和生成的内容通常会更加准确和相关。然而,RAG 和长文本处理之间的区别在于它们如何处理数据:长文本处理往往涉及实时分析所有可用的数据,而 RAG 则更多地依赖于预先检索和处理过的离线数据。RAG的应用价值在于它能够在大模型预处理的基础上加速重复性任务,并非完全替代长文本处理,而是两者相辅相成。随着技术的发展,虽然某些现在依靠RAG实现的任务将来可能直接通过处理长文本完成,但RAG自身也将不断进步,出现了像LongRAG这样的工作,不断地去开辟新的应用场景。


      Long Context vs. RAG for LLMs: An Evaluation and Revisits


        论文链接:https://arxiv.org/abs/2501.01880

        代码地址:https://github.com/lixinze777/LC_VS_RAG

        LLMs 在处理问题时面临如幻觉、缺乏实时信息和领域知识等挑战,解决方法之一是增强其外部记忆,主要有长文本(LC) 和检索增强生成(RAG) 两种策略,但不同研究对两者的效果存在分歧。论文旨在重新审视相关研究,通过改进评估方法,更全面地比较 LC 和 RAG 的优劣,并为未来 LLMs 与外部知识源的优化提供指导。研究方法包括:

        1. 问题过滤与扩展:从 12 个常用的长上下文 QA 数据集中筛选出 LLM 无法依靠自身参数知识回答的问题,并通过收集原始数据集中的额外样本将数据集扩展到约 20,000 个问题,同时保持数据分布与原始数据集相似。

        2. 评估框架:包括三个阶段,首先在样本问题集上评估 BM25、Contriever、OpenAI Embeddings、Llama-Index 和 RAPTOR 等五种检索器,选出最佳检索器;然后使用最佳检索器在完整问题集上比较 RAG 和 LC;最后对仅 RAG 答对、仅 LC 答对、RAG 回答更好和 LC 回答更好的四类问题子集进行深入分析。

        3. 评估指标:采用赢率系统,结合精确匹配(EM)分数和 F1 分数进行评估,严格的 EM 分数用于判断答案正确性,F1 分数用于处理长开放式回答问题,以更全面地比较 RAG 和 LC 的性能。

        实验结果表明,

        1. 检索器比较:在样本问题集上,RAPTOR 表现最佳(正确回答率 38.5%),基于索引的检索器优于基于块的检索器。RAPTOR 在需要整体理解文档的场景(如研究论文)中能力更强,基于块的方法在信息分散时表现不佳,基于索引的检索器在解释对话方面有一定能力。

        2. LC 与 RAG 比较:在过滤后的完整问题集上,LC 正确回答 56.3% 的问题,RAG 为 49.0%。LC 在处理如 Wikipedia 文章和书籍等结构良好、密集上下文的任务中表现更好,能回答 RAG 遗漏的 2000 多个问题;RAG 在处理碎片化信息,特别是对话场景和一般问题时具有优势,能正确回答近 1300 个 LC 无法回答的问题。

        3. 深入分析:从知识来源看,LC 在 Wikipedia 和故事等来源表现出色,RAG 在对话和论文 / 报告相关来源表现较好;从问题类型看,LC 在事实类问题(如Who、Where、Which)上更优,RAG 在 “Other”(简单 “是 / 否”)问题上表现突出,在开放式问题(如 How)上与 LC 表现相当。通过词频可视化发现,LC 在叙事主题上表现较好,RAG 在技术或数据导向主题上更有优势。


        LongRAG: Enhancing Retrieval-Augmented Generation with Long-context LLMs

        论文链接:https://arxiv.org/abs/2406.15319

        代码地址:https://tiger-ai-lab.github.io/LongRAG/

        传统 RAG 框架在开放域问答任务中,多采用如 100 字段落这样的短检索单元。其检索器需从庞大语料库中找出精确的短检索单元,而阅读器仅从这些短检索单元提取答案,这种 “重” 检索器和 “轻” 阅读器的设计使检索器压力过大。短检索单元易因文档截断导致语义不完整,丢失上下文信息,影响整体性能。如今长上下文语言模型发展迅速,读者可处理更长输入,促使重新思考 RAG 设计。论文提出LongRAG,核心内容包括:

        1. 长检索单元:利用整个文档或组合相关文档构建超 4K Token的长检索单元,大幅减少语料库中检索单元数量,减轻检索器任务难度,提供更完整信息,简化检索器架构,避免额外重排序或迭代检索。如在 NQ 和 HotpotQA 数据集,通过分组相关短文档,使检索单元长度增加 30 倍,数量大幅减少。

        2. 长检索器:通过搜索语料库中的长检索单元,识别与给定查询相关的粗粒度信息,仅选取少量(1-8 个)顶级检索单元用于后续步骤,相比检索数百个短单元,大大降低遇到干扰信息(hard negatives)的可能性,将更多提取精确答案的负担转移给阅读器。其工作流程包括构建长检索单元、进行相似度搜索和聚合检索结果三个步骤,在相似度搜索中采用近似方法处理长检索单元编码难题,并通过实验验证该方法优于直接编码长上下文。

        3. 长阅读器:将相关指令、问题和长检索结果输入能处理长上下文且无过度位置偏差的 LLM,如 Gemini-1.5-Pro 或 GPT-4o,使其在长上下文中推理生成最终答案。针对短上下文(少于 1K Token)和长上下文(长于 4K Token)采用不同处理方式,长上下文时先让模型生成长答案,再进一步提取短答案,以提升性能。

        在四个问答数据集上进行测试,包括两个基于维基百科的数据集(NQ 和 HotpotQA)和两个非维基百科数据集(Qasper 和 MultiFieldQA-en),这些数据集在文档长度和来源上有所不同,LongRAG 框架通过平衡检索器和阅读器的负担,在多个任务上表现出色,为现代 RAG 系统设计提供了有价值的参考。



        ChatQA 2: Bridging the Gap to Proprietary LLMs in Long Context and RAG Capabilities

        论文链接:https://arxiv.org/abs/2407.14482

        代码地址:https://chatqa2-project.github.io/

        开源 LLM 社区虽有进展,但与前沿专有模型在多领域仍存性能差距。同时,扩展 LLM 上下文窗口长度成为趋势,且长上下文能力和 RAG 技术互补,但现有 RAG 方法存在问题。之前研究有成果,但仍需进一步提升长上下文和 RAG 能力,并提供可复现方法和数据。论文提出两步法建立 Llama3-70B 长上下文能力,包括将其上下文窗口从 8K 扩展到 128K,并进行三阶段指令调整。核心内容包括:

        1. 扩展上下文窗口:基于 SlimPajama 准备长上下文预训练语料,调整超参数生成 128K 序列长度的 100 亿Token,提高 Llama3 的 RoPE 基频,设置合适的批量大小和学习率进行训练,并发现用特殊字符分离文档更有效。

        2. 指令调整:实施三阶段指令调整,前两阶段在短上下文数据集上训练,第三阶段收集长 SFT 数据集(包括利用现有数据集和合成数据集),并混合训练,设置学习率和批量大小。

        3. 长上下文检索器结合:针对当前 RAG 管道问题,采用能支持数千Token的长上下文检索器(如 E5-mistral 嵌入模型)。

        对比模型包括 GPT-4-Turbo-2024-04-09、Qwen2-72B-Instruct 等。对 ChatQA 2 和基线模型应用 RAG,使用 E5-mistral 检索器并设置合适的块大小和检索块数。评估基准涵盖超 100K Token的超长上下文、32K Token内的长上下文和 4K Token内的短上下文三类,Llama3-ChatQA-2-70B 在超 100K Token长上下文任务和 4K 上下文窗口 RAG 基准测试中表现优于多数现有模型。模型 RAG 性能对块大小变化鲁棒,且输入检索Token总数增加时准确性提高,对比直接长上下文和 RAG 解决方案,发现 RAG 在一定条件下更优。



         



        站在巨人的肩膀上看世界

        摘要:

        在对市面上的开源RAG框架进行了深入调研后,在这里推荐15个知名的RAG开源框架,这些框架以其灵活性和高效性而著称。随着技术的发展,很多框架不再局限于文本检索增强生成,而是进一步扩展到了多模态RAG领域,极大地拓宽了应用的可能性。同时能够处理多样化的数据格式,包括但不限于文本文件(如CSV、JSONL)、图像、文档及Web快照等,确保用户可以灵活应对各种数据源的需求。RAG工作流的设置过程也越来越容易,使得配置更加直观和易于管理,凭借优化后的默认配置,即使是在最基础的设置下,也能提供出色的性能表现,从而加速开发流程并降低入门门槛。最重要的很多框架可以支持多种开发模式,有助于快速复现各类RAG算法,并以最小化开销的设计理念,确保了框架的高度集成性和易用性,便于未来的技术选型和技术迁移。这些特性使得这些开源RAG框架成为研究者和开发者构建先进应用的理想选择,无论是在学术界还是工业界,都能找到它们的身影。

        RAGFlow


          代码地址:https://github.com/infiniflow/ragflow

          Demo地址:https://demo.ragflow.io

          RAGFlow是一个基于深度文档理解的开源RAG(检索-增强生成)引擎。它为任何规模的企业提供简化的RAG工作流程,结合LLM(大语言模型)提供真实的问答功能,并以来自各种复杂格式数据的有根据的引用为后盾。RAGflow 是一个先进的数据处理工具,其优势在于强大的数据提取和处理能力,核心内容包括:

          1. 高质量的数据输入输出:RAGflow 拥有基于深度文档理解的知识提取系统,可以从非结构化数据中抽取信息,保证了输出结果的高质量。

          2. 灵活的数据分块:提供基于模板的数据分块方法,让用户能够根据需要定制化地管理数据,增加了使用的灵活性。

          3. 广泛的兼容性:支持多种数据格式(如Word、PPT、Excel、TXT、图像等),展现了它与不同数据源无缝集成的能力。

          4. 减少幻觉现象:通过引用定位功能,用户可以在必要时对文本分块进行可视化管理和人工干预,提高生成内容的准确性。

          5. 自动化工作流程:RAGflow 支持自动化的RAG(检索增强生成)流程,适用于个人到大型企业的不同需求层次,并提供大语言模型的配置选项以及与嵌入式模型的合作能力。

          6. 多重回忆能力和直观API:具备记忆功能,可以拒绝重排,同时提供简单易用的API接口,便于集成到现有工作流中。



          LazyGraphRAG: Setting a new standard for quality and cost

          代码地址:https://github.com/microsoft/graphrag

          与传统向量 RAG(或“语义搜索”)相比,GraphRAG 的一个关键优势是它能够回答针对整个数据集的全局查询,例如“数据中的主要主题是什么”或“对 X 最重要的影响是什么?相反,矢量 RAG 擅长于答案类似于查询并且可以在特定文本区域中找到的本地查询,例如“Who”、“What”、“When”和“Where”问题的典型情况。

          LazyGraphRAG 的一个关键优势是它在成本和质量方面固有的可扩展性。在一系列竞争方法(标准载体 RAG、RAPTOR, 和GraphRAG local,全局搜索机制),LazyGraphRAG 在成本质量范围内显示出强大的性能,核心内容包括:

          1. LazyGraphRAG 数据索引成本与矢量 RAG 相同,是完整 GraphRAG 成本的 0.1%。

          2. 对于与矢量 RAG 相当的查询成本,LazyGraphRAG 在本地查询上优于所有竞争方法,包括长上下文向量 RAG 和 GraphRAG 漂移搜索(我们最近推出的 RAG 方法显示性能优于矢量 RAG)以及 GraphRAG 本地搜索。

          3. 对于全局查询,相同的 LazyGraphRAG 配置也显示出与 GraphRAG Global Search 相当的答案质量,但查询成本低 700 倍以上。

          4. 对于 GraphRAG 全局搜索 4% 的查询成本,LazyGraphRAG 在本地和全局查询类型上都明显优于所有竞争方法,包括 C2 级别的 GraphRAG 全局搜索。


          FlashRAG: A Modular Toolkit for Efficient Retrieval-Augmented Generation Research

          论文链接:https://arxiv.org/abs/2405.13576

          代码地址:https://github.com/RUC-NLPIR/FlashRAG

          由于缺乏标准化的实现框架,加上RAG过程本身的复杂性,研究人员很难在一致的环境中比较和评估不同的RAG方法。尽管已有一些RAG工具包如LangChain和LlamaIndex,但它们通常比较重量级且难以满足研究人员的个性化需求。

          FlashRAG是一个高效且模块化的开源工具包,旨在帮助研究人员在统一的框架下复现已有的RAG方法并开发自己的RAG算法。工具包内实现了12个先进的RAG方法,并收集整理了32个基准数据集。



          FastGraphRAG

          代码地址:https://github.com/circlemind-ai/fast-graphrag

          FastGraphRAG 的关键革新点在于它引入了 PageRank 算法来优化知识图谱的遍历机制。类似于搜索引擎借助 PageRank 来衡量网页的重要性,FastGraphRAG 也采用这一原理迅速锁定最相关联的知识节点。通过评估各节点的重要程度得分,PageRank 功能助力 FastGraphRAG 实现对知识图谱信息更精明的选择与排序。这就好比为 FastGraphRAG 配备了一个“重要性探测器”,使其能在海量数据中高效地识别并定位核心信息。



          AntGroup-GraphRAG

          代码地址:https://github.com/eosphoros-ai/DB-GPT

          为GraphRAG引入了图社区摘要能力,增强总结性查询问答质量,同时对整体链路做了优化与改进,具体表现在三个方面:

          1. 文本块记忆:知识抽取阶段一次性完成图结构抽取和元素(点/边)总结,并引入文本块记忆能力,解决跨文本块的引用信息抽取问题。

          2. 图社区摘要:使用图社区发现算法划分知识图谱,借助LLM提取社区摘要信息,并支持图社区摘要的相似性召回。

          3. 多路搜索召回不区分全局搜索与本地搜索,通过多路搜索同时提供查询相关的摘要与明细上下文。


          Camel-GraphRAG

          代码地址:https://github.com/camel-ai/camel

          传统的RAG方法在处理复杂查询时还存在一些问题,比如模型幻觉问题。为了减缓这些问题,Mistral和CAMEL共同开发了GraphRAG,通过将知识图谱和向量检索结合,显著提高了检索的准确性和性能。主要内容包括:

          1. CAMEL作为一个多智能体系统框架,提供了知识图谱代理和聊天代理等功能,简化了工作流程。

          2. MistralAI提供了Mistral Large 2大语言模型和Mistral Embed嵌入模型。

          3. Neo4j提供了知识图谱数据库。

          4. Qdrant提供了向量数据库,存储文本嵌入并支持快速向量检索。

          5. Unstructured.io则负责将非结构化数据转换为结构化格式,为RAG系统做好准备。

          Camel-GraphRAG依托Mistral模型提供支持,从给定的内容中提取知识并构建知识结构,然后将这些信息存储在 Neo4j图数据库中。随后采用一种混合方法,将向量检索与知识图谱检索相结合,来查询和探索所存储的知识。



          FlexRAG

          代码地址:https://github.com/ictnlp/flexrag/blob/mas

          FlexRAG 是一个灵活的高性能框架,专为检索增强生成 (RAG) 任务而设计。FlexRAG 支持多模态数据,提供统一的配置管理及开箱即用的检索系统,为科研和原型设计提供充分支持。内容包括:

          1. 多模态RAG: FlexRAG 不仅限于基于文本的检索增强生成 (RAG)。它还支持多模态 RAG,为不同数据类型开辟了广泛的应用可能性。

          2. 多数据类型: FlexRAG 支持多种数据格式,包括文本(例如 CSV、JSONL)、图像、文档、Web 快照等,让您可以灵活地处理各种数据源。

          3. 统一的配置管理: 利用 python 的 dataclass和hydra-core, FlexRAG 统一了配置管理,让 RAG 流程的配置变得更加简单。

          4. 开箱即用: 通过精心优化的默认配置,FlexRAG 在默认配置下就有良好的性能,简化您的开发流程。

          5. 高性能: 利用持久化缓存和异步函数,FlexRAG 显著提高了 RAG 流程的性能。

          6. 科研及开发友好: 支持多种开发方式。此外,FlexRAG 提供了一个伴生仓库,flexrag_examples,来帮助您复现各类RAG算法。

          7. 轻量化: FlexRAG 采用最少的开销设计,高效且易于集成到项目中。



          RAG Foundry: A Framework for Enhancing LLMs for Retrieval Augmented Generation

          论文链接:https://arxiv.org/abs/2408.02545

          代码地址:https://github.com/IntelLabs/RAGFoundry

          虽然大语言模型(LLMs)功能强大,但存在固有局限性,如生成的答案可能不准确、缺乏最新信息、难以关注长文本中的相关信息等。检索增强生成(RAG)通过检索机制整合外部信息,能有效解决这些问题,但 RAG 系统的实施复杂,评估也具有挑战性。论文提出RAG FOUNDRY 框架,该框架将数据创建、训练、推理和评估集成到一个工作流程中,由数据创建、训练、推理和评估四个模块组成,每个模块由配置文件封装和控制,便于快速原型设计和实验各种 RAG 技术。其中包括:

          1. 数据创建与处理模块:通过持久化 RAG 交互来创建上下文增强数据集,包含多种数据处理步骤,分为全局步骤和局部步骤,涵盖数据加载、筛选、检索、采样、提示生成等功能,支持多数据集处理和步骤缓存,确保兼容性和可重复性。以增强问答数据集为例展示了其处理过程。

          2. 训练模块:基于 TRL2 框架,支持如 LoRA 等先进训练技术,可使用数据创建模块生成的数据集对模型进行微调。

          3. 推理模块:根据处理后的数据集生成预测结果,与评估步骤分离,可对单个推理结果文件进行多次评估。

          4. 评估模块:可运行多种指标评估 RAG 技术和调优过程,指标包括精确匹配(EM)、F1、BERTScore 等,还使用答案处理器清理和对齐输出,评估结果会写入文件。



          AgenticRAG

          网页链接:https://weaviate.io/blog/what-is-agentic-rag

          与顺序的简单RAG架构相比,智能体RAG架构的核心是智能体。Agentic RAG将AI智能体纳入RAG流程中,以协调其组件并执行超出简单信息检索和生成的额外行动,以克服非智能体流程的局限性。

          尽管智能体可以被纳入RAG流程的不同阶段,智能体RAG最常用于检索组件中的智能体。具体来说,检索组件通过使用具有访问不同检索工具的检索智能体而变得智能体化,例如:向量搜索引擎(也称为查询引擎),它在向量索引上执行向量搜索(像典型的RAG流程中一样),网络搜索,计算器,任何用于以编程方式访问软件的API,例如电子邮件或聊天程序。

          然后RAG智能体可以在以下示例检索场景中进行推理和行动:决定是否检索信息,决定使用哪个工具检索相关信息,制定查询本身,评估检索到的上下文,并决定是否需要重新检索。



          LLM-Graph-Builder

          代码地址:https://github.com/neo4j-labs/llm-graph-builder

          LLM Graph Builder可以把非结构化数据,PDF、文档、文本、YouTube视频、网页等转换成存储在 Neo4j 中的知识图谱。利用大模型OpenAI、Gemini 、Llama3、Diffbot、Claude、Qwen等从非结构化数据中提取节点、关系及其属性(可自定义要提取的关系、节点)。主要特征包括:

          1. 知识图谱创建:使用LLMs将非结构化数据转换为结构化知识图谱。

          2. 提供Schema:提供您自己的自定义Schema或使用已有的现有Schema来生成graph

          3. 查看图表:在 Bloom 中一次查看特定源或多个源的graph。

          4. AI聊天:对话即可查询与 Neo4j 数据库中的数据进行交互,还可提供来源的元数据(支持使用不同 RAG 方法(GraphRAG、Vector、Text2Cypher)进行知识问答)。



          RAGViz: Diagnose and Visualize Retrieval-Augmented Generation

          论文链接:https://arxiv.org/abs/2411.01751

          代码地址:https://github.com/cxcscmu/RAGViz

          大语言模型(LLMs)在零样本回答生成时缺乏领域特定知识,易产生幻觉。检索增强生成(RAG)技术虽能解决此问题,但现有 RAG 系统对上下文文档的有效性缺乏可解释性,且现有工具无法分析检索文档和语言生成的交互。

          RAGViz由近似最近邻(ANN)索引(用于密集检索,采用分布式系统存储嵌入和索引)、后端服务器(处理语言模型上下文构建逻辑)、LLM 推理服务器(运行 LLM 推理任务,结合 vLLM 和 HuggingFace 模型库获取注意力分数)和前端用户界面(基于 Next.JS 框架,收集查询信息和参数,展示注意力可视化结果)四个主要组件构成。


          帮助用户理解生成的标记与检索文档之间的交互,能精确诊断文档效果、提供多层次注意力可视化、支持文档上下文的迭代实验、简化比较分析、增强检索精度测试,且具有隐私和安全性

          Nano-GraphRAG

          代码地址:https://github.com/gusye1234/nano-graphrag

          Nano-GraphRAG框架核心特点是其简洁性、易用性和可定制性。代码量仅为 1100 行,是官方实现的紧凑高效替代品。它设计为轻量级、异步和完全类型化,是希望将 GraphRAG 集成到项目中而不增加复杂性的开发者的理想选择。



          GraphRAG-Local-UI

          代码地址:https://github.com/severian42/GraphRAG-Local-UI

          基于GraphRAG的本地模型适配版本,具有丰富的交互式用户界面生态系统。




          ThinkRAG


          代码地址:https://github.com/wzdavid/ThinkRAG

          ThinkRAG 可使用 LlamaIndex 数据框架支持的所有模型,致力于打造一个直接能用、有用、易用的应用系统。大模型上,ThinkRAG支持OpenAI API 以及所有兼容的 LLM API,包括国内主流大模型厂商,例如: 智谱(Zhipu),月之暗面(Moonshot ),深度求索(DeepSeek)

          如果要本地化部署大模型,ThinkRAG 选用了简单易用的 Ollama。可以从通过 Ollama 将大模型下载到本地运行,轻松部署在笔记本电脑上,实现本地知识库智能问答。


           


          Kotaemon

          代码链接:https://github.com/Cinnamon/kotaemon

          一个开源的干净且可定制的RAG UI用于构建和定制自己的文档问答系统。既考虑了最终用户的需求,也考虑了开发者的需求。

          1. 自托管文档问答(RAG)Web UI:允许用户自己托管文档问答界面。

          2. 支持多用户登录:可以组织私人或公共文件集合,支持协作和分享。

          3. 组织LLM和嵌入模型:支持本地LLM和流行的API提供商,如OpenAI、Azure、Ollama、Groq等。

          4. 混合RAG管道:提供混合(全文和向量)检索器和重新排名,以确保最佳的检索质量。

          5. 多模态问答支持:支持在包含图表和表格的多个文档上进行问答,并支持多模态文档解析。

          6. 高级引用与文档预览:系统默认提供详细的引用以确保LLM答案的正确性,可以在浏览器内的PDF查看器中查看引用(包括相关分数)并高亮显示。

          7. 支持复杂推理方法:使用问题分解来回答复杂或多跳问题,支持基于Agent的推理,如ReAct、ReWOO和其他代理。

          8. 可配置的设置UI:可以在UI上调整检索和生成过程中的大多数重要方面(包括提示)。

          9. 可扩展性:基于Gradio构建,用户可以自由定制或添加任何UI元素。同时,旨在支持多种文档索引和检索策略,提供了GraphRAG索引管道作为示例。


           



          评竞场内英雄逐鹿

          摘要:

          RAG技术的发展受到算法比较和开源工具透明度不足的限制,全面评估其性能面临多重挑战。例如:RAG系统由检索器和生成器组成,设计能够有效反映两者协同工作的评估指标难度较大;特定应用场景的评估尤为困难,现有基准测试覆盖范围有限,缺乏针对性强的评估指标;构建适用于特定场景的数据集也因场景复杂、数据收集受限和成本高等问题而面临挑战;现有RAG基准大多关注单轮对话,未能充分评估多轮对话的复杂性等等。鉴于这些挑战,学术界和工业界已催生了一系列旨在改进评估方法的新框架,力求通过引入更精细、可靠的评估标准,为不同RAG系统提供一个公平竞争的平台,以促进该领域的健康发展和技术进步。这些更为完善、更具代表性的评估体系,可以更好地指导RAG的研发与应用,帮助RAG更好落地相关业务。


          RAGLAB: A Modular and Research-Oriented Unified Framework for Retrieval-Augmented Generation


            论文链接:https://arxiv.org/abs/2408.11381

            代码地址:https://github.com/fate-ubw/RAGLab

            RAG 的发展受限于缺乏算法比较和开源工具的透明度。该论文推出 RAGLAB,一个模块化、研究导向的开源库,重现 6 种算法并构建全面研究生态。借助 RAGLAB,可以在 10 个基准上公平对比 6 种算法,以模块化方式实现,用户可通过继承和重写方法开发新算法,还提供示例脚本展示其易用性。

            RAGLAB核心组件包括:

            1. 检索器:集成 Contriever 和 ColBERT 模型,统一查询接口,设计服务器 - 客户端架构和检索缓存机制,提升检索效率。

            2. 语料库:提供基于维基百科 2018 和 2023 数据的预处理版本及相应索引和嵌入,并开源处理脚本。

            3. 生成器:整合 Huggingface Transformers 和 VLLM,支持量化和 LoRA 技术,可兼容多种模型,并开发 GPU 管理模块。

            4. 指令实验室:包含系统、任务和算法指令三个组件,便于用户导入和组合提示,进行对比实验。

            5. 训练器:集成 Accelerate 和 DeepSpeed 库,支持 LoRA 和 QLoRA 技术,可对大模型微调。

            6. 数据集和指标:收集 10 个涵盖 5 种任务的基准数据集,实现灵活数据适配机制,提供 3 种经典和 2 种高级指标。






            RAGChecker: A Fine-grained Framework for Diagnosing Retrieval-Augmented Generation


              1. 论文链接https://arxiv.org/abs/2408.08067

                代码地址:https://github.com/amazon-science/RAGChecker

                RAG 系统通过整合外部知识库增强大语言模型,在多种应用中至关重要,但对其全面评估面临挑战,其中RAG 系统由检索器和生成器组成,设计有效评估指标困难;现有指标多为规则或粗粒度,无法准确评估长文本;同时现有指标可靠性未充分探索。

                论文提出RAGChecker 框架,不仅能评估系统的整体表现,还能深入分析检索和生成两大核心模块的性能。主要特点包括:



                1. 细粒度评估:RAGChecker 采用基于声明(Claim)级别的蕴含关系检查,而非简单的回复级别评估。这种方法能够对系统性能进行更加详细和微妙的分析,提供深入的洞察。

                2. 全面的指标体系:该框架提供了一套涵盖 RAG 系统各个方面性能的指标,包括忠实度(Faithfulness)、上下文利用率(Context Utilization)、噪声敏感度(Noise Sensitivity)和幻觉(Hallucination)等。

                3. 经过验证的有效性:可靠性测试表明,RAGChecker 的评估结果与人类判断有很强的相关性,其表现超过了其他现有的评估指标。这保证了评估结果的可信度和实用性。

                4. 可操作的洞察:RAGChecker 提供的诊断指标为改进 RAG 系统提供了明确的方向指导。这些洞察能够帮助研究人员和实践者开发出更加有效和可靠的 AI 应用。


              Benchmarking Large Language Models in Retrieval-Augmented Generation

              1. 论文链接:https://arxiv.org/abs/2309.01431

                代码地址:https://github.com/chen700564/RGB

                该工作分析了不同大语言模型在RAG所需的4项基本能力方面的表现,包括噪声鲁棒性、拒答、信息整合和反事实鲁棒性,并建立了检索增强生成基准。具体为:


                 


                1. 噪声鲁棒性(Noise Robustness):模型需要具备从噪声文档中提取有用信息的能力。噪声文档指的是那些与问题有关联但并不包含解答问题所需信息的文档。例如,在回答“谁获得了2022年诺贝尔文学奖”的问题时,关于2021年诺贝尔文学奖的报道即为噪声文档。为了测试这种能力,噪声鲁棒性的评估会根据设定的噪声比例,将一定数量的噪声文档加入到外部文档集合中,并观察模型的表现。

                2. 否定拒绝(Negative Rejection):当检索到的文档中完全缺乏回答问题所需的特定知识点时,模型应该能够识别这种情况并选择不给出答案。否定拒绝测试通过提供仅包含噪声文档的外部文档集来检验模型是否能够发出“信息不足”或类似的拒绝信号,表明它没有足够的信息来回答问题。

                3. 信息整合(Information Integration):该测试旨在评估模型处理复杂问题的能力,这些问题需要综合多个文档的信息才能得到完整答案。例如,对于询问“ChatGPT iOS应用程序和ChatGPT API是什么时候推出的?”的问题,模型应能提供两个不同推出日期的信息。信息整合测试包括了只能利用多个外部文件中的信息组合起来才能正确回答的问题实例。

                4. 反事实鲁棒性(Counterfactual Robustness):反事实鲁棒性测试用于衡量当LLMs接收到关于检索信息中可能存在风险的指令警告时,它们能否辨识出检索文档中已知事实错误的风险。在这种测试中,即使LLM理论上可以直接回答问题,但如果外部文档含有事实错误,那么模型应当有能力识别这些错误而不被误导。


              RAGEval: Scenario Specific RAG Evaluation Dataset Generation Framework

              论文链接:https://arxiv.org/abs/2408.01262

              代码链接:https://github.com/OpenBMB/RAGEval

              RAG 系统虽能让 LLMs 结合外部知识,但在特定场景评估存在挑战,现有基准覆盖不足且缺乏合适指标。构建特定场景评估数据集面临场景复杂、数据收集受限和成本高等问题。本论文提出用于在各种垂直领域中自动生成特定场景下的的RAG评估用例,这种环环相扣的设计,包括ans和ref的反向校验,主要是强调各个环节Coherence和Consistensy,保证数据集生成的准确性和事实性,尽可能降低幻觉影响。最后提出了DragonBall 数据集,涵盖金融、法律和医疗场景的文本及相关问题,包含中英双语,共 6711 个问题,为研究提供资源。RAGEval的过程包括:

              1. 种子文档:收集一小组特定于领域的种子文档来总结一个Schema,该Schema是通过分析事实信息创建的,从而封装了基本的特定于领域的知识。从少量种子文档中提取关键场景知识,用 GPTs 总结模式,并由专家迭代完善,确保内容多样可靠。

              2. Configuration文件生成:某些规则的约束下,RAGEval根据该Schema生成不同的Configuration。进一步利用这些Configuration来生成不同的文档。依据模式生成配置,结合规则和 LLMs 为模式元素赋值,再由 GPT-4o 生成文档,保证内容丰富且内部一致。

              3. QRA 生成:利用配置生成问题和初始答案,提取参考文献并优化答案与参考文献的匹配,最后从答案中提取关键点,以全面评估信息理解能力。






              CodeRAG-Bench: Can Retrieval Augment Code Generation?


              论文链接:https://arxiv.org/abs/2309.01431

              代码地址:https://github.com/IAAR-Shanghai/CRUD_RAG

              CRUD-RAG 基准是一个创新的评估框架,它超越了传统的问答任务,将 RAG(Retrieval-Augmented Generation)的应用场景扩展到了 CRUD 操作(Create、Read、Update、Delete),以更全面地衡量模型在不同任务中的表现。以下是针对这四种操作类型的详细说明:

              1. 创建:针对需要生成原创、多样化内容的场景,如诗歌创作、故事编写或代码生成等。主要面对文本续写任务,即模型基于给定的输入文本生成符合上下文逻辑的延续内容。这一任务考验模型的创造力和语言组织能力。

              2. 读取:涉及知识密集型场景中复杂问题的回答,包括但不限于问答系统、对话管理和推理任务。面向单文档和多文档问答任务,用以评估模型在信息检索和理解方面的能力。此任务强调模型从大量信息中提取相关知识并准确回答问题的能力。

              3. 更新:关注于修正和纠正已有文本中的错误或不一致性,例如拼写、语法或事实性错误的校正。面向幻觉修改任务,要求模型根据检索到的外部内容对原始文本中存在的错误进行修正。这一任务旨在测试模型识别和改正错误的能力,确保输出内容的准确性。

              4. 删除:从大量文本中提炼关键信息,生成简洁的摘要,适用于文本总结或简化等任务。面向多文档摘要生成任务,模型需从多个相关文档中提炼出最核心的信息,并生成简明扼要的摘要。该任务挑战模型的信息筛选和概括能力。

              改变 RAG 系统各组件(如块大小、嵌入模型、检索器、Top-k、LLM 等),在不同任务中进行实验,采用语义相似度和关键信息等评估指标。不同任务的最优组件设置不同。例如,文本续写任务中较大块大小和 Top-k 值有益;多文档问答任务中,较大块大小和 Top-k 值可提升关键信息的召回和精度;而单文档问答任务中,较小块大小更适合提取关键信息等。



              RAGAS: Automated Evaluation of Retrieval Augmented Generation

              论文链接:hhttps://arxiv.org/abs/2309.15217

              代码地址:https://github.com/explodinggradients/ragas

              RAGAS 提供了一套系统的方法来衡量和改进 RAG 模型的性能,使得开发者可以更好地理解模型的优势和不足之处,从而进行有针对性的优化。关注的三个主要评估指标为忠实度(Faithfulness)、答案相关性(Answer Relevance)和上下文相关性(Context Relevance)。将 RAGAS 与 GPT Score、GPT Ranking 两种基线方法比较,在 WikiEval 数据集上分析模型与人类评估的一致性。结果表明 RAGAS 在忠实度和答案相关性上与人类判断更接近,上下文相关性评估较难,ChatGPT 选择关键句子存在困难。



              AutoRAG: Automated Framework for optimization of Retrieval Augmented Generation Pipeline

              论文链接:https://arxiv.org/abs/2410.20878

              代码地址:https://github.com/Marker-Inc-Korea/AutoRAG_ARAGOG_Paper

              AutoRAG 支持一种简单的方法来评估许多RAG模块组合。可以使用自己的评估数据自动评估各种 RAG 模块,并找到最适合自己用例的 RAG Pipeline。支持40种检索、排序、生成模块,支持15种评价指标。


              MTRAG: A Multi-Turn Conversational Benchmark forEvaluating Retrieval-Augmented Generation Systems

              论文链接:https://arxiv.org/abs/2501.03468v1

              代码地址:https://github.com/ibm/mt-rag-benchmark

              现有的RAG基准大多关注单轮对话,未能充分评估多轮对话的复杂性。多轮对话要求系统能够处理后续轮次的问题、无法回答的问题及多种领域的对话,需要一个具有代表性的多轮RAG基准来全面评估RAG系统的性能。为了填补这一空白,IBM及其合作者提出了MTRAG基准。核心内容包括:

              1. 维度:涵盖多种问题类型(如事实类、比较类等)、多轮问题类型(跟进或澄清)、答案可回答性(可回答、部分可回答、不可回答、对话性语句)及多个领域,确保多样性和代表性。

              2. 对话属性:具有高质量响应(满足忠实性、适当性、自然性和完整性)、段落多样性、答案修复及非独立问题等特性,增加基准难度。

              在数据集上进行了相关实验,结果如下:

              1. 检索:使用 MTRAG 评估词汇、稀疏和密集检索模型,发现查询重写策略效果好,Elser 表现优于 BM25 和 BGE-base 1.5,且多轮检索和非独立问题是改进方向。

              2. 生成:评估 9 种 LLM 在不同检索设置下的表现,用多种指标衡量,结果显示模型在多轮、不可回答问题和特定领域存在挑战,GPT-4o 和 Llama 3.1 405B Instruct相对较好。

              3. 人类评估:对部分基准进行人类评估,验证参考回答质量,发现模型在忠实性和完整性方面有提升空间,Llama 3.1 405B Instruct 在不可回答问题上表现不佳。

              4. 自动评估:探索自动评估方法,确定了一些与人类评分相关的指标,同时构建了合成对话基准 MTRAG-S,发现合成数据在某些方面与人类生成数据存在差异,且模型在合成数据上的忠实性得分更高。



              CodeRAG-Bench: Can Retrieval Augment Code Generation?

              论文链接:https://arxiv.org/abs/2406.14497v1

              代码地址:https://code-rag-bench.github.io/

              语言模型在代码生成方面已取得一定成果,但多数模型采用自然语言到代码的生成范式,缺乏整合额外上下文的能力。在许多复杂编码场景下,如使用模型未记忆的不熟悉库时,直接生成程序具有挑战性。并且,仅依赖训练期间学习的参数知识,会使模型在测试时难以适应新的分布,因为模型无法及时更新公共库或私有代码库的知识。RAG 在推理时检索和整合相关文档,可减少模型对内部参数知识的依赖,在多种场景中提高准确性且无需额外训练,还能通过更换数据存储灵活更新知识。然而,先前工作主要集中在通用领域的文本生成任务,虽有研究涉及图书馆文档或存储库文件,但对于其他类型的编码问题和多样化检索源的探索仍显不足。因此,论文提出CodeRAG-Bench,内容包括:

              1. 任务分类:涵盖基本编程、开放域、仓库级和代码检索四类任务,整合了如 HumanEval、DS - 1000 等多个数据集。

              2. 检索源:包括编程解决方案、在线教程、库文档、Stack Overflow 帖子和 GitHub 仓库五类,收集了大量检索文档。

              3. 标注与评估:为每个问题标注了来自相应源的真实文档,评估指标包括检索的 NDCG 等和代码生成的 pass@k 等。

              文章对多种检索和生成模型进行了测试,实验结果发现,稠密嵌入模型在很多任务上优于 BM25,更大的检索模型通常检索性能更好,但也带来更高成本。代码生成上,与无检索相比,结合真实文档在多数设置下可提高生成效果,但不同模型在不同任务上提升程度不同。在检索增强代码生成中,不同模型在不同类型任务中受检索文档的影响各异,且确定了提供 5 份文档在多数情况下效果最佳。探索了从所有源进行开放检索的情况,发现不同任务能从特定源的相关片段受益,不同模型在不同任务上表现不同,同时确定了合适的分块策略。



              CRAG -- Comprehensive RAG Benchmark

              论文链接:https://arxiv.org/abs/2406.04744

              代码地址:https://github.com/facebookresearch/CRAG/

              CRAG包含 4,409 个来自五个领域(金融、体育、音乐、电影和开放领域)和八种问题类型(简单问题、条件问题、集合问题、比较问题、聚合问题、多跳问题、后处理问题和错误前提问题)的问答对,涵盖了从流行到长尾的实体以及从秒到年的时间动态。同时提供了模拟网络和知识图谱搜索的 mock APIs,包括每个问题最多 50 个 HTML 页面和包含 260 万个实体的 mock KGs。设计了三个任务来测试 RAG 解决方案的不同组件,包括检索总结、知识图谱和网络检索以及端到端检索增强生成。采用了区分幻觉答案和缺失答案的评分系统,并设计了自动评估机制。

              最先进的 LLM 在 CRAG 上的准确率最高为 34%,直接添加 RAG 仅将准确率提高到 44%,而行业最先进的 RAG 解决方案在无幻觉的情况下能回答 63% 的问题,但在回答高动态、低流行或高复杂度的事实问题时准确率仍较低。



              MRAG-Bench: Vision-Centric Evaluation for Retrieval-Augmented Multimodal Models

              论文链接:https://arxiv.org/abs/2405.13873

              代码地址:https://mragbench.github.io/

              现有多模态检索基准大多关注文本知识检索,然而在某些场景下,视觉信息检索更有益。检索增强生成(RAG)在大视觉语言模型(LVLMs)中成为有前景的方向,但缺乏针对视觉信息检索的有效基准。论文提出MRAG - BENCH 基准,核心内容包括:

              1. 基准概述:由 16,130 张图像和 1353 个人工注释的选择题组成,涵盖 9 种不同场景,分为视角(Perspective)和变革(Transformative)两个方面,旨在评估模型对不常见视觉实体的理解能力。

              2. 基准组成:9 种场景包括角度、部分、范围、遮挡、时间、变形、不完整、生物和其他,分别从不同角度评估模型利用视觉知识的能力。

              在 MRAG-BENCH 上评估 14 个流行的 LVLMs,包括 4 个专有模型和 10 个开源模型,采用准确率作为评估指标。实验结果发现所有 LVLMs 在使用图像增强时比文本知识有更大改进,但开源模型和专有模型存在差距,且即使最佳模型 GPT-4o 在利用检索知识方面也面临挑战,人类在利用视觉知识上表现更优。


              ARES: An Automated Evaluation Framework for Retrieval-Augmented Generation Systems

              论文链接:https://arxiv.org/abs/2311.09476

              代码地址:https://github.com/stanford-futuredata/ARES

              ARES 是一个自动化的检索增强生成 (RAG) 系统评估框架,它能够在无需大量人工标注的情况下,准确评估 RAG 系统在上下文相关性、答案忠实度和答案相关性三个维度上的表现。

              ARES 的三个主要阶段:

              1. 使用 LLM 生成合成数据集 (Question-Answer Pairs),微调轻量级的语言模型 (LM) 判官来评估 RAG 系统的各个组件。

              2. 准备 LLM 评估模型 (Judges) 来评估上下文相关性、答案忠实性和答案相关性。

              3. 为了减少潜在预测错误,ARES 利用少量人工标注的数据点进行预测驱动推理 (PPI)从而对 RAG 系统进行评分和排名,并提供置信区间。

              在 KILT、SuperGLUE 和 AIS 中的八个不同知识密集型任务上,ARES 能够在评估过程中仅使用几百个人工标注数据点就准确地评估 RAG 系统。此外,ARES 判官在领域迁移方面也表现出色,即使改变了评估 RAG 系统中使用的查询类型和/或文档类型,仍能保持准确性。






              Agent登场,无限可能

              摘要:

              传统的RAG仅使用一个外部知识源,并且一旦检索到上下文信息后不会进行进一步的推理或验证。Agentic RAG引入了一种新的范式,通过整合AI智能体来增强传统RAG架构的功能。这些智能体不仅能够访问记忆和外部工具,还可以执行动态决策、工作流程优化以及迭代细化和自适应检索策略。这使得它们能更有效地应对复杂、实时及多领域的查询需求。具体来说,Agentic RAG中的智能体可以决定是否需要检索信息,并选择适当的工具或API来获取相关信息,制定并优化查询,从而评估检索到的信息质量,并决定是否需要重新检索。Agentic RAG架构的核心在于智能体,它可以是单个智能体或是多个智能体协同工作的系统。这种架构允许智能体根据任务需求路由查询至特定的知识源,并对检索到的内容进行一层额外的验证,从而提高了响应的准确性和可靠性。通过这种方式,Agentic RAG实现了比原始RAG更高效的任务执行、更好的人机协作以及更高质量的信息检索。


              AgentRE: An Agent-Based Framework for Navigating Complex Information Landscapes in Relation Extraction


                论文链接:https://arxiv.org/abs/2409.01854

                代码地址:https://github.com/Lightblues/AgentRE

                在“文本输入,文本输出(Text-in, Text-out)”模式下语言模型的关系抽取(Relation Extraction,RE)流程中,模型直接从输入文本或通过简单的提示方法容易产生带有错误的结果,而AgentRE是一个包含检索和记忆模块的智能体框架,在多次推理回合中利用各种信息,以实现更精确的关系抽取。核心内容包括:

                1. 检索模块负责维护静态知识库,便于存储和检索信息,这包括训练集中的标注样本以及相关的标注指南等资料。分为样本检索和相关信息检索两个子模块,前者通过编码计算相似度获取相似样本,后者利用多种方法检索相关知识,实验表明 BGE 方法效果较好,且各类信息均对性能有重要作用。

                2. 记忆模块负责维护动态知识库,用于记录当前提取结果的短期记忆,以及用于总结和反思历史操作的长期记忆。通过在记忆模块中进行读写操作,记录并利用以往的提取经验。包括浅层记忆记录抽取结果和深层记忆反思更新历史信息,实验证明有记忆模块的模型性能更优且能动态学习。

                3. 抽取模块利用检索和记忆模块提供的信息,通过多种推理方法从输入文本中抽取关系三元组这样的结构化信息,采用类似 ReAct 的交互过程,根据文本复杂度动态选择抽取方法。

                AgentRE将大语言模型(LLM)作为智能体,处理来自不同渠道的数据。借助检索和记忆模块等工具,辅助智能体进行推理。与传统的单轮“文本输入,文本输出”语言模型不同,AgentRE通过多轮交互和推理,拓宽了信息源的利用范围,克服了单轮提取的局限。在资源有限的情况下,AgentRE能够借助LLM的推理和记忆能力,在提取过程中进行动态总结和反思,从而精进其持续学习能力,通过不断积累经验与知识,提升提取效能。将AgentRE的推理路径转化为包含多种推理策略的高质量数据,如直接生成、分步提取和基于思维链的提取。这些丰富的数据可用于微调小型模型,引导它们灵活选择不同的提取策略,从而在成本可控的前提下,提升模型的提取表现。





                AGENTiGraph: An Interactive Knowledge Graph Platform for LLM-based Chatbots Utilizing Private Data


                论文链接:https://arxiv.org/abs/2410.11531

                Demo展示:https://shorturl.at/qMSzM

                虽然知识图谱 (KG) 已被证明有助于缓解幻觉、推理能力受限和事实不一致等,但当前的 KG 工具和查询语言面临重大挑战,像 SPARQL 和 Cypher 这样的传统系统虽然在数据检索和分析方面功能强大,但通常缺乏用户友好的界面,用户可访问性和底层 KG 的灵活性尚未得到彻底探索。

                AGENTi Graph 是一个使用基于智能体的方法彻底改变 LLM 和 KG 之间交互的新型平台,可通过自然语言界面实现与知识图谱的无缝、智能交互,核心内容包括:

                1. 框架设计:采用多智能体架构,包括用户意图解释、关键概念提取、任务规划、知识图谱交互、推理和响应生成等智能体,各智能体分工协作实现用户与知识图谱的交互。例如,用户意图解释智能体利用少样本学习和思维链推理确定用户意图;关键概念提取智能体通过命名实体识别和关系提取技术提取概念并映射到知识图谱。

                2. 系统演示:界面具有双模式交互范式,包括聊天机器人模式和探索模式,知识图谱管理层负责与数据库通信。提供了如关系判断、前提预测、路径搜索等预定义功能,用户也可提出自由问题,系统还支持自定义智能体。

                AGENTi Graph将自然语言查询转换为结构化图操作,提高处理准确性和速度,降低用户操作难度,整合多模态输入,创建符合用户意图的行动计划,用户可灵活操作,开发者可进行模型集成等,支持持续知识提取和整合,保证知识图谱更新,并提供可视化功能。展示了其在法律和医疗领域创建知识图谱的能力,通过具体案例说明了其应用效果。


                 




                Knowagent: Knowledge-augmented planning for llm-based agents


                  论文链接:https://arxiv.org/abs/2406.14550v1

                  Demo展示:https://shorturl.at/qMSzM

                  由于决策机制的限制,RAG 在处理复杂问题时遇到了困难。基于Agent的方法已经成为一种潜在的解决方案,它利用 LLMs 的计划和反思能力来解决复杂问题和检索非结构化信息。尽管取得了这些进步,现有的方法在处理多跳问题和充分利用 LLMs 作为代理的Agent方面仍然面临着困难。

                  GraphReader 建立在图结构之上,其中每个节点包含一个关键元素和一组原子事实。这种结构能够在有限的上下文窗口内捕获来自长输入文档的全局信息。核心内容包括:

                  1. 图构建:将长文本分割成块,提取关键元素和原子事实构建图,节点表示关键元素及相关原子事实,边表示节点关系,从这些组件创建节点,并根据共享的关键元素进行链接

                  2. 图探索:智能体初始化时制定理性计划并选择初始节点,探索过程先从原子事实到文本块再到邻居节点,根据情况选择相应函数,不断更新笔记本记录信息,通过检查原子事实、阅读相关块和调查相邻节点来探索图

                  3. 答案推理:多个智能体探索结束后,汇总笔记,利用思维链和多数投票策略生成最终答案。

                  在多个基准测试中,GraphReader(4k 上下文窗口)性能优于 GPT-4-128k 等基线方法,在长上下文任务中表现突出,在有限上下文窗口下建立了可扩展的长上下文能力,并在多个基准测试中取得优异性能,尤其在处理多跳问题上优势明显。



                  Search-o1: Agentic Search-Enhanced Large Reasoning Models

                  论文链接:https://arxiv.org/abs/2501.05366

                  代码地址:https://search-o1.github.io/

                  推理模型,诸如OpenAI-o1和千问QwQ等,已经展现了其卓越的逐步推理能力,能够处理复杂问题并提供细致入微的解决方案。然而,在面对需要长链条逻辑推演的任务时,这些模型往往受限于内建知识库的局限性,从而在推理路径上引入了不确定性和可能的偏差。为了克服这一难题,本文介绍了一种创新框架——Search-o1。该框架致力于通过自主的知识检索机制,增强大型推理模型的知识深度与广度,进而大幅提高其推理过程中的可靠性和实际应用的广泛性。论文提出了Search-o1框架。该框架通过集成自主检索增强生成(Agentic Retrieval-Augmented Generation)机制和文档内推理模块(Reason-in-Documents),实现了在推理过程中动态获取和整合外部知识的能力。核心内容包括:

                  以下是经过修饰和优化后的段落:

                  1. 自主检索增强生成机制:Search-o1 赋予模型在推理过程中智能判断何时调用外部知识的能力。面对不确定的知识节点时,模型能动态地生成精确的检索查询,以获取相关的外部资料。与传统的静态检索方式相比,这种灵活且高效的动态检索机制能够显著提升推理的准确性和响应速度。

                  2. 文档内推理模块:为防止直接嵌入冗长或含噪声的检索文档破坏推理流程,Search-o1 配备了先进的知识精炼组件。这一模块负责对检索到的信息进行严格筛选与提炼,从中抽离出最贴合当前推理阶段的关键数据点,确保每一推理步骤的连贯性与逻辑严密性。通过这种方式,不仅提高了信息的相关度,还增强了最终结论的可信度。

                  在复杂推理任务中,Search-o1 性能优于直接推理和传统检索增强模型,如在 GPQA 等数据集上表现突出,且能更好利用检索文档,超过部分基线模型;在开放域问答任务中,检索增强方法提升了模型性能,Search-o1 自主检索和融入外部知识,文档内推理策略有效,增强了推理准确性和连贯性,在多跳任务上表现优异。





                  ActiveRAG: Autonomously Knowledge Assimilation and Accommodation through Retrieval-Augmented Agents


                  论文链接:https://arxiv.org/abs/2402.13547

                  代码地址:https://github.com/OpenMatch/ActiveRAG

                  大型语言模型(LLMs)虽在自然语言处理任务中表现出色,但存在幻觉和记忆过时等问题,导致回答不可靠。检索增强生成(RAG)模型可利用外部知识提高 LLMs 性能,但现有 RAG 模型常将 LLMs 视为被动信息接收者,受噪声检索内容干扰。现有改进方法主要关注构建模块化系统,虽能缓解内外部知识冲突,但未充分挖掘 LLMs 从检索证据中自主获取知识的潜力。ActiveRAG是一个创新的RAG框架,将LLMs从被动知识接收者转变为主动学习机制,通过知识构建和认知纽带机制来加深外部知识的理解,核心内容包括:

                  1. 模型架构:设计了多智能体系统,包括自我探究(Self-Inquiry)、知识同化(Knowledge Assimilation)和思维调适(Thought Accommodation)三个步骤。自我探究智能体利用 LLMs 的参数记忆生成回答思路;知识同化智能体从检索文档中学习,形成知识理解;思维调适智能体用同化的知识校准内部思路,生成更准确回答。

                  2. 智能体配置:通过锚定(Anchoring)、关联(Association)、推理(Reasoning)和反思(Reflection)四种指令配置智能体,使其模仿不同人类学习行为。锚定指令提取不熟悉知识,关联指令强化熟悉概念,推理指令提取逻辑推理,反思指令减少幻觉。

                  使用包括 NQ、PopQA 等数据集评估,遵循已有研究设置检索阶段,每个数据集随机采样 500 个问题。评价指标包括正确性、准确率、命中率和召回率等,在知识密集型任务上,ACTIVERAG 比 Vanilla RAG 模型性能提升超 10%,比自精炼方法也有超 4% 的提升,在不同规模和类型的模型中均表现出色,显示出良好的泛化能力。






                  AgentPoison: Red-teaming LLM Agents via Poisoning Memory or Knowledge Bases


                    论文链接:https://arxiv.org/abs/2407.12784

                    代码地址:https://github.com/BillChan226/AgentPoison

                    智能体在各种应用中展示出卓越的性能,主要是因为它们在推理、利用外部知识和工具、调用 API 以及执行与环境交互的操作方面具有先进的能力。当前的智能体通常利用记忆模块或检索增强生成(RAG)机制,从知识库中检索过去的知识和具有相似嵌入的实例,以指导任务规划和执行。然而,对未经验证的知识库的依赖引发了对它们安全性和可信度的重大关注。论文提出AgentPoison,核心内容包括:

                    1. 预备知识和设置:考虑基于语料库检索的 RAG 机制的 LLM agents,通过单一编码器将查询和键映射到嵌入空间,检索与查询最相关的键值对作为上下文学习示例。

                    2. 威胁模型:攻击者可部分访问受害者 Agent 的 RAG 数据库并注入少量恶意实例,其目标是在用户查询包含优化后的触发词时诱导恶意行为,同时确保干净查询的输出不受影响。

                    3. AGENTPOISON 设计:将触发词优化转化为约束优化问题,通过映射触发实例到独特嵌入空间,联合最大化检索有效性和目标生成概率,同时保证文本连贯性,具有无需额外模型训练、更隐蔽等优势。

                    4. 约束优化问题:构建包含唯一性损失、紧凑性损失、目标生成损失和连贯性损失的约束优化问题,各损失有其特定定义和作用。

                    5. 优化算法:基于梯度的方法,通过迭代搜索替换Token,包括初始化、梯度近似、约束过滤和Token替换步骤。

                    选择自动驾驶、知识密集型问答、医疗记录管理三种类型的真实世界 Agent,使用相应数据集和代表性的检索器,并考虑多种基线方法和评估指标,AgentPoison在攻击成功率和对良性性能的影响方面优于基线方法,具有较高的跨嵌入器转移性、对扰动的鲁棒性和对防御的规避能力,同时分析了各损失的贡献、不同触发词Token数量的影响等。






                    REGENT: A Retrieval-Augmented Generalist Agent That Can Act In-Context in New Environments


                      论文链接:https://arxiv.org/abs/2412.04759

                      代码地址:https://kaustubhsridhar.github.io/regent-research

                      在数字和现实世界中,构建能快速适应新环境的通用智能体是 AI 部署的关键挑战。当前主流方法是扩大智能体架构和数据集,但仍难以泛化到新环境。本文旨在探索新方法,通过在相对小的数据集上预训练较小的策略,并利用上下文学习使其适应新环境,且无需微调。论文通过结合检索机制和 Transformer 策略网络,实现了高效的环境适应能力,核心内容包括:

                      1. Retrieve and Play (R&P):这是一种简单的基于检索的决策智能体,在给定环境状态下,从该环境的少量演示中检索最近状态及其对应的动作,并执行该动作。它没有学习组件来在预训练和新环境间转移能力,但在多种环境测试中表现出与现有先进通用智能体相当甚至更好的性能。

                      2. Retrieval - Augmented Generalist Agent (REGENT):是一种半参数化架构,在预训练时,其策略网络的输入不仅包括当前状态和奖励,还包括从每个预训练任务的演示中检索到的相关信息。在每个 “查询” 状态下,通过聚合 R&P 和策略网络的动作预测来确定最终动作。它利用检索增强和上下文学习,可直接部署到新环境,且训练时使用的参数和预训练数据点比其他通用智能体更少。

                      在基于 Gato 和 ProcGen 环境的两个问题设置下进行训练和评估,使用归一化回报作为评估指标,并针对不同环境设置了不同的基线模型和微调方法进行比较,R&P 和 REGENT 在多种环境下都能很好地泛化到新环境,且 REGENT 性能优于 R&P 和其他基线模型。




                      RAG-DDR: Optimizing Retrieval-Augmented Generation Using Differentiable Data Rewards

                      论文链接:https://arxiv.org/abs/2410.13509

                      代码地址:https://github.com/OpenMatch/RAG-DDR

                      大语言模型存在幻觉问题,RAG 虽能缓解,但检索知识与参数记忆冲突影响其有效性。当前基于监督微调(SFT)的方法使 RAG 模块过拟合且忽视数据偏好差异。现有研究在优化 RAG 系统时,存在训练信号过拟合和灾难性遗忘问题,且未有效对齐多智能体系统的数据偏好。论文提出DDR 方法,核心内容包括:

                      1. 数据偏好学习:在 RAG 系统中,数据在智能体间传播,通过评估系统性能和反向传播奖励来优化智能体。DDR 让智能体采样潜在响应,计算奖励并优化,使其与后续智能体数据偏好对齐,提升系统整体性能。

                      2. 优化特定 RAG 系统:构建包含知识精炼和生成模块的 RAG 系统。知识精炼模块评估文档相关性,生成模块基于查询和精炼知识生成响应。用 DDR 分别优化两个模块,迭代调整使其数据偏好一致。

                      遵循 RA-DIT,使用指令调优数据集,涵盖开放域问答和推理等任务,用 BGE-Large 从 MS MARCO 2.0 检索文档,依任务选用 Rouge - L、F1 或 Accuracy 评估。RAG - DDR 在各数据集上显著优于基线模型,相比 Vanilla RAG 有 7% 提升,体现良好泛化能力。



                      总结

                      在这一年的时光长河中,检索增强生成技术(RAG)经历了从炽热的憧憬到沉静理智的蜕变,宛如一颗明星,在大型模型应用的苍穹中绽放出不可或缺的光芒。RAG,这名字恰如其分地勾勒出了一种架构模式的轮廓,而非特定的产品或应用场景。它犹如一座深藏不露的宝库,外表之下蕴含着无尽的复杂性,宛如昔日数据库的隐秘世界,虽向外界展示的是简洁的接口,但内部却是精密而繁复的构造,如同精心编排的乐章。

                      犹记得年初之时,大模型仿若一位无所不能的魔法师,将乐观的情绪播撒于市场的每一个角落,而RAG则被视为开启复杂难题之门的万能钥匙,其不仅仅收纳了数据库的灵魂,还融合了众多小巧却强大的模型,以及那些将它们巧妙串联起来的工具,仿佛是搜索引擎在大模型时代的重生,却又远远超越了传统搜索的界限。

                      作为致力于将大模型应用于这片广袤土地上的从业者们,我们目睹了RAG在架构与技术细节上的迅速演变,RAG既是对过往的继承,也是对未来的一次大胆展望。新的一年,相信既是RAG技术精进、演化的岁月,也是我们无数从业者们从无畏探索走向深入钻研的重要转折点!展望未来,我们相信,RAG的价值将在实际应用中愈发彰显,成为推动人工智能落地生根的核心动力!






                      53AI,企业落地大模型首选服务商

                      产品:场景落地咨询+大模型应用平台+行业解决方案

                      承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

                      联系我们

                      售前咨询
                      186 6662 7370
                      预约演示
                      185 8882 0121

                      微信扫码

                      与创始人交个朋友

                      回到顶部

                       
                      扫码咨询