RAG是否被取代(缓存增强生成-CAG)吗?

news2025/1/30 10:47:31

引言:

        本文深入研究一种名为缓存增强生成(CAG)的新技术如何工作并减少/消除检索增强生成(RAG)弱点和瓶颈。

LLMs 可以根据输入给他的信息给出对应的输出,但是这样的工作方式很快就不能满足应用的需要:

因为很多时候回答问题,要么知识不足,让我回答的问题会有错误, 而且很多时候回答问题的信息需要及时更新的,但是大模型的训练却不能进行同步。

为了确保LLMs能够使用最新信息来回答查询,以下技术被广泛使用:

  • 模型微调

  • 低秩适应(LoRA) 微调

  • 检索增强生成(RAG)

最近研究人员刚刚发布了一种新的技术:一种名为缓存增强生成(CAG)的新技术,可以减少对RAG(因此也减少了它的所有缺点)的需求。CAG通过将所有相关知识预先加载到LLM的扩展上下文中,而不是从知识存储中检索它,并在推理时使用这些知识来回答查询它的效果令人惊讶: 当与长上下文LLMs一起使用时,结果表明这种技术在多个基准测试中要么优于RAG,要么可以作为RAG的有效补充。通过下文,我们深入了解缓存增强生成(CAG)的工作原理以及与RAG相比的表现。

一:什么是缓存增强生成(CAG)?

       1:技术概述:

缓存增强生成(Cache-Augmented Generation, CAG)是一种新兴的技术,旨在通过预加载和缓存相关知识,提高大型语言模型(LLMs)的生成效率和响应速度。与传统的检索增强生成(Retrieval-Augmented Generation, RAG)相比,CAG 通过将所有相关知识预先加载到模型的上下文窗口中,并缓存其运行时参数,从而在推理时直接生成响应,无需实时检索。

      2:工作执行原理:

CAG 的核心在于两个主要组件:缓存生成模型。缓存存储了在之前交互或计算过程中生成的文本片段(或知识),这些存储的信息随后用于指导下一步的生成,从而加快生成过程并提高相关性。

具体步骤如下:

  1. 缓存构建:在模型生成文本时,关键信息(如常用短语、学习到的事实或上下文)被存储在缓存中。这可以在不同级别进行,无论是单词级别、句子级别,还是更抽象的语义级别。

  2. 缓存查找:当模型被要求生成新文本时,它首先检查缓存以查找相关的信息。如果找到匹配项,模型会检索并将其纳入新生成的内容中,减少从头开始计算的需求。

  3. 缓存更新:随着时间的推移,模型生成更多文本时,缓存会用新的有用信息进行更新,保持其新鲜感和相关性。

3:RAG技术原理简介:

它是一种知识整合和信息检索技术,允许LLM使用特定于用例的私有数据集来产生更准确和最新的响应。

RAG中的技术过程如下:

  • 检索:从知识库/特定私有数据集中 检索 相关信息/文档的过程。

  • 增强:检索到的信息 添加 到输入上下文的过程。

  • 生成:LLM基于原始查询和增强上下文 生成 响应的过程。

RAG-RAG的全称是Retrieval-Augmented Generation-检索增强生成

但RAG并不是一种完美的技术, 它也有非常多的缺点。

•检索延迟:在推断过程中从外部知识库获取信息需要时间, 基本上相当于传统搜索引擎需要的时间, 当然一般情况下还是可以忍受。

•检索错误:由于检索过程中选择了不相关和不完整的文档,可能会导致不准确或不相关的响应, 这就很依赖搜索引擎剧部分的效果。

•知识碎片化:不当的分块和不正确的排名可能导致检索到的文档不连贯且缺乏连贯性。所以很多时候在做RAG的时候如何去分辨如何提前对新型信息进行预处理就非常重要。

•复杂性增加:构建RAG流程需要额外复杂的基础设施,并涉及大量的维护和更新开销。  对,其实要做好RAG,其实跟做好一个受损性是比较类似的,开销都是比较大的。

二:CAG和RAG的表现和优势:

   1:用于评估 CAG 性能的考虑了两个问答 Benchmark:
  • 斯坦福问答数据集(SQuAD)1.0:由众包工作者在一组维基百科文章上提出的 100,000+ 个问题组成。每个问题的答案是相应阅读段落中的文本片段。

  • HotPotQA:由 113,000 个基于维基百科的问题-答案对组成,需要跨多个文档进行多跳推理。    

从每个数据集中创建了三个测试集,其中参考文本的长度不同,增加参考文本的长度会使检索更具挑战性。

Image

研究者使用 Llama 3.1 8-B Instruction model(上下文长度为 128k 个标记)来测试 RAG 和 CAG。

2:CAG 真的能够替代RAG吗?

令人惊讶的是,结果显示CAG 的表现优于稀疏(BM25)和密集(OpenAI Indexes)的 RAG 系统,在大多数评估中获得了最高的 BERT-Score。    

Image

此外,CAG 大大减少了生成时间,特别是随着参考文本长度的增加。

对于最大的 HotpotQA 测试数据集,CAG 比 RAG 快约40.5 倍。这是一个巨大的提升!    

Image

CAG 看起来是一个非常有前途的方法,可以确保在未来 LLM 的上下文长度进一步增加时从中检索到最新的信息(独立使用或与 RAG 结合)。

总结:

1: CAG 的优势
  • 低延迟:无需实时检索数据,从而加快推理速度。
  • 简化设计:无需向量数据库或嵌入模型,降低了系统复杂性。
  • 高吞吐量:对于同一数据集上的重复任务,效率更高。
2: CAG 的局限性
  • 知识大小有限:CAG 要求整个知识源必须能够适应模型的上下文窗口,因此对于涉及极其大数据集的任务不太适用。
  • 上下文长度限制:LLMs 的性能可能会随着上下文长度的增加而下降。
3: CAG 的应用场景
  • 企业文档助手:静态数据集,如员工手册和用户手册。
  • 医疗知识检索:医疗指南或治疗协议。
  • 法律文件摘要:预加载合同和法律简报以进行快速分析。
  • 在线学习平台:预加载静态课程内容以进行动态查询。
4:CAG 的未来展望

随着上下文窗口限制的增加(例如 1M 个标记),CAG 将变得更加可扩展。此外,结合 CAG 和 RAG 的混合架构将平衡静态和动态数据需求,而优化的标记管理将更有效地处理大型数据集。

5:结论

缓存增强生成(CAG)并不是检索增强生成(RAG)的通用替代品,但在具有有界数据集、低延迟要求和静态知识库的场景中表现出色。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2284648.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[MySQL]MySQL数据库的介绍和库相关操作

目录 一、数据库介绍 1.什么是数据库 2.为什么使用数据库 3.数据库的操作运行逻辑 4.MySQL架构 5.SQL语句的分类 二、数据库的操作 1.数据库的连接 2.数据库的操作 创建数据库 查看数据库 显示数据库的创建语句 删除数据库 修改数据库 3.字符集和校验集 查看系…

LLM幻觉(Hallucination)缓解技术综述与展望

LLMs 中的幻觉问题(LLM 幻觉:现象剖析、影响与应对策略)对其可靠性与实用性构成了严重威胁。幻觉现象表现为模型生成的内容与事实严重不符,在医疗、金融、法律等对准确性要求极高的关键领域,可能引发误导性后果&#x…

基于物联网设计的疫苗冷链物流监测系统

一、前言 1.1 项目开发背景 随着全球经济的发展和物流行业的不断创新,疫苗和生物制品的运输要求变得越来越高。尤其是疫苗的冷链物流,温度、湿度等环境因素的控制直接关系到疫苗的质量和效力,因此高效、可靠的冷链监控系统显得尤为重要。冷…

C++的类Class

文章目录 一、C的struct和C的类的区别二、关于OOP三、举例:一个商品类CGoods四、构造函数和析构函数1、定义一个顺序栈2、用构造和析构代替s.init(5);和s.release();3、在不同内存区域构造对象4、深拷贝和浅拷贝5、构造函数和深拷贝的简单应用6、构造函数的初始化列…

接口 V2 完善:分布式环境下的 WebSocket 实现与 Token 校验

🎯 本文档详细介绍了如何使用WebSocket协议优化客户端与服务端之间的通信,特别是在处理异步订单创建通知的场景中。通过引入WebSocket代替传统的HTTP请求-响应模式,实现了服务器主动向客户端推送数据的功能,极大地提高了实时性和效…

2025年数学建模美赛:A题分析(1)Testing Time: The Constant Wear On Stairs

2025年数学建模美赛 A题分析(1)Testing Time: The Constant Wear On Stairs 2025年数学建模美赛 A题分析(2)楼梯磨损分析模型 2025年数学建模美赛 A题分析(3)楼梯使用方向偏好模型 2025年数学建模美赛 A题分…

使用Vue3实现可拖拽的九点导航面板

开篇 本文使用Vue3实现了一个可拖拽的九宫导航面板。这个面板在我这里的应用场景是我个人网站的首页的位置,九宫导航对应的是用户最后使用或者最多使用的九个功能,正常应该是由后端接口返回的,不过这里为了简化,写的是固定的数组数…

68-《贝壳花》

贝壳花 贝壳花(学名:Moluccella laevis Linn.)是属于唇形科,贝壳花是一、二年的草本。植株高5至60cm,茎四棱,不分枝。叶对生,心脏状圆形,边缘疏生齿牙;叶柄和叶近等长。花…

【自然语言处理(NLP)】深度循环神经网络(Deep Recurrent Neural Network,DRNN)原理和实现

文章目录 介绍深度循环神经网络(DRNN)原理和实现结构特点工作原理符号含义公式含义 应用领域优势与挑战DRNN 代码实现 个人主页:道友老李 欢迎加入社区:道友老李的学习社区 介绍 **自然语言处理(Natural Language Pr…

2025数学建模美赛|F题成品论文

国家安全政策与网络安全 摘要 随着互联网技术的迅猛发展,网络犯罪问题已成为全球网络安全中的重要研究课题,且网络犯罪的形式和影响日益复杂和严重。本文针对网络犯罪中的问题,基于多元回归分析和差异中的差异(DiD)思…

自定义数据集 使用pytorch框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测

代码: import torch import numpy as np import torch.nn as nn# 定义数据:x_data 是特征,y_data 是标签(目标值) data [[-0.5, 7.7],[1.8, 98.5],[0.9, 57.8],[0.4, 39.2],[-1.4, -15.7],[-1.4, -37.3],[-1.8, -49.…

关于使用PHP时WordPress排错——“这意味着您在wp-config.php文件中指定的用户名和密码信息不正确”的解决办法

本来是看到一位好友的自己建站,所以突发奇想,在本地装个WordPress玩玩吧,就尝试着装了一下,因为之前电脑上就有MySQL,所以在自己使用PHP建立MySQL时报错了。 最开始是我的php启动mysql时有问题,也就是启动过…

【蓝桥杯】43694.正则问题

题目描述 考虑一种简单的正则表达式: 只由 x ( ) | 组成的正则表达式。 小明想求出这个正则表达式能接受的最长字符串的长度。 例如 ((xx|xxx)x|(x|xx))xx 能接受的最长字符串是: xxxxxx,长度是 6。 输入描述 一个由 x()| 组成的正则表达式。…

服务器虚拟化技术详解与实战:架构、部署与优化

📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 引言 在现代 IT 基础架构中,服务器虚拟化已成为提高资源利用率、降低运维成本、提升系统灵活性的重要手段。通过服务…

jvm--类的生命周期

学习类的生命周期之前,需要了解一下jvm的几个重要的内存区域: (1)方法区:存放已经加载的类信息、常量、静态变量以及方法代码的内存区域 (2)常量池:常量池是方法区的一部分&#x…

TensorFlow实现逻辑回归模型

逻辑回归是一种经典的分类算法,广泛应用于二分类问题。本文将介绍如何使用TensorFlow框架实现逻辑回归模型,并通过动态绘制决策边界和损失曲线来直观地观察模型的训练过程。 数据准备 首先,我们准备两类数据点,分别表示两个不同…

《十七》浏览器基础

浏览器:是安装在电脑里面的一个软件,能够将页面内容渲染出来呈现给用户查看,并让用户与网页进行交互。 常见的主流浏览器: 常见的主流浏览器有:Chrome、Safari、Firefox、Opera、Edge 等。 输入 URL,浏览…

网络安全 | F5-Attack Signatures-Set详解

关注:CodingTechWork 创建和分配攻击签名集 可以通过两种方式创建攻击签名集:使用过滤器或手动选择要包含的签名。  基于过滤器的签名集仅基于在签名过滤器中定义的标准。基于过滤器的签名集的优点在于,可以专注于定义用户感兴趣的攻击签名…

STranslate 中文绿色版即时翻译/ OCR 工具 v1.3.1.120

STranslate 是一款功能强大且用户友好的翻译工具,它支持多种语言的即时翻译,提供丰富的翻译功能和便捷的使用体验。STranslate 特别适合需要频繁进行多语言交流的个人用户、商务人士和翻译工作者。 软件功能 1. 即时翻译: 文本翻译&#xff…