16种新型RAG最新进展,非常详细收藏我这一篇就够了!

MLNLP社区是国内外知名的机器学习与自然语言处理社区,受众覆盖国内外NLP硕博生、高校老师以及企业研究人员。

社区的愿景是促进国内外自然语言处理,机器学习学术界、产业界和广大爱好者之间的交流和进步,特别是初学者同学们的进步。

RAG,可以说是大模型时代最成功的落地模式之一,通过检索-生成的方式,极大的拓展了大模型的应用边界, 但是,RAG 在落地实践上却没有那么简单。相信做过 RAG 系统的小伙伴都碰到过如下的问题:

什么场景或问题下需要检索?1+2=?的计算题好像不需要,但为什么 1+2=3 好像就需要。

检索到的信息是否有用?是否正确?

检索到的信息怎么用?直接与用户的问题拼接还是需要进行信息压缩后拼接?

以什么逻辑进行召回?召回信息是否需要排序?

……

这些问题没有“放之四海皆准”的答案,在不同的场景、数据下,解决方案各不相同。

从 23 年 RAG 火爆以来,各类 RAG 框架或解决方案没有上百也有几十个了,AnythingLLM、RAGFlow、Ollama 等,每一个都能搭建出一个完整基于 RAG 的知识库,但是通用 ≠ 好用。每一个场景、甚至每一个人的数据都是独特的,这对于 RAG 系统的效果带来了巨大的挑战。但这也带来了 RAG 领域研究的百花齐放。

今天,和各位小伙伴,一起看下最近的几篇关于 RAG 的文章,了解下学术界在 RAG 上探索。

简短总结版

可以看出以下几个趋势:

  1. 专业化趋势:许多 RAG 变体都针对特定领域进行了优化,如医疗、金融、材料科学等

  2. 多模态融合:越来越多的 RAG 技术开始处理多模态数据,如视频、图像、文本的结合

  3. 安全性考虑:随着 RAG 技术的普及,安全性问题(如 RAG-Thief 所研究的)也开始受到关注

  4. 效率优化:新的 RAG 变体都在尝试通过各种方式提升处理效率,降低计算成本

  5. 可解释性提升:许多新方法都强调了可解释性的重要性,试图让模型决策过程更透明

基础架构的创新

你有没有遇到过这样的情况,让 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 标签。

比如说,“

Windows 安装教程

”这样的标签就会被保留,因为它告诉我们这是一个重要的标题。相比纯文本的方式,基于这样的结构化信息, 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 的时候,可以进行综合的考虑,效果不佳的情况下可以尝试进行各种组合,在效果不达标的情况下,不要过度的考虑性能,毕竟,抛开效果谈性能也是耍流氓!

AI大模型学习福利

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

大模型&AI产品经理如何学习

求大家的点赞和收藏,我花2万买的大模型学习资料免费共享给你们,来看看有哪些东西。

1.学习路线图

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

在这里插入图片描述

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方图片前往获取

3.技术文档和电子书

这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
在这里插入图片描述

4.LLM面试题和面经合集

这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

### SpringAI RAG 知识库构建详细步骤 #### 1. 准备工作 在开始之前,确保已经安装并配置好了必要的开发环境。这包括但不限于 Java 开发工具包 (JDK),Maven 或 Gradle 构建工具以及 Spring Boot 框架。此外,还需要准备用于存储和管理知识库数据的数据库系统,如 MySQL 或 PostgreSQL。 对于具体项目而言,还需引入 Spring AI 和其他依赖项到项目的 `pom.xml` 文件中[^3]: ```xml <dependency> <groupId>com.alibaba.spring</groupId> <artifactId>spring-ai-rag-core</artifactId> <version>${latest.version}</version> </dependency> ``` #### 2. 数据收集与预处理 从各种来源获取结构化或非结构化的原始资料作为初始输入材料。这些资源可能来自内部文档、网页抓取或是第三方 API 接口返回的结果集。接着对所获得的数据实施清洗、分词等一系列自然语言处理操作以提高后续阶段的质量。 针对 Word 文档这类特定格式的内容源,则可以通过 Apache POI 库来进行解析提取文字信息[^4]: ```java import org.apache.poi.xwpf.usermodel.XWPFDocument; import java.io.FileInputStream; public class DocReader { public static String readDoc(String filePath) throws Exception{ XWPFDocument doc = new XWPFDocument(new FileInputStream(filePath)); StringBuilder sb = new StringBuilder(); List<XWPFParagraph> paragraphs = doc.getParagraphs(); for(XWPFParagraph para : paragraphs){ sb.append(para.getText()); } return sb.toString(); } } ``` #### 3. 向量化表示 采用合适的算法将文本转换成数值型特征向量以便计算机理解和计算相似度。常见的方法有 TF-IDF、Word Embedding 及其变种形式 BERT 等预训练模型。此过程通常由专门的服务负责执行并将结果保存至专用索引仓库内供快速查询匹配之用。 创建自定义嵌入层时可参考如下代码片段[^1]: ```python from transformers import BertTokenizer, TFBertModel tokenizer = BertTokenizer.from_pretrained('bert-base-chinese') model = TFBertModel.from_pretrained('bert-base-chinese') def encode_text(text): inputs = tokenizer.encode_plus( text, add_special_tokens=True, max_length=512, padding='max_length', truncation=True, return_attention_mask=True, return_tensors="tf" ) outputs = model(inputs["input_ids"], attention_mask=inputs['attention_mask']) embeddings = tf.reduce_mean(outputs.last_hidden_state, axis=1).numpy() return embeddings.tolist()[0] ``` #### 4. 集成搜索引擎 选择适合应用场景需求的企业级全文检索引擎产品集成进来支持高效的模糊查找功能。Elasticsearch 是一个不错的选择因为它具备强大的分布式特性并且易于扩展维护。通过 RESTful API 方式调用该平台提供的接口完成最终的知识图谱搭建工作。 当一切就绪之后就可以按照官方指南说明部署上线整个解决方案了[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值