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

【LLM之RAG】Adaptive-RAG论文阅读笔记

研究背景

文章介绍了大型语言模型(LLMs)在处理各种复杂查询时的挑战,特别是在不同复杂性的查询处理上可能导致不必要的计算开销或处理不足的问题。为了解决这一问题,文章提出了一种自适应的查询处理框架,动态选择最合适的策略,从而提高整体效率和准确性 。

研究目标

目标是开发一种自适应框架,该框架能够根据查询的复杂性动态选择最适合的检索增强语言模型策略,从简单到复杂的策略不等。

相关工作

开放域问答:这类任务通常涉及两个模块:检索器和阅读器。随着具有千亿参数的超强推理能力的LLM的出现,LLM和检索器之间的协同作用已经取得了显著进展。然而,尽管在单跳检索增强LLM方面取得了进展,但某些查询的复杂性需要更复杂的策略。
多跳问答:多跳问答(Multi-hop QA)是常规开放域问答(Open-domain QA)的扩展,需要系统全面收集和将多个文档的信息作为上下文回答更复杂的查询。首先将多跳查询分解为更简单的单跳查询,重复访问LLM和检索器来解决这些子查询,并合并它们的答案以形成完整答案。这种查询的缺点是:每个查询迭代访问LLM和检索器可能效率极低,因为有些查询可能足够简单,可以通过单一检索步骤甚至仅通过LLM本身来回答。
自适应检索:为了处理不同复杂性的查询,自适应检索策略根据每个查询的复杂性动态决定是否检索文档。根据实体的频率来确定查询的复杂性级别,并建议仅当频率低于一定阈值时才使用检索模块。然而,这种方法仅关注于检索与否的二元决策,可能不足以解决需要多个推理步骤的更复杂的查询。

方法论

数据处理

定义复杂性标签:首先,需要定义问题的复杂性等级。在Adaptive-RAG中,通常有三个类别:简单(A)、中等(B)和复杂(C)。简单问题可以直接由LLM回答,中等复杂度问题需要单步检索,而复杂问题则需要多步检索和推理。
自动收集训练数据:由于没有现成的带有复杂性标签的查询数据集,Adaptive-RAG通过两种策略自动构建训练数据集:

  • 从不同Retrieval-Augmented LLM策略的预测结果中标注查询的复杂性。
    如果非检索方法能够正确生成答案,则对应问题的标签为简单(A);
    如果单步检索方法和多步检索方法都能正确回答,而非检索方法失败,则对应问题的标签为中等(B);
    如果只有多步检索方法能够正确回答,则对应问题的标签为复杂(C)。
  • 利用基准数据集中的固有偏差来标注未标记的查询。
    例如,如果一个查询在单步数据集中未被标记,则自动分配标签为中等(B);
    如果在多步数据集中未被标记,则自动分配标签为复杂(C)。

解决方案

Adaptive Retrieval-Augmented Generation (Adaptive-RAG) 是一种新颖的问答框架,它能够根据问题的复杂性动态选择最适合的策略来处理Retrieval-Augmented LLM。这三种策略包括:

  • 非检索方法(No Retrieval):这是最简单的策略,直接使用LLM本身的知识库来生成答案。这种方法适用于那些模型已经知道答案的简单问题,不需要额外的外部信息。
  • 单步检索方法(Single-step Approach):当问题需要额外的信息时,这种方法会先从外部知识源检索相关信息,然后将检索到的文档作为上下文信息输入到LLM中,帮助模型生成更准确的答案。这种方法适用于需要一次额外信息检索的中等复杂度问题。
  • 多步检索方法(Multi-step Approach):对于最复杂的问题,需要从多个文档中综合信息并进行多步推理。这种方法通过迭代地访问检索器和LLM,逐步构建起解决问题所需的信息链。这种方法适用于需要多步逻辑推理的复杂问题。
    Adaptive-RAG的核心在于它能够通过分类器来评估问题的复杂性,然后根据评估结果选择最合适的处理策略。分类器是一个较小的语言模型,它被训练用来预测query的复杂度。通过这种方式,Adaptive-RAG能够灵活地在不同的Retrieval-Augmented LLM策略之间进行切换,从而在处理各种复杂性的问题时,实现更高的效率和准确性。

实验

实验设计

研究中使用的数据集包括单跳和多跳问题,涵盖了从简单到复杂的查询。数据来源于开放域问答数据集,这些数据集经常用于评估问答系统的性能。

  • SQuAD v1.1 (Rajpurkar et al., 2016):通过阅读文档撰写问题的方式创建。
  • Natural Questions (Kwiatkowski et al., 2019):基于Google搜索的真实用户查询构建。
  • TriviaQA (Joshi et al., 2017):由各种小测验网站提供的琐碎问题组成。
  • MuSiQue (Trivedi et al., 2022a):通过组合多个单跳问题形成涉及2-4个跳转的查询。
  • HotpotQA (Yang et al., 2018):通过链接多个维基百科文章由注释者创建的问题。
  • 2WikiMultiHopQA (Ho et al., 2020):源自维基百科及其相关知识图谱路径,需要2跳处理。

评估指标包括有效性和效率两大类:

  • 有效性:使用F1得分、EM(精确匹配)和准确率(Accuracy, Acc)来评估模型预测的答案与真实答案之间的匹配程度。
  • 效率:测量回答每个查询所需的检索和生成步骤数以及与单步策略相比的平均响应时间。

实验结论

实验结果显示,Adaptive-RAG在处理复杂查询时,比传统的检索增强方法更有效,尤其是在资源利用效率上。例如,在使用不同大小模型(如GPT-3.5和FLAN-T5系列)进行测试时,Adaptive-RAG在处理多步查询的场景中,表现出更高的准确率和效率 。
在这里插入图片描述

参考资料

  • 论文
  • 代码

相关文章:

【LLM之RAG】Adaptive-RAG论文阅读笔记

研究背景 文章介绍了大型语言模型(LLMs)在处理各种复杂查询时的挑战,特别是在不同复杂性的查询处理上可能导致不必要的计算开销或处理不足的问题。为了解决这一问题,文章提出了一种自适应的查询处理框架,动态选择最合…...

介绍react

什么是React React是一个用于构建用户界面的JavaScript库。 传统构建页面的方式 <script>document.getElementById(app).addEventListener(click, () > {console.log()});const div docuemnt.createElement(div)// ... </script> 早期&#xff0c;用JavaSc…...

网络爬虫概述

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 网络爬虫&#xff08;又被称为网络蜘蛛、网络机器人&#xff0c;在某社区中经常被称为网页追逐者&#xff09;&#xff0c;可以按照指定的规则&#…...

取证工作: SysTools SQL Log Analyzer, 完整的 SQL Server 日志取证分析

天津鸿萌科贸发展有限公司是 Systools 系列软件的授权代理商。 SysTools SQL Log Analyzer 是 Systools 取证工具系列之一&#xff0c;用于调查 SQL Server 事务日志&#xff0c;以对数据库篡改进行取证分析。 什么是 SQL Server 事务日志&#xff1f; 在深入研究 SQL 事务日…...

蓝牙耳机怎么连接电脑?轻松实现无线连接

蓝牙耳机已经成为许多人生活中不可或缺的一部分&#xff0c;不仅可以方便地连接手机&#xff0c;还能轻松连接电脑&#xff0c;让我们在工作和娱乐时享受无线的自由。然而&#xff0c;对于一些用户来说&#xff0c;将蓝牙耳机与电脑连接可能会遇到一些问题。本文将介绍蓝牙耳机…...

4.音视频 AAC SSAASS

目录 AAC 1.什么是ADIF和ADTS&#xff1f; 2.ADTS的数据结构是怎样的&#xff1f; SSA/ASS 1.SSA/ASS的基本结构 AAC AAC(Advanced Audio Coding&#xff0c;高级音频编码)是一种声音数据的文件压缩格式。AAC分为ADIF和ADTS两种文件格式。 1.什么是ADIF和ADTS&#xff…...

每日5题Day24 - LeetCode 116 - 120

每一步向前都是向自己的梦想更近一步&#xff0c;坚持不懈&#xff0c;勇往直前&#xff01; 第一题&#xff1a;116. 填充每个节点的下一个右侧节点指针 - 力扣&#xff08;LeetCode&#xff09; /* // Definition for a Node. class Node {public int val;public Node left;…...

在笔记本电脑上使用 LLMs 的 5 种方法

在网上使用 ChatGPT 很简单&#xff0c;只需有网络连接和好的浏览器即可。但这样做可能会泄露您的隐私和数据。OpenAI 存储了您的提示和其他元数据以重新训练模型。对于一些人来说可能不成问题&#xff0c;但注重隐私的人可能更愿意在本地使用这些模型&#xff0c;不受外部跟踪…...

Linux内存从0到1学习笔记(8.15 MMU/IOMMU/SMMU概览)

一, 什么是MMU? MMU(Memory Management Unit 内存管理单元),即内存管理单元,是计算机硬件中的一个重要组件,主要负责处理中央处理器(CPU)的内存访问请求。 其工作原理如下: 当程序发出内存访问请求,包括读取或写入操作以及逻辑地址(虚拟地址)。然后,MMU根据页表…...

Intellij IDEA中怎么配置Maven?

在IntelliJ IDEA中配置Maven非常简单&#xff0c;以下是详细步骤&#xff1a; 步骤1&#xff1a;安装Maven 首先确保你的计算机上已经安装了Maven。如果没有安装&#xff0c;你可以从Apache Maven官网下载并安装&#xff1a;https://maven.apache.org/download.cgi 步骤2&am…...

操作系统-内存管理

虚拟内存 操作系统会提供⼀种机制&#xff0c;将不同进程的虚拟地址和不同内存的物理地址映射起来。 两个概念&#xff1a; 程序所使⽤的内存地址叫做虚拟内存地址&#xff08;Virtual Memory Address&#xff09;实际存在硬件⾥⾯的空间地址叫物理内存地址&#xff08;Physi…...

C++中的解释器模式

目录 解释器模式&#xff08;Interpreter Pattern&#xff09; 实际应用 算术表达式解释器 布尔表达式解释器 总结 解释器模式&#xff08;Interpreter Pattern&#xff09; 解释器模式是一种行为设计模式&#xff0c;它定义了一种语言的文法表示&#xff0c;并使用解释器…...

用 C 语言实现求补码的运算

缘起 前两天程序中需要求一堆参数的补码&#xff0c;一时犯懒&#xff0c;想从CSDN上搜一个勉强能用的代码借鉴一下&#xff0c;结果几乎没有搜到一个靠谱的&#xff01;这种求补码的操作&#xff0c;用脚趾头想想也应该知道要用C或者C的位运算来实现呀。结果搜到的一些实现方…...

python下载文件

import urllib.request url "http://****/storage/x4MigEhU6BGAuTqjrRfIBky0S2aMmkyGl4UzTqUb.png"#下载地址 path "ddad.png"#保存路径&#xff0c;保存项目路径 urllib.request.urlretrieve(url, path)...

JMU 数科 数据库与数据仓库期末总结(1)

本章根据老师给出的知识点作进一步相对生动一点的解释。 不保证完全正确。 先给出总的知识点&#xff0c;再给出生动解释。 知识点 数据模型通常由三部分组成&#xff1a;数据结构、数据操作和完整性约束。关系模式中主码的取值必须唯一且非空&#xff0c;这是实体完整性的…...

前端问题整理

Vue vue mvvm&#xff08;Model-View-ViewModel&#xff09;架构模式原理 Model 是数据层&#xff0c;即 vue 实例中的数据View 是视图层&#xff0c; 即 domViewModel&#xff0c;即连接Model和Vue的中间层&#xff0c;Vue实例就是ViewModelViewModel 负责将 Model 的变化反映…...

【实践功能记录6】表格列悬浮展示tooltip信息

需求描述&#xff1a; 鼠标悬浮在表格的IP字段上时&#xff0c;使用tooltip展示IP信息&#xff0c;如图&#xff1a; 1.封装根据IP展示信息的组件 请求接口获取IP信息&#xff0c;注意请求接口时防抖 <!-- 根据IP展示资产信息 --> <template><div><el-…...

AI论文速读 | 2024[SIGIR]基于大语言模型的下一个兴趣点推荐

论文标题&#xff1a;Large Language Models for Next Point-of-Interest Recommendation 作者&#xff1a;Peibo Li ; Maarten de Rijke ; Hao Xue &#xff08;薛昊&#xff09;; Shuang Ao ; Yang Song ; Flora D. Salim 机构&#xff1a;新南威尔士大学(UNSW)&#xff0c…...

Rust 实战丨通过实现 json! 掌握声明宏

在 Rust 编程语言中&#xff0c;宏是一种强大的工具&#xff0c;可以用于在编译时生成代码。json! 是一个在 Rust 中广泛使用的宏&#xff0c;它允许我们在 Rust 代码中方便地创建 JSON 数据。 声明宏&#xff08;declarative macros&#xff09;是 Rust 中的一种宏&#xff0…...

vue+elementUI实现在表格中添加输入框并校验的功能

背景&#xff1a; vue2elmui 需求&#xff1a; 需要在一个table中添加若干个输入框&#xff0c;并且在提交时需要添加校验 思路&#xff1a; 当需要校验的时候可以考虑添加form表单来触发校验&#xff0c;因此需要在table外面套一层form表单&#xff0c;表单的属性就是ref…...

镜头背后的AI魔法:Qwen-Edit多角度编辑技术的深度探索

镜头背后的AI魔法&#xff1a;Qwen-Edit多角度编辑技术的深度探索 【免费下载链接】Qwen-Edit-2509-Multiple-angles 项目地址: https://ai.gitcode.com/hf_mirrors/dx8152/Qwen-Edit-2509-Multiple-angles 问题溯源&#xff1a;当静态图像遇见动态视角需求 在博物馆的…...

5个关键步骤:OpenCore Legacy Patcher让老旧Mac焕发新生

5个关键步骤&#xff1a;OpenCore Legacy Patcher让老旧Mac焕发新生 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher OpenCore Legacy Patcher是一款基于Pytho…...

自指宇宙学形式化验证套件 (Coq‑SRU v1.2.0)

自指宇宙学形式化验证套件 (Coq‑SRU v1.2.0)技术摘要 正式整编版 项目标识&#xff1a;Coq Formalization of Self‑Referential Universe (Coq‑SRU) 版本&#xff1a;v1.2.0&#xff08;对齐《世毫九自指宇宙学》理论第三部分&#xff09; 代码仓库&#xff1a;https://git…...

Fiji在macOS系统的兼容性解决方案:从启动故障到配置优化的完整指南

Fiji在macOS系统的兼容性解决方案&#xff1a;从启动故障到配置优化的完整指南 【免费下载链接】fiji A "batteries-included" distribution of ImageJ :battery: 项目地址: https://gitcode.com/gh_mirrors/fi/fiji Fiji作为科学图像处理领域广泛使用的"…...

实战应用:基于快马开发企业内软件合规性与安全拦截演示工具

今天想和大家分享一个在企业IT支持场景中非常实用的工具开发经验——基于InsCode(快马)平台开发的软件合规性检查演示工具。这个工具特别适合用来做内部培训或用户教育&#xff0c;帮助大家理解系统弹出的"智能应用控制已阻止可能不安全的应用"这类安全警告背后的逻辑…...

C++的std--ranges适配器视图元素类型系统与概念约束在模板

C20引入的std::ranges库彻底改变了传统迭代器模式&#xff0c;其适配器视图与概念约束系统为模板元编程带来了革命性提升。本文将深入剖析这一机制如何通过编译期类型推导与约束检查&#xff0c;实现更安全、更高效的泛型编程范式。 视图元素类型推导机制 std::ranges视图通过…...

8款实用AI论文生成工具(包括爱毕业aibiye)及新手详细指南

在学术研究领域&#xff0c;AI技术的应用显著提升了论文写作的效率与质量。以下推荐8款功能强大的智能工具&#xff0c;涵盖文献解析、内容生成、文本优化等关键环节&#xff0c;助力研究者高效完成从资料收集到论文润色的全流程工作。这些创新解决方案能够有效简化研究过程&am…...

HunyuanVideo-Foley高算力适配:RTX4090D显存利用率优化至92%实测

HunyuanVideo-Foley高算力适配&#xff1a;RTX4090D显存利用率优化至92%实测 1. 镜像概述与核心优势 HunyuanVideo-Foley私有部署镜像专为视频与音效生成任务深度优化&#xff0c;基于RTX 4090D 24GB显存硬件平台打造。经过CUDA 12.4与驱动550.90.07的针对性调优&#xff0c;…...

UE5.0.3打包Linux报错?手把手教你搞定BlueprintJson插件缺失问题

UE5.0.3 Linux打包报错终极指南&#xff1a;BlueprintJson插件问题的深度解析与实战修复 当你满怀期待地在UE5.0.3中点击"打包Linux"按钮&#xff0c;却看到屏幕上弹出关于BlueprintJson插件的红色错误信息时&#xff0c;那种挫败感我深有体会。作为一名经历过无数次…...

浦语灵笔2.5-7B精彩案例分享:手写体题目识别+解题逻辑生成全过程

浦语灵笔2.5-7B精彩案例分享&#xff1a;手写体题目识别解题逻辑生成全过程 1. 引言&#xff1a;当AI“看懂”你的手写作业 想象一下这个场景&#xff1a;你正在辅导孩子做数学作业&#xff0c;他遇到一道难题&#xff0c;不仅把题目抄了下来&#xff0c;还在旁边画了辅助线、…...