RAG,可以说是大模型时代最成功的落地模式之一,通过检索-生成的方式,极大的拓展了大模型的应用边界, 但是,RAG 在落地实践上却没有那么简单。相信做过 RAG 系统的小伙伴都碰到过如下的问题:什么场景或问题下需要检索?1+2=?的计算题好像不需要,但为什么 1+2=3 好像就需要。检索到的信息是否有用?是否正确?检索到的信息怎么用?直接与用户的问题拼接还是需要进行信息压缩后拼接?以什么逻辑进行召回?召回信息是否需要排序?……这些问题没有“放之四海皆准”的答案,在不同的场景、数据下,解决方案各不相同。从 23 年 RAG 火爆以来,各类 RAG 框架或解决方案没有上百也有几十个了,AnythingLLM、RAGFlow、Ollama 等,每一个都能搭建出一个完整基于 RAG 的知识库,但是通用 ≠ 好用。每一个场景、甚至每一个人的数据都是独特的,这对于 RAG 系统的效果带来了巨大的挑战。但这也带来了 RAG 领域研究的百花齐放。今天,和各位小伙伴,一起看下最近的几篇关于 RAG 的文章,了解下学术界在 RAG 上探索。简短总结版可以看出以下几个趋势:专业化趋势:许多 RAG 变体都针对特定领域进行了优化,如医疗、金融、材料科学等多模态融合:越来越多的 RAG 技术开始处理多模态数据,如视频、图像、文本的结合安全性考虑:随着 RAG 技术的普及,安全性问题(如 RAG-Thief 所研究的)也开始受到关注效率优化:新的 RAG 变体都在尝试通过各种方式提升处理效率,降低计算成本可解释性提升:许多新方法都强调了可解释性的重要性,试图让模型决策过程更透明基础架构的创新你有没有遇到过这样的情况,让 RAG 回答一个问题,它要么给出一大堆相关但不够准确的信息,要么干脆答非所问。这就像一个初入职场的新人,虽然知识储备不错,但不太懂得“抓重点”。针对这些基础问题,研究者们提出了一系列创新性的解决方案。比如中科院提出的 AutoRAG,它不再是简单地“给什么找什么”,而是让 RAG 系统学会自主判断。假设你问“谁是《怪物史莱克》中驴子的配音演员?”,普通的 RAG 系统可能会傻乎乎地去搜索所有包含“驴子”和“配音”的资料。但 AutoRAG 会这样思考:看到区别了吧,AutoRAG 就像一个会自主思考的助手,知道该怎么一步步找到最准确的答案。同时,它还可以用自然语言解释自己的思考过程,让你明白它为什么这样做。这种透明度在实际应用中特别重要。CORAG 则从另一个角度提出了解决方案。现有的 RAG 系统在选择文本块时往往考虑,忽视了文本块之间的相关性。这就像是在解答一个复杂问题时,只看到了各个零散的知识点,却没有将它们有机地联系起来。CORAG 的核心创新在于使用蒙特卡洛树搜索(MCTS)来探索文本块的最优组合顺序,同时引入配置代理来动态调整系统参数。它就像是在玩一个高级版的拼图游戏:不过,这种方法也有其局限性:构建和遍历策略树需要较多计算资源,参数的调整也需要仔细权衡。我们都知道大模型是有上下文长度限制的,过长的上下文内容会显著的降低大模型的效果。在 RAG 中尤为明显,为了让 RAG 能够“记住”和“理解”知识,研究者们提出了一些非常有意思的解决方案。FastRAG 制定了一个“两步走”的策略,先用简单的关键词匹配快速划定范围,再用更复杂的语义分析找出最相关的内容,就像你在找一本书,先看书架的分类标签找到大致区域,再根据书名和目录找到具体的那本。这不就是传统搜索引擎的召回-粗排-精排的逻辑嘛。可能 AssistantRAG 的作者出发点是想借鉴 Adapter 的思想,提出了一个很类似的设计:既然一个大模型的记忆能力有限,那么给主模型配备一个“专业秘书”模型。秘书模型负责记忆管理和知识管理,它会记录历史问答信息,评估这些记忆对当前问题的帮助程度;还会将复杂问题分解成简单的子问题,针对每个子问题检索外部知识库,主模型负责生成最终的输出。这种方法的优势在于灵活性强,在不同的场景,通过更换秘书模型达到快速适配的目的。MemoryRAG 引入了一个“记忆模块”,就像是一个经验丰富的图书管理员,不仅懂得找书,还能理解读者的潜在需求。就像是你要找一本关于爱情主题的书籍的时候,可能书名根本不包括爱情。MemoryRAG 采用了双重架构,一个负责处理长文本形成整体印象,另一个负责最终的回答生成。这种设计特别适合处理需要全局理解的复杂查询,比如分析文学作品中的人物关系、总结长篇报告等任务。为了更好的利用外部的知识,RuAG 通过规则增强的方式来提升模型的理解能力。比如在天气预测场景中,与其让模型记住大量天气数据,不如教会它理解“如果温度超过 30 度且湿度低于 50%,那么天气晴朗”这样的规则。这种方法更容易理解和记忆,计算成本也较低。复杂数据的处理随着 RAG 应用场景的不断增多,我们可能会遇到各种各样的数据,网页、PDF、文本、时序、音频、视频等等,每种数据类型都带来了独特的挑战。在网页数据处理方面,HtmlRAG 提供了一个很巧妙的解决方案。它不是简单地把网页转换成纯文本,而是尝试保留那些传达重要含义的 HTML 标签。它首先会清理掉网页中的广告代码、样式表等“干扰信息”,但会保留那些传达重要含义的 HTML 标签。比如说,“<h1>Windows 安装教程</h1>”这样的标签就会被保留,因为它告诉我们这是一个重要的标题。相比纯文本的方式,基于这样的结构化信息, HtmlRAG 能够更加高效的利用网页信息。时间序列预测是个老生常谈的问题,比如预测明天的天气、股票走势、电力消耗等。传统方法往往把这些预测看作是的任务。但想想看,如果我们能找到历史上相似的情况作为参考,预测效果会不会更好呢?举个简单的例子:假设你在预测某个城市明天的温度。如果你能找到历史上天气条件非常相似的那几天,看看那之后温度是怎么变化的,这样的预测显然会更准确。这就是论文提出检索增强预测(RAF)的核心思想。它会先在历史数据中找到类似的模式片段,看看那个历史数据之后模式是怎么变化的,再将这些历史经验作为预测的参考。除了文本之外,有没有想过,RAG 的思想也是可以应用到视频理解场景的,但你知道现在的大语言模型处理长视频时会遇到什么问题吗?最主要的就是“记不住” – 上下文窗口的限制让它们难以处理长视频。有的团队试图通过微调来扩展模型的处理能力,有的则尝试使用更大的模型。但这些方法要么需要大量训练数据,要么成本太高。VideoRAG 提出了一个很独特的方法。它从不同角度来理解视频:从多个维度去理解视频确实能够得到更好的效果,但不同信息之间的对齐可能是一个需要考虑的问题。垂直领域的创新RAG 技术在各个垂直领域都展现出了强大的应用潜力,研究者们针对不同领域的特点,提出了一系列创新性的解决方案。我们知道,在医疗领域,精确和可靠的诊断信息处理至关重要。LabRAG 模仿了医生看片的过程,先识别关键的医学发现,再基于这些发现写报告。PathRAG 专门针对病理切片图像进行了优化,它结合了关键区域识别和大语言模型,在准确率上提高了将近 10 个百分点。MMedRAG 解决了医疗视觉语言模型在生成回答时经常产生幻觉的问题,它引入了领域感知的检索机制、自适应的上下文选择方法和基于 RAG 的偏好微调策略,显著提高了生成内容的原创性和可靠性。在材料科学领域,G-RAG 提供了一个非常创新的解决方案。它将图数据库整合到检索过程中,通过实体提取与关联、智能文档解析、图谱增强检索等技术,在准确性评分上远高于传统 RAG 系统。这种提升在材料科学这样需要精确信息的领域特别重要。RAGDiffusion 为时尚电商领域提供了一个实用的解决方案。它像一个经验丰富的摄影师,通过分析输入的服装照片,在标准服装图片数据库中寻找相似的参考样本,再采用多层次的生成对齐策略,确保生成图片的高质量。比较让人意外的是,这个系统的泛化性也非常的好,通过简单更新检索数据库,就能够处理全新的服装款式,这种灵活性在快速变化的时尚行业特别重要。金融分析师每天要阅读大量的财报、公告、研究报告,而且时效性要求特别高。针对这种情况,研究者们开发了 MultiReranker 系统。它的工作方式如下:首先,它会对用户的问题进行多维度的拆解和改写,比如当你问“Q3 的 ROE 是多少”时,系统会先理解:然后,它采用了一个“多级筛选”的策略,就像是组建了一个金融分析师团队:通过多级的检索机制实现对信息对高效利用。特别是,当输入文本太长时,系统会把文档分成两半分别处理,然后再把生成的答案合并起来,既保证了准确性,又提高了效率。RAG 的剑没有绝对安全的系统,也没有绝对安全的技术。随着 RAG 技术在医疗、金融、法律等敏感领域的广泛应用,安全性问题日益凸显。RAG-Thief 的研究让我们清晰地看到了当前 RAG 系统中存在的安全隐患。很多人可能会觉得疑惑:RAG 系统不是只会返回相关信息吗,怎么会有安全问题呢?但研究者通过巧妙设计的实验揭示了其中的风险。想象一下,如果一家医院使用 RAG 系统来回答医疗咨询,当有人问“感冒有什么症状”时,系统会正常地返回一般性的医学知识。但如果有人用特殊的方式提问,比如巧妙地设计问题来套取原始病例信息,系统可能就会不经意间泄露病人的隐私数据。论文发现,在没有特殊防护措施的情况下,攻击者能够提取出超过 70% 的知识库内容。针对这些问题,也有一些可以探索的措施。例如,在系统层面,需要建立严格的访问控制机制,对检索内容进行脱敏处理,并建立完善的安全审计系统。在算法层面,可以引入噪声扰动和差分隐私技术,降低信息泄露的风险。在日常运营中,定期的安全评估和及时的漏洞修复也是不可或缺的。总结最后,来一个小小的总结吧。RAG 的范式是简单可理解的,但真正落地实践的过程中,会有许许多多的问题和痛点。上面提到的 RAG 方法或框架,也只是给出了优化探索的方向,真正在自己的场景中发挥 RAG 的效果,还是有一段路需要摸索。在实际中应用 RAG 的时候,可以进行综合的考虑,效果不佳的情况下可以尝试进行各种组合,在效果不达标的情况下,不要过度的考虑性能,毕竟,抛开效果谈性能也是耍流氓!参考文献[1] https://arxiv.org/pdf/2411.02959 [2] https://arxiv.org/pdf/2411.13773 [3] https://arxiv.org/pdf/2411.19443[4]https://arxiv.org/pdf/2411.00744 [5]https://arxiv.org/pdf/2409.05591[6]https://arxiv.org/pdf/2411.14110[7]https://arxiv.org/pdf/2411.06805[8]https://arxiv.org/pdf/2411.16523 [9]https://arxiv.org/pdf/2411.13093 [10]https://arxiv.org/pdf/2411.08249 [11]https://arxiv.org/pdf/2411.03349 [12]https://arxiv.org/pdf/2410.13085[13]https://arxiv.org/pdf/2411.17073 [14]https://arxiv.org/pdf/2411.16732[15]https://arxiv.org/pdf/2411.14592 [16]https://arxiv.org/pdf/2411.19528
© 版权声明
文章版权归作者所有,未经允许请勿转载。
暂无评论...