当前位置: 首页 > news >正文

RAG(Retrieval Augmented Generation)及衍生框架:CRAG、Self-RAG与HyDe的深入探讨

近年来,随着大型语言模型(LLMs)的迅猛发展,我们在寻求更精确、更可靠的语言生成能力上取得了显著进展。其中,检索增强生成(Retrieval-Augmented Generation)作为一种创新方法,极大地提升了语言模型在知识密集型任务中的表现。然而,RAG并非尽善尽美,其依赖检索文档的特点也带来了相关性和准确性的挑战。为了克服这些挑战,研究者们提出了多种衍生框架,包括纠错检索增强生成(CRAG)、自我反思检索增强生成(Self-RAG)以及HyDe(Hypothetical Document Embeddings)等,这些框架在提升语言模型性能上展现出了巨大潜力。

RAG:基础与挑战

RAG(Retrieval-Augmented Generation)通过引入外部信息检索来增强语言模型的生成能力。在生成文本时,RAG模型不仅依赖其内部参数知识,还会从外部数据源(如文档数据库)中检索相关信息作为输入。这种方法在回答知识密集型问题时尤为有效,因为模型可以直接利用检索到的具体事实来生成准确的答案。

然而,RAG方法也面临着几个核心挑战:

  1. 相关性挑战:检索到的文档可能与查询不相关,从而降低生成答案的准确性。

  2. 效率问题:不必要的检索和整合会增加模型的计算负担,影响生成速度。

  3. 泛化能力:模型在面对新的、未在训练集中出现的情况时,可能表现不佳。

为了解决这些问题,研究者们提出了多种改进方案,其中CRAG、Self-RAG和HyDe是其中的佼佼者。

CRAG:纠错检索增强生成

CRAG(Corrective Retrieval Augmented Generation)是在RAG基础上进行的一种改进,其核心思想是引入纠错机制来提高检索的准确性和相关性。

核心架构与工作原理:

  1. 检索评估机制(Retrieval Evaluator)
  • 1、CRAG使用一个经过微调的T5-large模型作为检索评估器,用于评估针对特定用户请求所获取文档的总体品质,并计算相关性分数。

  • 2、在模型微调过程中,正样本(positive samples)被标记为“1”,负样本(negative samples)被标记为“-1”。

  • 3、模型推理阶段,评估器为每篇文档计算一个相关性分数,这些分数根据特定阈值被分为“正确”、“错误”和“不确定”三个类别。

  1. 知识精炼算法(Knowledge Refinement Algorithm)
  • 1、CRAG采用“细分再整合”的策略来深度挖掘文档中的核心知识信息。

  • 2、首先,使用启发式规则将文档分解为多个细粒度的知识点。

  • 3、然后,计算每个知识点的相关性得分,并滤除得分较低的部分。

  • 4、最后,将高相关性的知识点重组,形成内部知识库,供生成模型使用。

  1. 处理流程:
  • 1、CRAG首先通过检索评估器评估检索文档与用户查询之间的相关性。

  • 2、若检索结果被判定为“正确”,则使用知识精炼算法对文档内容进行优化。

  • 3、若检索结果被判定为“错误”,则使用网络搜索引擎检索更多外部知识。

  • 4、若检索结果被判定为“不确定”,则既需要运用知识精炼算法,也需要搜索引擎的辅助。

  • 5、最终,经过处理的信息被转发给大语言模型(LLM),生成最终的模型响应

CRAG技术通过这种方式提高了检索结果的准确性,并减少了无关信息的干扰,从而提升了模型回答的质量。

CRAG的优势在于其能够自动识别和纠正检索过程中的错误,减少不相关文档对生成答案的负面影响。同时,通过引入纠错机制,CRAG还能够提升模型在处理复杂查询时的鲁棒性。

Self-RAG:自我反思检索增强生成

Self-RAG(Self-Reflective Retrieval-Augmented Generation)则更进一步,通过引入自我反思机制来提升语言模型的生成质量。Self-RAG不仅关注检索的准确性,还关注模型生成过程的可控性和反思能力。具体而言,Self-RAG通过以下方式实现:

  1. 反思Token生成:在生成过程中,模型会生成特殊的反思Token,如Retrieve、ISREL、ISSUP和ISUSE等,这些Token分别用于指示是否需要检索、评估检索文档的相关性、支持度和整体效用。

  2. 按需检索:根据反思Token的指示,模型决定是否需要进一步检索相关文档,并并行处理多个检索到的段落。

  3. 生成与评估:在生成答案后,模型利用反思Token进行自我评估,选择最佳输出。

Self-RAG的优势在于其能够按需检索,减少不必要的检索操作,并通过自我反思提高生成答案的事实准确性和整体质量。此外,Self-RAG还通过引入反思Token增强了模型的可控性,使其能够根据不同任务需求调整生成行为。

HyDe:假设文档嵌入

HyDe(Hypothetical Document Embeddings)是一种创新的检索增强方法,它不同于传统的基于用户查询的检索方式,而是利用语言模型生成一个假设性的响应(即虚拟文档),然后利用这个响应进行检索。

HyDE的核心架构和工作原理如下:

  1. 生成假设文档:HyDE利用语言学习模型(如GPT)根据用户的查询生成一个假设性的答案或文档。这个文档虽然不是真实存在的,但它旨在模拟相关文档的内容,从而捕获查询的相关性模式。

  2. 文档编码:生成的假设文档随后被一个无监督对比学习的编码器(如Contriever)转换成一个嵌入向量。这个向量在语料库的嵌入空间中确定了一个邻域,基于向量相似性从中检索出相似的真实文档。

  3. 相似性检索:使用生成的文档向量在本地知识库中进行相似性检索,寻找最终结果。HyDE通过这种方式能够以零样本的方式工作,即不依赖于具体的相关性标签进行训练,从而适应多种语言和任务,即使在没有明确训练数据的情况下也能进行有效的文档检索。

HyDE的工作原理可以概括为:

  • 输入指令和查询:HyDE接收一个查询指令,例如“写一个段落来回答这个问题”。

  • 生成文档:基于GPT的语言模型生成一个假设的文档。

  • 文档编码与检索:生成的文档被送入对比学习的编码器,该编码器将文档转换成嵌入向量,然后这个向量被用来在语料库中查找最相似的真实文档。

  • 返回结果:模型根据生成的文档与真实文档之间的语义相似性返回查询结果。

HyDE的优势在于它能够处理更复杂和多样化的查询,特别适用于需要高度解释性和语义理解的领域,如医疗、法律和科研文献检索。它通过创造性地解释和拓展查询内容,提供更深层次的匹配和理解,从而提高了检索的相关性和准确性

HyDe的优势在于其能够处理那些过于抽象或缺乏具体上下文的用户查询。通过生成假设文档,HyDe为检索过程提供了更多的上下文信息,从而提高了检索的准确性和相关性。

RAG及其衍生技术(CRAG、Self-RAG、HyDe)在提升语言模型准确性和适用性方面发挥了重要作用。这些技术通过引入纠正机制、自我反思和假设性文档嵌入等方法,解决了RAG在相关性和准确性方面的不足,提高了语言模型在处理知识密集型任务时的性能。

如何学习AI大模型?

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

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

相关文章:

RAG(Retrieval Augmented Generation)及衍生框架:CRAG、Self-RAG与HyDe的深入探讨

近年来,随着大型语言模型(LLMs)的迅猛发展,我们在寻求更精确、更可靠的语言生成能力上取得了显著进展。其中,检索增强生成(Retrieval-Augmented Generation)作为一种创新方法,极大地…...

C语言介绍

什么是C语言 C programing language 能干什么 Hello world? 如何学C语言 no reading no learning...

损失函数篇 | YOLOv10 更换损失函数之 MPDIoU | 《2023 一种用于高效准确的边界框回归的损失函数》

论文地址:https://arxiv.org/pdf/2307.07662v1.pdf 边界框回归(Bounding Box Regression,BBR)在目标检测和实例分割中得到了广泛应用,是目标定位的重要步骤。然而,对于边界框回归的大多数现有损失函数来说,当预测的边界框与真值边界框具有相同的长宽比,但宽度和高度的…...

WMware安装WMware Tools(Linux~Ubuntu)

1、这里终端里面输入sudo apt upgrade用于更新最新的包 sudo apt upgrade 2、安装 open-vm-tools-desktop 包, Ps:这里是以为我已经安装好了。 udo apt install open-vm-tools-desktop -y3、最后重启就大功告成了 reboot 4、测试是否成功&#xff1a…...

SLAM ORB-SLAM2(30)关键帧跟踪

SLAM ORB-SLAM2(30)关键帧跟踪 1. 关键帧跟踪2. TrackReferenceKeyFrame2.1. 将当前普通帧的描述子转化为BoW向量2.2. 通过词袋BoW加速当前帧与参考帧之间的特征点匹配2.3. 将上一帧的位姿态作为当前帧位姿的初始值2.4. 通过优化3D-2D的重投影误差来获得位姿2.5. 剔除优化后的…...

k8s 部署 prometheus

创建namespace prometheus-namespace.yaml apiVersion: v1 kind: Namespace metadata:name: ns-prometheus拉取镜像 docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/prometheus/prometheus:v2.54.0prometheus配置文件configmap prometheus-configmap.yaml …...

使用VBA快速生成Excel工作表非连续列图片快照

Excel中示例数据如下图所示。 现在需要拷贝A2:A15,D2:D15,J2:J15,L2:L15,R2:R15为图片,然后粘贴到A18单元格,如下图所示。 大家都知道VBA中Range对象有CopyPicture方法可以拷贝为图片,但是如果Range对象为非连续区域,那么将产生10…...

解决GitHub下载速度慢

解决GitHub下载速度慢 方法一:使用git clone 地址 --depth 1来下载 depth 1 表示只科隆最新的一次提交,也就是默认主分支,而不是完整地克隆整个代码仓库,这样可以减少下载地数据,加快克隆操作 可以用git clone 地址 …...

【机器学习(五)】分类和回归任务-AdaBoost算法

文章目录 一、算法概念一、算法原理(一)分类算法基本思路1、训练集和权重初始化2、弱分类器的加权误差3、弱分类器的权重4、Adaboost 分类损失函数5、样本权重更新6、AdaBoost 的强分类器 (二)回归算法基本思路1、最大误差的计算2…...

【设计模式-模板】

定义 模板方法模式是一种行为设计模式,它在一个方法中定义了一个算法的骨架,并将一些步骤延迟到子类中实现。通过这种方式,模板方法允许子类在不改变算法结构的情况下重新定义算法中的某些特定步骤。 UML图 组成角色 AbstractClass&#x…...

小程序原生-列表渲染

1. 列表渲染的基础用法 <!--渲染数组列表--> <view wx:for"{{numList}}" wx:key"*this" > 序号&#xff1a;{{index}} - 元素&#xff1a;{{item}}</view> <!--渲染对象属性--> <view wx:for"{{userInfo}}" wx:key&q…...

JAVA认识异常

目录 1. 异常的概念与体系结构 1.1 异常的概念 1. 算术异常 2. 数组越界异常 3. 空指针异常 1.2 异常的分类 1. 编译时异常 2. 运行时异常 2.1 异常的处理 防御式编程 2.2 异常的捕获 2.3.1 异常声明throws 2.3.2 try-catch捕获并处理 2.3.3 finally 总结 1. 异常…...

2024年10月计划(工作为主,Ue5独立游戏为辅,)

我发现一点&#xff0c;就是工作很忙&#xff0c;比如中秋也在远程加班&#xff0c;周末有时也远程加班&#xff0c;国庆节甚至也差点去甲方工作。甚至有可能驻场。可见&#xff0c;小公司确实不能去。 好在&#xff0c;9月份时&#xff0c;通过渲染 除了上班时间外&#xff0…...

并发、并行和异步设计

译者个人领悟,一家之言: 并发和并行确实可以明确区分出来,因为cpu的速度非常快,在执行一个任务时经常要等其他组件,比如网络,磁盘等,如果一直串行等待这样就会造成很大的浪费. (就类似于烧水的同时,可以切菜,不用等烧水完成了才去切菜,我可以烧一会水,火生起来了水壶放上了,随…...

求职Leetcode题目(12)

1.只出现一次的数字 异或运算满足交换律 a⊕bb⊕a &#xff0c;即以上运算结果与 nums 的元素顺序无关。代码如下&#xff1a; class Solution {public int singleNumber(int[] nums) {int ans 0;for(int num:nums){ans^num;}return ans;} } 2.只出现一次的数字II 这是今天滴…...

【YashanDB知识库】如何配置jdbc驱动使getDatabaseProductName()返回Oracle

本文转自YashanDB官网&#xff0c;具体内容请见https://www.yashandb.com/newsinfo/7352676.html?templateId1718516 问题现象 某些三方件&#xff0c;例如 工作流引擎activiti&#xff0c;暂未适配yashandb&#xff0c;使用中会出现如下异常&#xff1a; 问题的风险及影响 …...

Hadoop三大组件之MapReduce(一)

Hadoop之MapReduce 1. MapReduce是什么 MapReduce是一个分布式运算程序的编程框架&#xff0c;旨在帮助用户开发基于Hadoop的数据分析应用。它的核心功能是将用户编写的业务逻辑代码与自带的默认组件整合&#xff0c;形成一个完整的分布式运算程序&#xff0c;并并发运行在一…...

SQL Server 分页查询的学习文章

SQL Server 分页查询的学习文章 一、SQL Server 分页查询1. 什么是分页查询&#xff1f;2. SQL Server 的分页查询方法2.1 使用 OFFSET 和 FETCH NEXT语法&#xff1a;示例&#xff1a; 2.2 使用 ROW_NUMBER() 方法语法&#xff1a;示例&#xff1a; 2.3 性能考虑3. 总结 一、S…...

告别PDF大文件困扰!4款PDF在线压缩工具助你轻松优化!

嘿&#xff0c;档案员小伙伴们&#xff0c;今天咱们来聊聊那些让咱们在档案堆里游刃有余的神器。这些工具啊&#xff0c;简直就是咱们档案员的得力助手&#xff0c;特别是在PDF压缩这块儿&#xff0c;简直就是神器中的神器&#xff01; 1、福昕转换大师 网址&#xff1a;http…...

Find My汽车钥匙|苹果Find My技术与钥匙结合,智能防丢,全球定位

随着科技的发展&#xff0c;传统汽车钥匙向智能车钥匙发展&#xff0c;智能车钥匙是一种采用先进技术打造的汽车钥匙&#xff0c;它通过无线控制技术来实现对车门、后备箱和油箱盖等部件的远程控制。智能车钥匙的出现&#xff0c;不仅提升了汽车的安全性能&#xff0c;同时也让…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...