CAG缓存增强生成与RAG检索增强生成对比

深度定制 LLM 知识,除了 RAC ,现在又有新技术

假设有一份200页的产品手册,你想让 LLM 准确回答里面的相关问题,要实现这个目标,除了常用的检索增强生成技术 rep ,现在有了新思路,缓存增强生成 CAG ,它是什么,何时使用.

在这里插入图片描述

RAG检索增强是常规套路,CAG缓存增强是后起之秀让我们来对比一下他们的优缺点. 我们先来了解一下,检索增强生成 RAG 的工作流程

RAG检索增强流程

在这里插入图片描述

第一步 索引阶段 这个步骤在提前处理的情况下 也允许动态加入

就像煮饭备料一样

  • RAG 会将文档切成小块
  • 再转换成向量
  • 存入向量数据库

第二步 查询阶段

用户提问后

  • 系统将问题转为向量
  • 在向量数据库中检索相似内容

第三步 增强阶段

  • 将检索到的相关内容添加到提示词中

第四步 生成阶段

  • LLM 基于增强后的提示词生成回答

RAG工作流程缺点

了解过 RAG的工作流程,它的局限性大家可能也都猜到了

  • 检索存在延迟
  • 检索的质量和内容影响回答准确性
  • 架构复杂,需要费心维护向量数据库

CAG检索增强流程

在 RAG 基础上,CAG 提供了另一种解题思路, 它比 RAG 工作流程更短 主要包括两个阶段
在这里插入图片描述

第一阶段 预处理流程

  • 对知识源进行处理,提取关键信息
  • 接着将信息结构化
  • 利用 LLM 将文档转化为键值对缓存

以一本书为例, 就是把它的关键内容, 组成对应关系进行缓存. 像
章节标题对应章节摘要、人物名称对应人物描述、核心概对应概念解释、常见问题对应答案

第二阶段 查询流程

  • 初始阶段,所有键值对都加载到缓存当中
  • 把缓存加载到 LLM 的上下文窗口中
  • 与用户提问一起发送给 LLM
  • LLM 直接从上下文的知识缓存中检索, 并生成回答

CAG检索增强流优势

省略了检索步骤使 CAG 拥有了明显的优势,

  • 无检索延迟,响应自然更快,
  • LLM 直接加载所有缓存知识回答一致性更高,
  • 无检索系统架构更简单,降低了维护的复杂性

最后我们来总结 一 RAG 和 CAG 到底何时用

何时使用 RAG的场景

  • 有规模庞大的知识库, 如超出 LLM 上下文窗口容量的,
  • 更新频繁的资料
  • 面向开放领域的多样化问题
  • 需要精准引用原文出处的

何时使用 CAG 的场景

  • 知识领域固定且规模适中的: 如书籍
  • 看重响应速度 用 CAG 能快几秒
  • 需要全局理解和一致性: 如财务报表分析,
  • 可以被有效提炼和结构化的知识
    请添加图片描述

总结

RAG 和 CAG ,它们代表了两种不同的知识增强范式一个动态检索、一个预加载缓存
选择哪种技术取决于你的 具体需求,知识规模和性能要求
在这里插入图片描述

文章:
https://blog.csdn.net/simoncool23/article/details/145224445

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

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

相关文章

基于vue、node.js、express的网络教学系统设计与实现/基于vue、node.js、express的在线学习系统设计与实现

基于vue、node.js、express的网络教学系统设计与实现/基于vue、node.js、express的在线学习系统设计与实现

享元模式引发的关于ECS和对象池的思考记录

文章目录概念概述解决了什么区别与联系享元模式的某个例子的细节分析概念概述 ECS(Entity-Component-System) 1、Entity(实体):唯一标识符。 2、Component(组件):纯数据容器&#x…

STM32驱动SG90舵机全解析:从PWM原理到多舵机协同控制

一、SG90舵机核心特性 1.1 基本参数与选型 SG90作为​​微型舵机的代表​​,凭借其​​轻量化设计​​(仅9g)和​​高性价比​​,在机器人、智能小车和云台系统中广泛应用: ​​关键参数对比​​: ​​参数​​ 180定位舵机 360连续旋转舵机 ​​控制目标​​ 精确…

goland怎么取消自动删除未使用的包

1.settings-Go-Imports-取消勾选Optimize imports on the fly2.settings-Tools-取消勾选Optimize imports

halcon基于透视的可变形模型匹配

算子1,create_planar_uncalib_deformable_model_xld***基于平面未校准的轮廓模型算子2,find_planar_uncalib_deformable_model***查找平面未校准可变形模型算子3,projective_trans_contour_xld***将轮廓进行透视变换附加算子 算子4read_conto…

Flink Stream API - 源码开发需求描述

概述 本文介绍如何基于Flink源码进行二次开发,实现一个动态规则引擎系统。通过自定义算子和算子协调器,实现数据流的动态规则计算和协调管理。以此更好理解前面介绍的源码相关文章 项目需求 核心功能 实现一个动态规则引擎,具备以下特性&…

「 CentOS7 安装部署k8s」

一、Linux系统部署K8s还是非常便利的,只需要掌握Linux常用命令,便可以迅速部署,一起来学习一下吧1、运行以下命令更新系统并安装必要工具:yum update -y yum install -y yum-utils device-mapper-persistent-data lvm22、安装Dock…

Disbursement on Quarantine Policy(概率、逆元计算期望)

题目描述There is a train with n rows, and there are m seats per row. All seats are occupied. For some passengers, we know they are being infected with COVID-19 or not. However, for other passengers, we are not sure about their status, and we assume each of…

AI 在金融领域的落地案例

目录 引言 一、信贷风控:基于 LoRA 的 Qwen-7B 模型微调(适配城商行审批场景) 场景背景 核心代码 1. 环境依赖安装 2. 金融数据集加载与预处理(城商行信贷数据) 3. LoRA 微调 Qwen-7B 模型 4. 模型推理&#xf…

平衡二叉树的调整

平衡二叉树的定义平衡二叉树(balanced binary tree),又称AVL树(Adelson-Velskii and Landis)。 一棵平衡二叉树或者是空树,或者是具有下列性质的二叉排序树:① 左子树与右子树的高度之差的绝对值小于等于1;…

深入解析:如何设计灵活且可维护的自定义消息机制

深入解析:如何设计灵活且可维护的自定义消息机制 引言 在现代软件开发中,组件间的通信机制至关重要。无论是前端框架中的组件交互,还是后端服务间的消息传递,一个良好的消息机制能显著提升代码的可维护性和扩展性。本文将深入探讨…

PostgreSQL——用户管理

PostgreSQL用户管理一、组角色管理1.1、创建组角色1.2、查看和修改组角色1.3、删除组角色二、角色的各种权限2.1、LOGIN(登录)2.2、SUPERUSER(超级用户)3.3、CREATEDB(创建数据库)3.4、CREATEROLE&#xff…

东软8位MCU使用问题总结

简介用的单片机为ES7P7021,采用8位RISC内核,2KB的FLASH,128bit的RAM。编译器使用东软提供的iDesigner,开发过程中编译器和单片机有一些地方使用时需要注意下。1.RAMclear()函数注意问题/****************************************…

深度学习在订单簿分析与短期价格预测中的应用探索

一、订单簿数据特性及预处理 1.1 订单簿数据结构解析 在金融交易领域,订单簿是市场微观结构的集中体现,它记录了不同价格水平的买卖订单信息。一个典型的订单簿由多个层级组成,每个层级包含特定价格上的买单和卖单数量。例如,在某…

Hashmap源码

目录 HashMap底层原理 JDK1.8及以后底层结构为:数组链表红黑树 默认参数 扩容机制 数组 链表 红黑树 HashMap为什么用红黑树不用B树 HashMap什么时候扩容 HashMap的长度为什么是 2的 N 次方 HashMap底层原理 JDK1.8及以后底层结构为:数组链表红…

【JAVA 字符串常量池、new String的存储机制、==与equals的区别,以及字符串重新赋值时的指向变化】

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录代码原理解错误逻辑理解理解与修正&#xff1a…

博客项目 Spring + Redis + Mysql

基础模块1. 邮箱发送功能最初设计的接口 (雏形)public interface EmailService {/*** 发送验证码邮件** param email 目标邮箱* return 发送的code* throws RuntimeException 如果发送邮件失败,将抛出异常*/String sendVerificationCode(Stri…

前端处理导出PDF。Vue导出pdf

前言:该篇主要是解决一些简单的页面内容导出为PDF1.安装依赖使用到两个依赖,项目目录下运行这两个//页面转换成图片 npm install --save html2canvas //图片转换成pdf npm install jspdf --save 2.创建通用工具类exportPdf.js文件可以保存在工具类目录下…

【GM3568JHF】FPGA+ARM异构开发板烧录指南

1. Windows烧录说明 SDK 提供 Windows 烧写工具(工具版本需要 V3.31或以上),工具位于工程根目录: tools/ ├── windows/RKDevTool 如下图,编译生成相应的固件后,设备烧写需要进入 MASKROM 或 LOADER 烧写模式,准备…

C++ 多进程编程深度解析【C++进阶每日一学】

文章目录一、引言二、核心概念:进程 (Process)功能与作用三、C 多进程的实现方式四、核心函数详解1. fork() - 创建子进程函数原型功能说明返回值完整使用格式2. wait() 和 waitpid() - 等待子进程结束函数原型参数与返回值详解3. exec 系列函数 - 执行新程序函数族…