Google提出 Speculative RAG:通过草稿机制增强检索增强生成

news2024/11/15 19:55:45

  每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/

近年来,大型语言模型(LLMs)逐渐被用于为用户提供问答服务。然而,尽管应用广泛,LLMs在面对知识密集型问题时,常常会出现事实性错误,甚至生成虚构内容(即无法验证的描述)。特别是当问题需要最新信息或涉及较为冷门的事实时,LLMs的表现尤为不理想。例如,当用户询问“最新款谷歌Pixel手机的功能有哪些?”时,LLMs可能会给出过时或不准确的信息。

为了应对这些问题,检索增强生成(RAG)应运而生,成为一种有望改善这一现状的解决方案。RAG通过利用外部知识库检索相关文档,并将检索到的信息融入生成的内容中,从而有效减少了知识密集型任务中的事实错误。然而,处理较长文档时,复杂的推理任务可能导致显著的延迟。尽管一些研究已探索延长LLMs上下文长度的路径,但如何在延长的上下文中实现扎实的推理仍是一个尚未解决的挑战。因此,在RAG系统中,如何在效率与效果之间找到平衡已成为一个核心研究焦点。

在《Speculative RAG: 通过草稿机制增强检索增强生成》一文中 (https://arxiv.org/pdf/2407.08223),研究者提出了一种新框架,通过引入一个更小的专用RAG起草模块,来分担主要模型的计算负担。该模块经过针对RAG任务的微调,旨在作为现有通用模型的高效且稳健的RAG组件。

Speculative RAG采用了草稿生成的方法,与推测解码类似。推测解码通过使用较小的模型同时快速生成多个候选内容,再与基础模型并行验证,从而加速了自回归模型的推理过程。研究表明,Speculative RAG在多个基准测试中均表现出了显著的精度提升和延迟减少。

Speculative RAG的工作原理

Speculative RAG包含两个核心部分:(1)专用的RAG起草器,(2)通用的RAG验证器。首先,基础模型的检索模块从知识库中检索相关文档。然后,Speculative RAG将计算负担分配给专用的RAG起草器,这是一种专门用于处理检索文档的小型模型,主要负责基于文档快速生成回答和推理内容。这样,通用验证器只需关注验证这些草稿答案的准确性,而无需逐一深入审查冗余的文档。

例如,在回答“谁在1980年电影《九到五》中饰演Doralee Rhodes?”时,检索模块会从知识库中获取多个相关文档。接着,Speculative RAG起草器会根据不同的文档子集并行生成多个草稿答案。由于检索的文档可能包含关于1980年电影和2010年音乐剧《九到五》的信息,通用RAG验证器会计算每个草稿的生成概率,并根据准确性赋予其信心分数。最终,验证器选出与1980年电影相关的草稿作为最终答案。

实验结果

Speculative RAG在多个公共RAG基准测试中展现了其高效性和准确性。研究人员使用Mistral-7B模型作为专用起草器,并通过Open Instruct数据集和Contriever-MS MARCO等文档对其进行微调。此外,Mixtral-8x7B模型作为通用验证器,不需要进一步训练。在TriviaQA、MuSiQue、PubHealth和ARC-Challenge数据集上,Speculative RAG的表现均优于标准RAG系统。在PubHealth数据集上,Speculative RAG的准确率比最佳基线系统Mixtral-Instruct-8x7B高出12.97%。

延迟的显著改善

由于RAG系统需要处理大量检索文档,延迟是一个关键挑战。在实验中,Speculative RAG通过并行草稿生成,大幅减少了延迟时间。例如,在PubHealth数据集上,Speculative RAG的延迟比标准RAG系统减少了51%。

总结

Speculative RAG通过将RAG任务分解为起草和验证两步,显著提升了生成内容的质量和速度。它利用专用起草器生成多个候选答案,再由通用模型进行验证,最终实现了精度提升高达12.97%,并将延迟减少了51%。Speculative RAG为通过任务分解提高RAG性能提供了新的思路。

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

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

相关文章

【自动化测试】自动化测试的价值和误区以及如何高效实用地落地自动化测试

引言 自动化并不仅仅是机器“点点点”的操作。虽然从表面上看,自动化测试确实涉及到了机器按照预设的脚本进行一系列的操作,但它的内涵远比这要丰富得多 高效实用地落地自动化测试,需要从策略规划、工具选择、团队协作、持续改进等多个方面进…

黑神话悟空:上架27天后,玩家群体分析

按9月13日的统计,仅在steam平台上,售出1900w份,约65亿人民币。 (游戏于2024年8月20日发售) 由于黑神话的关卡是线性的,即必须一关打过才能打下一关,和游戏的成就系统对应,所以可以…

C++:入门基础

一.C参考文档 https://legacy.cplusplus.com/reference/ https://zh.cppreference.com/w/cpp https://en.cppreference.com/w/ 二.C的第一个程序 #include <iostream> using namespace std;int main() {cout << "Hello world!" << en…

Node.js的学习2——内置模块(一)

Node.js的内置模块 module模块global全局变量Console控制台Errors错误模块捕获异常异步方法通过回调函数传递异常事件触发器对象异常捕获 module模块 使用module模块可以查看Node.js所有的内置模块、在所有模块中都可以使用的全局变量、程序在运行过程中可能会出现的四类错误。…

Git项目管理工具

分布式版本控制系统

快速生成服务器响应json-server的安装和使用

json-server介绍地址:https://www.geeksforgeeks.org/json-server-setup-and-introduction/ 1.json-server是什么? 基于自定义的json文件,快速生成服务端响应,可用于前端调试接口 2.安装和卸载json-server 2.1 安装: 使用npm命令: npm install -g json-server 2.2 卸载 npm …

“药乡”怀化,按下产业向海“加速键”

怀化&#xff0c;这座被火车拖来的城市&#xff0c;拥有什么独特的产业优势吗&#xff1f; 很多人不知道的是&#xff0c;怀化在整个医药领域可是大名鼎鼎的“中国道地药材之乡”&#xff0c;中药材资源蕴藏量居湖南省第一。尤其是怀化靖州&#xff0c;这里年集散茯苓11万吨&a…

Qt入门教程---项目创建全过程内存泄漏解释

目录 1.创建项目的说明 2.代码介绍说明 2.1文件分类介绍 2.2sources文件 2.3widget.ui文件 2.4widget.h文件 2.5中间文件 2.6.pro文件 3.打印输出hello world 3.1图形化界面生成控件 3.2代码生成控件 3.3打印结果展示 4.对于内存泄露的讨论 4.1对象树 4.2与栈开辟…

HTML贪吃蛇游戏

文章目录 贪吃蛇游戏 运行效果代码 贪吃蛇游戏 贪吃蛇是一款经典的休闲益智游戏。本文将通过HTML5和JavaScript详细解析如何实现一个简易版的贪吃蛇游戏。游戏的主要逻辑包括蛇的移动、碰撞检测、食物生成等功能。以下是游戏的完整代码及注释解析。&#xff08;纯属好玩&#…

文心一言 VS 讯飞星火 VS chatgpt (347)-- 算法导论23.2 6题

六、假定一个图中所有的边权重均匀分布在半开区间[0,1)内。Prim算法和Kruskal算法哪一个可以运行得更快&#xff1f;如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 在比较Prim算法和Kruskal算法在特定条件下的性能时&#xff0c;我们需要考虑几个因素&#xff…

【大模型专栏—进阶篇】智能对话全总结

大模型专栏介绍 &#x1f60a;你好&#xff0c;我是小航&#xff0c;一个正在变秃、变强的文艺倾年。 &#x1f514;本文为大模型专栏子篇&#xff0c;大模型专栏将持续更新&#xff0c;主要讲解大模型从入门到实战打怪升级。如有兴趣&#xff0c;欢迎您的阅读。 &#x1f4…

C语言 | Leetcode C语言题解之第400题第N位数字

题目&#xff1a; 题解&#xff1a; //解题思路&#xff1a;计算当前已经经过了多少位&#xff0c;当第一次超过n时&#xff0c;开始获取第n位 int findNthDigit(int n){int i, j, tem_1 10, tem_2 1, res; long count 0; /*i和j用于循环&#xff0c;count用…

Spring Boot集成Akka Cluster快速入门Demo

1.什么是Akka Cluster&#xff1f; Akka Cluster将多个JVM连接整合在一起&#xff0c;实现消息地址的透明化和统一化使用管理&#xff0c;集成一体化的消息驱动系统。最终目的是将一个大型程序分割成若干子程序&#xff0c;部署到很多JVM上去实现程序的分布式并行运算&#xf…

【计网】从零开始使用UDP进行socket编程 --- 服务端业务实现

在我们每个人都曾经历过“沮丧”时刻里&#xff0c; 如果我们不能对别人说有益的好话&#xff0c; 那我们最好还是什么也别说。 --- 卡耐基 《人性的弱点》--- 从零开始使用UDP进行socket编程 1 前情提要2 单词翻译2.1 业务需求2.2 设计字典类2.3 服务端与客户端逻辑2.4 运…

SQLite安装(含安装包)

安装包&#xff1a; 通过百度网盘分享的文件&#xff1a;sqlite-dll-win-x64-3460100.zip 链接&#xff1a;https://pan.baidu.com/s/1852coiq51QcNkeaHdu1Oyg 提取码&#xff1a;v2y6 解压 设置环境变量 验证安装成功 SQLite设置完成

ros学习笔记.4 Path Planning Part 2 (避障)

避障是如何工作的什么是局部规划器&#xff1f;什么是局部成本图&#xff1f;路径规划回顾如何使用动态重新配置和其他 Rviz 工具 局部规划器 一旦全局规划器计算出要遵循的路径&#xff0c;该路径就会发送给局部规划器。然后&#xff0c;局部规划器将执行全局规划的每个部分&…

唯徳知识产权管理系统 DownloadFileWordTemplate 文件读取漏洞复现

0x01 产品简介 唯徳知识产权管理系统,由深圳市唯德科创信息有限公司精心打造,旨在为企业及代理机构提供全方位、高效、安全的知识产权管理解决方案。该系统集成了专利、商标、版权等知识产权的全面管理功能,并通过云平台实现远程在线办公,提升工作效率。是一款集知识产权申…

【c++】类和对象(下)(取地址运算符重载、深究构造函数、类型转换、static修饰成员、友元、内部类、匿名对象)

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;C 目录 前言 一、取地址运算符重载 1. const修饰成员函数 2. 取地址运算符重载 二、深究构造函数 三、类型转换 四、static修饰成员 1. static修饰成员变…

监控系列之-prometheus部署说明

一、Prometheus介绍 Prometheus是一款开源的监控系统&#xff0c;主要用于收集、存储和查询时间序列数据&#xff0c;以便于对系统进行监控和分析Prometheus的架构由四个主要组件组成&#xff1a; 1、Prometheus Server &#xff1a;Prometheus Server是Prometheus的核心组件&a…

带你0到1之QT编程:十二、视图宝典,点通views的任督二脉

此为QT编程的第十二谈&#xff01;关注我&#xff0c;带你快速学习QT编程的学习路线&#xff01; 每一篇的技术点都是很很重要&#xff01;很重要&#xff01;很重要&#xff01;但不冗余&#xff01; 我们通常采取总-分-总和生活化的讲解方式来阐述一个知识点&#xff01; …