【AI开发】CRAG、Self-RAG、Adaptive-RAG

在这里插入图片描述
先放一张基础RAG的流程图
https://blog.langchain.dev/agentic-rag-with-langgraph/
再放一个CRAG和self-RAG的LangChain官方博客

Corrective RAG(CRAG)

在这里插入图片描述
首先需要知道的是CRAG的特色发生在retrieval阶段的最后开始,即当我们获得到了近似的document(或者说relevant snippets)之后。
然后我们会进入一个额外的环节,叫Knowledge Correction。在这里呢我们会先对retrieval得到的每一个相关切片snippets进行evaluate,评估一下我们获取到的snippet是不是对问的问题有效?(此处重点:evaluator也是一个LLM
然后会有三种情况:

  • Correct:那就直接进行RAG的正常流程。(不过图中是加了进一步的优化)
  • Incorrect:那就直接丢弃掉原来的document,直接去web里搜索相关信息
  • Ambiguous:对于模糊不清的,就两种方式都要

那么在最后的generation部分,也是根据三种不同的情况分别做处理。

  • 之前是correct,那现在就直接拼接问题和相关文档
  • 之前是incorrect,那现在就直接拼接问题和web获取的信息
  • 之前是ambiguous,那现在就拼接三个加起来

以上是CRAG的原始大概逻辑,但在langchain中对此进行了简化:
在这里插入图片描述
在Langchain中只存在两种情况,即当incorrect的时候,直接就去web上search了(先经过一个transform_query对问题进行重写,变成更适合web搜索的形式)

Self-RAG

和CRAG的核心都是self-reflective,即当我发现结果不是那么有效时,我要通过环回溯到之前的步骤去优化。

在这里插入图片描述

和CRAG不一样的是,selfRAG的流程是从最开始进行的,大概流程:

  1. 先判断问题是不是需要retrieval,如上图右下角,此处的问题是写一篇essay,那其实根本没必要去retrieval,直接放入LLM就行
  2. 当问题需要检索的时候,我们会将得到的每个document snippet分别判断
    ①是否有关relevant:
    如果无关,那就不进行第②步。
    如果有关:
    ②如果有关,那是否支持support,或者部分支持partial support,或者不支持
  3. 当我们对所有snippets都判断后,按照相关性进行排序,然后依次送到LLM中去进行最后的步骤。
  4. 在最后生成后还有一次评估,总共三次。

在这里插入图片描述
这是用LangChain(LangGraph)做self-RAG的流程图,如果能自己动手画出来这个图,知道什么时候是哪个节点,什么时候是哪种边,就说明真正学会了。

推荐个b站up:沧海九粟
我的很多文章都是看他的视频做的

Adaptive RAG

这个我就不写了,有篇博客写的很好
https://blog.csdn.net/qq_45668004/article/details/138199143
总结一下就是:self-RAG里面的令牌大多都是关于判断得到的某个东西合不合要求,从而进行不一样的action。而Adaptive里面的令牌相当于一个分类器,把问题分类成几种类型,每种类型对应不同复杂程度的RAG模型

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【proteus仿真】基于51单片机的电压检测系统

【proteus仿真】基于51单片机的电压检测系统 资料下载地址:关注公众号 小邵爱电子 获取 1.前言 使用51单片机和ADC模块设计一个数字电压表,将模拟信号0~5V之间的电压转换为数字量信号,并通过LED实时显示电压数据 、 2.仿真原理图 3.硬件…

简单几步把完整的Windows塞进U盘,小白都能看懂

前言 小白之前写过相似的文章,但教程是通过WinPE操作实现的。 把Windows系统装进U盘,从此到哪都有属于你自己的电脑系统 有些小伙伴反馈教程写得很复杂,简直生涩难懂。 为啥要写得这么复杂呢?小白是想让小伙伴们多了解一些不同…

为什么MOSFET是双向导通的

MOSFET 的电压控制机理是利用栅极电压的 大小改变感应电场生成的导电沟道的厚度(感生电荷的多少),来控制漏极电流 Id 的。从图1(b)中可 以看出,当栅极电压 V gs小于开启电压 V th时,无论 V ds的…

Android系统上Bootchart的使用

Android系统的启动细节分析,可以用工具bootchart来进行 一、Bootchart简介 官网地址:https://www.bootchart.org/ Google推荐bootchart作为开机优化的首选工具:https://source.android.com/devices/tech/perf/boot-times#bootchart bootc…

第三方软件测试报告包括哪些内容?如何获取专业第三方测试报告?

第三方软件测试报告是由独立的第三方公司进行软件测试后所生成的报告。该报告会清晰地呈现出软件在各个方面的测试结果和评估。通过第三方公司的专业测试,这些报告具有公正、中立和权威的特点。 一、第三方软件测试报告包括哪些内容? 1、功能测试:验证…

3d中毒了打不开模型怎么办---模大狮模型网

3D中毒了打不开模型怎么办?这是很多3D爱好者都会遇到的问题。在使用3D建模软件时,有时会出现打不开模型的情况,这可能是由于软件本身的问题,也可能是由于电脑配置不够高导致的。下面我们就来看看如何解决这个问题。 首先&#xff…

解密:不用import,Python编程将遭遇什么?

在Python中,import 语句用于导入其他模块或库,如果不使用 import,会导致以下问题: 无法使用外部库或模块: Python标准库以及第三方库提供了丰富的功能和工具,如果不导入这些库,就无法使用它们提供的功能。 代码可读性降低: import 语句可…

12.1 Go 测试的概念

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

Suno AI如何解决中文多音字的问题? 耗费500积分,亲测有效 ,V4版本会不会直接支持呢?

导读 SunoAI创作中文歌曲时,很容易遇到多音字的困扰,这期视频为大家分享解决这个问题的方法。 Suno似乎不太认识一些中文字,所以如果有什么多音词、冷僻字,不是唱错,要么就是跳过,v2、v3、v3.5似乎都有这…

MSPM0L1306——定时器

相关配置: #include "ti_msp_dl_config.h"int main(void) {SYSCFG_DL_init();//清除定时器中断标志NVIC_ClearPendingIRQ(TIMER_0_INST_INT_IRQN);//使能定时器中断NVIC_EnableIRQ(TIMER_0_INST_INT_IRQN);while (1) { } }//定时器…

双层循环和循环控制语句的使用,以及while和until的语法使用

echo 打印 -n 表示不换行输出 -e 输出转义字符 /b:相当于退格键(backspace) /n: 换行,相当于回车 /f: 换行,换行后的新行的开头连着上一行的行尾 /t: 相当于tab键 又叫做横向制…

智慧档案库房建设费用大概多少

智慧档案库房建设费用因地区、规模和具体需求而异,以下是一些常见费用项: 1. 建筑物建设费用:包括设计、施工、装修、材料等费用。 2. 设备费用:包括服务器、网络设备、存储设备、十防等硬件设备的费用。 3. 软件费用:…

“调包侠”时代已经过去:普通程序员应如何应对新时代的挑战?

🚀“调包侠”时代已经过去:普通程序员应如何应对新时代的挑战? 大家好,我是猫头虎,科技自媒体博主,今天周一。🌟今天我们来聊聊一个非常重要的话题,那就是在AI时代,为什…

计算机网络:网络层 - 虚拟专用网 VPN 网络地址转换 NAT

计算机网络:网络层 - 虚拟专用网 VPN & 网络地址转换 NAT 专用地址与全球地址虚拟专用网 VPN隧道技术 网络地址转换 NAT网络地址与端口号转换 NAPT 专用地址与全球地址 考虑到 IP 地址的紧缺,以及某些主机只需要和本机构内部的其他主机进行通信&…

MTANet: 多任务注意力网络,用于自动医学图像分割和分类| 文献速递-深度学习结合医疗影像疾病诊断与病灶分割

Title 题目 MTANet: Multi-Task Attention Network for Automatic Medical Image Segmentation and Classification MTANet: 多任务注意力网络,用于自动医学图像分割和分类 01 文献速递介绍 医学图像分割和分类是当前临床实践中的两个关键步骤,其准…

day12--150. 逆波兰表达式求值+239. 滑动窗口最大值+ 347. 前 K 个高频元素

一、150. 逆波兰表达式求值 题目链接:https://leetcode.cn/problems/evaluate-reverse-polish-notation/description/ 文章讲解:https://programmercarl.com/0150.%E9%80%86%E6%B3%A2%E5%85%B0%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%B1%82%E5%80%BC.html 视频…

初级篇-Docker容器知识

Docker容器 容器主要是解决跨平台、跨服务运行环境的问题 容器将运行业务应用所需要的东西进行打包,包括依赖项、配置、脚本、二进制文件等。在容器中运行镜像,不用担心不同环境下运行不一致的问题。 容器本质上是一个特殊的进程,将资源、…

【Nvidia+AI车载摄像头】超小尺寸300万像素车载环视摄像头方案

作为一家致力于成像和视觉技术的科技创新公司,于近日推出了基于安森美300万像素AR0341AT图像传感器的超小尺寸车载环视摄像头模组,可助力提高驾驶的安全指标,有效解决高速自动驾驶对卓越的HDR性能和图像质量的需求,并降低系统开发…

Navicat 安装及初步配置指南

Navicat 是一款广泛使用的数据库管理工具,支持多种数据库,如 MySQL、PostgreSQL、SQLite 等。以下是 Navicat 安装步骤的详细说明: 在 Windows 上安装 Navicat 下载 Navicat 安装包: 访问 Navicat 官方网站:Navicat 官…

Linux 精通 4.2

reactor应用 response:回应的数据组织成包;request解析对方发来的data touch webserver.c int http_request(struct conn *c){// 传connect信息printf("request: %s\n", c->rbuffer) }int http_response(struct conn *c){}改reactor.c 的…
最新文章