自反检索增强生成 (SELF-RAG)

理想情况下,生成式 AI 的落地应用需要提供真实且高质量的响应。SELF-RAG 正是为解决此问题而被创建的。

图片

背景介绍

  1. 有趣的是,RAG的发展轨迹与提示工程(prompt engineering)非常相似。RAG 最初是一个简单而有效的概念,其核心是在提示(prompt)中注入相关的背景信息。

  2. RAG 的主要目标是充分利用大语言模型 (LLM) 的语境学习能力(ICL)。

  3. 目前,RAG 正被赋予更复杂的机制与更高的效率。并非所有情况下都默认进行检索,系统会先经过一个筛选流程来判断 LLM 是否可以独立完成用户请求。

  4. 效率和准确性之间的权衡始终存在。以效率为代价的准确性会损害用户体验和实际的应用价值;而牺牲准确性的效率会导致结果的误导性与不准确性。

  5. 对用户输入进行筛选,以此决定是直接依靠 LLM 进行推断(inference)还是通过 RAG 注入提示,这一过程需要一个参照物。在 SELF-RAG 的情况下,它是利用基于自反机制(self-reflection)微调过的LLM 来做参照的。

  6. RAG 筛选的原理可以有多种实现形式。最重要的是一个决策参照,用以判断是直接从 LLM 推断问题答案,还是使用 RAG。并且在使用 RAG 的情况下,能进一步评估响应的质量和正确性。

  7. 基于生成式 AI 的应用程序还可以更广泛地考虑筛选流程... 除了直接推断或 RAG 之外,还有其他人机协作、网络搜索、多 LLM 协调等选项。

深入了解 SELF-RAG

SELF-RAG 框架可以训练出一个通用的语言模型,使其能够按需自适应地检索段落。

该模型会借助被称为 “自反令牌”(reflection tokens)的特殊标记,来生成和反思所检索的段落以及自身生成的内容。

自反令牌

自反令牌分为 “检索” 和 “批判” 两类,分别表示检索需求和生成质量。

SELF-RAG 使用自反令牌来确定是否需要检索,并对所生成内容的质量进行自我评估。

生成自反令牌使得语言模型在推理阶段具备可控性,让其能够根据不同的任务需求调整自身行为表现。

研究表明,SELF-RAG 显着优于标准的大语言模型 (LLMs) 和 RAG 方法。

SELF-RAG 的运作步骤

  1. 大语言模型(LLM)在检索到的段落指导下生成文本。

  2. 通过学习生成特殊标记的方式来批判输出结果。

  3. 这些自反令牌标示了检索的需求,或是确认输出结果的相关性、论据支持、或完整性。

  4. 相比之下,常见的 RAG 方法不加区别地检索段落,无法确保所引用来源的可靠性。

图片

考虑到下图... SELF-RAG 学习检索、批判和生成文本段落,以提升整体生成质量、真实性和可验证性。

图片

延伸思考

额外的推断与成本

SELF-RAG 会在推断方面引入更多的开销。参考上图,这种自反式的 RAG 方法会引入更多的推断点。

首先会执行一次推断,然后并行执行三次推断。接着,对这三个结果进行比较,并选出一个“优胜者”用于 RAG 推断。

超出领域范围

同样在上图中可以看出,对于领域外的查询,会被识别出来,请求不会通过检索来处理,而是直接发送到 LLM 推断。

Agentic RAG

再参考下面这张图,一个问题值得思考...

随着 RAG 过程复杂性的增加,我们是否正在接近这样一个点:基于智能体(agent)的 RAG 方法将会是最优选择?这种方法在 LlamaIndex 中被称为“Agentic RAG”(Agentic RAG)。

图片

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

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

相关文章

Rust 的 Error 如何使用?

在 Rust 中,错误处理是一个重要且核心的概念。Rust 提供了一种强大的类型系统,允许你明确地处理可能出现的错误。std::error::Error trait 是 Rust 标准库中用于表示错误的基础 trait。实现这个 trait 的类型可以被用作错误类型,并且可以使用…

cocos2d-x-3.17 android升级 gradle NDK_DEBUG=0 -o NDK_DEBUG=1 -o cocos2dlua_shared

由于需要升级sdk版本 需要对应升级gradle版本 记录下升级内容 externalNativeBuild { ndkBuild { - //arguments NDK_DEBUG0 -o 修改成下面 arguments NDK_DEBUG0 } } debug { …

音频功率放大器方案LM4863替代DP4863

音频放大器是在产生声音的输出元件上重建输入的音频信号的设备,其重建的信号音量和功率级都要理想——如实、有效且失真低。音频范围为约20Hz~20000Hz,因此放大器在此范围内必须有良好的频率响应。根据应用的不同,功率大小差异很大…

spring security oauth2 的 scope 概念

在Spring Security OAuth2中,scope用于定义客户端应用程序可以访问的资源范围。这些范围决定了客户端应用程序可以向授权服务器请求哪些权限和资源。以下是一些常见的OAuth2 scope: read: 这个scope允许客户端应用程序读取用户的资源。例如,如…

光学硬件——二向色片

二向色镜(Dichroic Mirrors )又称双色镜,常用于激光技术中。 产品介绍: 指45度入射或大角度入射时,把光源分离出特定的光谱改变部分光谱光路方向,常用于酶标仪器、荧光显微镜系统、投影光引擎系统、激光灯…

一站式数据采集物联网平台:智能化解决方案,让数据管理更高效、更安全

JVS物联网平台的定位 JVS是企业信息化的“一站式解决方案”,其中包括了基础的数字化底座、各种企业级能力、企业内常见的应用,如下图所示: 整体平台能力层有三大基础能力: 低代码用于业务的定义;数据分析套件用于数据的自助式分…

2024年1月饮料行业数据:热销品牌商品排行榜出炉!

鲸参谋监测的某东平台1月份饮料市场销售数据已出炉! 根据鲸参谋电商数据分析平台显示,今年1月份,某东平台上饮料的销量约770万件,环比上个月增长62%,同比去年下滑35%;销售额约25亿元,环比上个月…

Clickhouse数据库应用

目录 ClickHouse的特点和应用优势 应用场景 操作数据库 建表 同步数据 数据查询分析 注意事项 Clickhouse 官网地址: https://clickhouse.tech ClickHouse是一个由俄罗斯的Yandex于2016年开源的面向OLAP(联机分析处理)的列式数据库管理…

【数据结构】特殊的线性表——栈

🧧🧧🧧🧧🧧个人主页🎈🎈🎈🎈🎈 🧧🧧🧧🧧🧧数据结构专栏🎈🎈🎈&…

【毕业论文】基于Python的论文管理系统设计与实现+核心内容

🔍 “学术助手”:基于Python的论文管理系统设计与实现 在学术研究的世界里,论文管理是一项既繁琐又重要的任务。从文献收集、资料整理到论文撰写和版本控制,每一个环节都对研究工作的效率和质量有着直接影响。本文将介绍如何利用…

[leetcode 45][跳跃游戏||]

[leetcode 45][跳跃游戏||] 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n …

torch.cuda.is_available()=False

问题&#xff1a; 显示torch.cuda.is_available()False 解决办法&#xff1a;说明这个虚拟环境不可用&#xff0c;删除虚拟环境&#xff0c;重建一个新的虚拟环境 1、删除原来的虚拟环境&#xff0c;假如原虚拟环境为pytorch-old&#xff0c;输入以下命令&#xff0c;先退出当…

供应一体化可视化负压自动放水器

老顾客总会再来&#xff0c;新顾客也会有 没有谁能永远照顾你生意 所以放过自己 不要总觉得自己 哪儿做错了 用心做好每一款产品和售后 供应一体化可视化负压自动放水器 一、产品介绍 负压自动放水器是一种自动双向功能自动放水装置 &#xff0c;现在煤矿上主要防止管道阻塞、…

vsto 打开excel同时同花顺插件自动登录报错

excelApp.Workbooks.Open(path, false); Svstem,Runtime,Interopservices,COMException(0x800706BE):远程过程调用失败。(号常来自 HRESULT:0X800706BE)在 Micosot olieieroo.Excelworbols0penstma fiename.0hiectUodatelinks 0biectReadony 0hedtfomat 0hiectPaswond. 0hectwt…

基于SWOT法的信阳本土房地产企业现状及对策分析

目 录 摘要 1 Abstract 1 1绪论 2 2信阳市房地产企业概述 2 2.1中小城市房地产企业概念 2 2.2信阳本土房地产企业定位 3 2.2.1信阳市概况 3 2.2.2信阳市城市规划 3 2.2.3信阳房地产企业概况 4 2.3信阳市本土房地产企业特点 5 2.4研究信阳市本土房地产企业的必要性 6 3运用SWOT…

KAFKA入门教程

目录 1.安装kafka 2.安装kafkamanager可视化工具 3.springboot整合kafka 1.pom导包 2.启动类和yml配置 3.代码演示 编写生产者&#xff1a; 消费者&#xff1a; 1.安装kafka 进入kafka官网下载对应版本kafka kafka官网地址&#xff1a;Apache Kafka kafka是使用Scal…

【阿里云系列】-如何实现两个VPC网络资源互通

背景 由于实际项目预算有限&#xff0c;两套环境虽然分别属于不同的专有网络即不同的VPC&#xff0c;但是希望借助一台运维机器实现对两个环境的监控和日常的运维操作 网络架构 如下是需要实现的外网架构图&#xff0c;其中希望实现UAT环境的一台windows的堡垒机可以访问生产…

python中的幂运算

在Python中&#xff0c;表示幂运算的运算符是 **。 这是唯一用于幂运算的运算符&#xff0c;没有其他运算符与它具有相同的功能。 例如&#xff1a; # 使用 ** 运算符进行幂运算 result 2 ** 3 # 结果是 8&#xff0c;因为 2 的 3 次方等于 8 print(result) 除了 ** 运算符…

Spring Cloud集成nacos配置中心

1.添加Nacos Config依赖 打开nacos-config-demo的pom.xml文件并添加以下两个依赖项 项目的配置文件中通常包括数据库连接配置项、日志输出配置项、Redis连接配置项、服务注册配置项等内容&#xff0c;如spring-cloud-alibaba-nacos-config-base-demo项目中就包含数据库连接配置…

数据守护神:自动备份数据的重要性与方案

在数字化时代&#xff0c;数据已经成为我们生活与工作的核心。无论是个人用户还是企业组织&#xff0c;数据的丢失或损坏都可能带来不可估量的损失。因此&#xff0c;自动备份数据的重要性不言而喻。自动备份数据不仅能够确保数据的实时更新和安全性&#xff0c;还能在数据丢失…