训练大模型自动在RAG和记忆间选择
现如今,检索增强生成(Retrieval-augmented generation,RAG)管道已经能够使得大语言模型(Large Language Models,LLM)在其响应环节中,充分利用外部的信息源了。不过,由于RAG应用会针对发送给LLM的每个请求,都去检索外部信息,而LLM实际上已经包含了大量无需检索即可使用的知识,因此整个过程反而显得效率低下。
那么,我们是否可以通过配置LLM,使其只在内部知识不足的情况下,才去使用RAG呢?目前,博尔扎诺大学(University of Bozen-Bolzano)和布鲁诺-凯斯勒基金会(Fondazione Bruno Kessler)的研发人员开发的一项“自适应LLM(Adapt-LLM,https://arxiv.org/abs/2404.19705)”技术,可以训练LLM动态地确定它们是否需要在问题解答任务中,检索额外的上下文信息,并避免不必要的外部检索,来提高LLM应用的效率。
记忆与检索
通常,LLM回答问题的方法主要有两种。这两种方法好比闭卷答题与开卷答题:
第一种是依靠在训练过程中获得的参数记忆。而这些参数记忆的局限性在于它需要完全基本语料的训练。你可以通过微调或少量提示技术,来提高参数记忆的性能,从而将模型的注意力集中在相关参数上。不过,在模型必须动态使用新的信息(例如:近期的新闻或是未包含在训练语料库中的私人信息)的情况下,这种方法并不实用。
第二种是使用信息检索器为模型提供上下文信息。而检索增强生成就属于这种方法。不过,信息检索的问题在于,有时模型并不需要额外的上下文信息,其内部知识足以回答问题。
而作为人类的我们,使用的却是混合方法。例如,当我们对某个问题的答案了如指掌时,我们便可立即作答。但当我们对自己的知识没有信心时,就会去查找外部来源。目前,一些LLM技术通过“常见度评分”机制,来使用此类混合方法。其假设前提是:当问题十分常见时,模型就会利用内部记忆知识进行回答;而对于不太常见的问题,模型则需要RAG系统的帮助来获取必要的信息。不过,这种方法往往要求问题附有常见程度的评分,而这并非总能够获取到的。
Adapt-LLM
Adapt-LLM框架
顾名思义,Adapt-LLM为了实现“自适应检索”而训练语言模型,使其能够自主地决定何时该使用信息检索系统,来获取更多的上下文信息。其研发人员指出:“在这种方法中,如果任务的解决方案已被编码在模型的参数中,它将直接使用由模型生成的解决方案。反之,如果答案没有被编码在模型的知识域里,那么就需要借助外部知识来生成答案。”
就工作流程而言,Adapt-LLM可分为四个步骤:
- 首个包含了问题的提示被发送给Adapt-LLM模型处。
- 该模型会对提示进行评估,以确定是否需要额外的语境,来有效地回答问题。
- 如果模型认为不需要额外的上下文,它就会直接根据参数存储做出响应。
- 如果Adapt-LLM模型需要额外的上下文,它会返回一个类似的特殊token。然后,应用程序可以使用信息检索器,根据问题获取上下文,并将其与原始提示结合起来。
可见,这种灵活的方法使得模型能够在利用外部环境和提供直接答案之间取得平衡。
训练Adapt-LLM
为了训练 Adapt-LLM模型,我们首先需要一个包含了问题、上下文和答案的元组(tuples)数据集。然后,针对每个元组,为模型提供并不包含上下文的问题,并指示它在对自己的知识“有信心”时直接回答,而在需要额外上下文时返回 。
如果模型返回了正确的答案,则表明它已掌握了参数知识,并创建了一个包含问题和答案(但不包含上下文)的新的训练实例。如果模型返回错误的答案,则需要创建两个训练实例:一个是包含了问题和 答案的“参数提示”,另一个是包含了问题、上下文、说明和答案的“上下文提示”。
然后,在包含了这两种类型示例的数据集上,研发人员对基础模型进行训练,从而形成Adapt-LLM的行为。
Adapt-LLM的测试结果
研发人员在PopQA(https://huggingface.co/datasets/akariasai/PopQA)上对Adapt-LLM进行了多次测试。此处的PopQA是一个从各种在线平台上收集问题的数据集。他们使用 Llama-2 7B 作为基础的LLM,并在由 NQ 和 SQuAD 问答数据集所创建的Adapt-LLM数据集上,对其进行了训练。测试完毕后,他们将Adapt-LLM模型与完全不检索模型、以及始终检索模型进行了比较。
研究结果表明,Adapt-LLM的表现比只依赖参数记忆的永不检索模型要好得多。同时,与始终检索模型相比,它也能够减少检索的使用量,同时当其参数记忆优于RAG系统返回的信息时,还能够提高整体性能。
据此,研发人员认为“当Adapt-LLM决定去检索额外的信息时,其有上下文的结果明显优于没有上下文的结果。同样,当Adapt-LLM依靠其参数记忆直接回答问题时,也能提供较高的准确率。”研发人员补充道:“这些测试结果足以表明,该模型能够有效地分辨出何时检索信息,以及何时可以在没有进一步语境的情况下回答问题。”
利与弊
遗憾的是,研发人员并没有公布 Adapt-LLM的代码和模型,因此我们很难去验证他们的实验结果。然而,由于这是一项非常实用的技术,他们应该公布关于token的使用、及其推理时间等研究结果。幸运的是,该算法实现起来比较容易,任何人都可以创建自己的 Adapt-LLM版本,进而去验证它在各个领域数据集上的表现。
相关文章:
训练大模型自动在RAG和记忆间选择
现如今,检索增强生成(Retrieval-augmented generation,RAG)管道已经能够使得大语言模型(Large Language Models,LLM)在其响应环节中,充分利用外部的信息源了。不过,由于RAG应用会针对发送给LLM的每个请求,都…...
抖店没人做了?不是项目不行了,而是商家们都换思路去玩了
我是王路飞。 有没有发现现在很多抖店新手都在吐槽,抖店不好做了,做不起来,没人做了,太内卷了...... 对这种做不起来还在怪项目本身的,一定要离他远一点,省得被他的负能量给影响到自己的状态。 任何项目…...
Qt5.15.2+VS2019新加类出现无法解析的外部符号
Qt5.15.2VS2019新加类出现无法解析的外部符号: 原因:没有生成对应的moc文件,导致没生成对应的元对象。 解决方案:记事本打开工程vcxproj,把报错的文件ClInclude,改为QtMoc,解决问题 未修改前&…...
启动mysql 3.5时出现 MySql 服务正在启动 . MySql 服务无法启动。
有可能是端口冲突 netstat -ano | findstr :3306运行这段代码出现类似: 可以看到端口 3306 已经被进程 ID 为 6284 的进程占用。为了启动新的 MySQL 服务,我们需要停止这个进程或更改新服务的端口: 1、终止进程 taskkill /PID 6284 /F2、确…...
并发编程理论基础——可见性、原子性和有序性问题(一)
核心问题:分工,同步,互斥 分工:如何高效地拆解任务并分配给线程 生产者-消费者模式、Thread-Per-Message模式、Worker-Thread模式、ComplateableFuture和CompletionServiceJava SDK 并发包里的 Executor、Fork/Join、Future 本质上…...
心理咨询系统源码|心理咨询系统开发|心理咨询系统
心理咨询系统,作为一种集现代化科技与专业心理服务于一体的工具,正逐渐渗透到我们生活的各个角落。它不仅为个人提供了便捷的心理支持,还为企业和组织带来了全新的管理方式。下面,我们将深入探讨心理咨询系统的可应用范围及其带来…...
Vue21-列表排序
一、需求 二、解决方式 <body><div id"root"><h2>人员列表</h2><input type"text" placeholder"请输入" v-model"keyword"><button click"sortType 1">年龄升序</button><b…...
配置 JDK 和 Android SDK
目录 一、配置JDK 1. 安装 JDK 2. JDK 环境配置 3. JDK的配置验证 二、配置 adb 和Android SDK环境 1、下载 2、配置 Android SDK 环境 一、配置JDK 1. 安装 JDK 安装链接:Java Downloads | Oracle 我安装的是 .zip ,直接在指定的文件夹下解压就…...
pyechart 创建柱形图
Pyecharts 是一个基于 Python 的开源数据可视化库,用于创建各种交互式的图表和可视化效果。它是在 Echarts 的基础上进行封装和优化,Echarts 是一个流行的 JavaScript 数据可视化库pyecharts 中文网站 : https://pyecharts.org/# pyecharts 模块 还支持…...
c#引用dll报错cs8370功能“本地函数特性“在c#7.3中不可用
cs8370:功能"本地函数特性"在c#7.3中不可用 解决方法: 代码放在form类里面...
【STM32】输入捕获应用-测量脉宽或者频率(方法1)
图1 脉宽/频率测量示意图 1 测量频率 当捕获通道TIx 上出现上升沿时,发生第一次捕获,计数器CNT 的值会被锁存到捕获寄存器CCR中,而且还会进入捕获中断,在中断服务程序中记录一次捕获(可以用一个标志变量来记录&#…...
C# Task
以下是 Task 类的一些关键特性和用法:以下是一些使用 Task 的示例:创建并启动一个任务使用 await 等待任务完成处理任务异常使用 Task<TResult> 获取结果取消任务 总结 在 C#中, Task 是 System.Threading.Tasks 命名空间中的一个类…...
进口电动蝶阀的工作原理-美国品牌
进口电动蝶阀通过电力驱动,实现阀门的开启、关闭和流量调节功能。其结构简单、操作方便、精确控制的特点使其在多个领域得到广泛应用。 进口电动蝶阀的工作原理可以清晰地分点表示和归纳如下: 一、概述 进口电动蝶阀是由电动执行器和蝶形阀组成的一种…...
Exploring Performance and Cost Optimization with ASIC-Based CXL Memory——论文阅读
EuroSys 2024 Paper CXL论文阅读笔记整理 问题 随着内存密集型应用程序对内存需求的增加,受限于物理限制,如DDR DIMM插槽的可用性和发热问题,以及使用高密度DIMM的成本考虑,现代应用程序的内存需求很容易超过单机的内存容量[2&a…...
计算机网络(4) 最长前缀匹配(路由转发表)
一.路由转发 网络数据包IP段只包含源地址与目的地址,经过数据链路层包装与物理层信号形式转换,最终经由不同的链路节点到达目的地址。这个过程是一步一步(hop by hop)进行的,路过一个路由节点则称为一跳。每个路由节点…...
向https地址发送请求失败报错
错误1: 10:13:47.520 [main] DEBUG org.apache.http.conn.ssl.SSLConnectionSocketFactory - Starting handshake 10:13:47.523 [main] DEBUG org.apache.http.impl.conn.DefaultManagedHttpClientConnection - http-outgoing-0: Shutdown connection 10:13:47.523…...
生信技能47 - Shell程序和R程序并行执行处理方法
Linux shell和R程序并行化执行程序方法。 1. 使用do{…} &;done;wait语句并行执行Shell 并行执行总运行时间不再是task数量*单个任务消耗时间,而是取决于单个耗时最长的任务。 # while循环,遍历test.txt文件每行 cat test.txt|while read i; dotime_stamp=$(date &quo…...
java+SimpleRegression 线性模型,针对采集到的大数据设备温度,对设备温度做出预测
首先,让我们通过以下表格展示预测模型开发 Java 的整体流程: 步骤 描述 1 数据收集与清洗 2 特征工程处理 3 模型选择与训练 4 模型评估与调优 5 模型应用与部署 然后引入java的类库 org.apache.commons.math3 math使用原则 math3可谓是轻量级自容器…...
面对失业,不得不做出改变了
有没有发现最近挣钱很难,生活压力很大 大批企业纷纷裁员,大量的就业岗位被机器人机械臂取代 很多的传统职业也将被AI替代, 比如工厂螺丝钉、司机、客服、甚至程序员、医生、等等 众多大厂开发无人驾驶出租车,让本来处在底层的网约车司机无…...
MT2093 活动安排
贪心策略: 每次选择结束时间最早的活动 代码: #include <bits/stdc.h> using namespace std; const int N 5e5 10; int n; struct pp {int a, b; } p[N]; bool cmp(pp x, pp y) {return x.b < y.b; } int ans 0;int main() {cin >>…...
动态javaweb 建立-准备阶段
一、实验内容: 1.定义一个inputjsp页面接收数据输入的长和宽。 2.创建一个javaBean,包含长、宽和面积三个成员变量,分别有对应的get方法和set方法。 3.定义一个业务模型calculate.java,用来计算矩形的面积。 4.定义一个…...
web前端网页设计参考:深度剖析与设计思路探索
web前端网页设计参考:深度剖析与设计思路探索 在Web前端开发领域,网页设计占据着举足轻重的地位。一个优秀的网页设计不仅能提升用户体验,还能有效传达品牌价值和信息。本文将从四个方面、五个方面、六个方面和七个方面,深入剖析…...
node使用http-proxy-middleware做代理,解决跨域问题
const express require(express) const history require(connect-history-api-fallback) const { createProxyMiddleware } require(http-proxy-middleware)let app express()app.use(history())// //匹配api开头的请求,实际转发的请求保api这三个字母 // app.u…...
爱奇艺视频怎么转换成mp4格式,爱奇艺qsv转换mp4最简单方法
在数字化时代,视频格式的转换成为了我们日常生活中常见的需求。特别是对于那些经常从各大视频平台下载视频的朋友来说,将特定格式的视频转换为更通用的格式,如MP4,变得尤为重要。其中,qsv格式的视频转换就是一项常见的…...
HandyControl的属性编辑器如何绑定自定义控件,并集成到自定义编辑器
第一步:自定义控件的TypeDescription描述。 为了扩展.NET的类型描述系统(Type Descriptor System),在运行时动态地更改对象的属性,使得这些属性在PropertyGrid上下文中不会被显示。 1.CLTypeDescriptionProvider:这是一个TypeDesc…...
【Python】使用 Python 检测图像中(色差对比度较大)的水印
我已经从你的 全世界路过 像一颗流星 划过命运 的天空 很多话忍住了 不能说出口 珍藏在 我的心中 只留下一些回忆 🎵 牛奶咖啡《从你的全世界路过》 前言 在图像处理领域中,检测图像中的水印是一项重要任务。水印通常用于保护图像…...
最短路:Bellman-Ford
最短路:Bellman-Ford 题目描述参考代码 题目描述 输入样例 3 3 1 1 2 1 2 3 1 1 3 3输出样例 3参考代码 #include <iostream> #include <cstring> #include <algorithm>using namespace std;const int N 510, M 10010;int n, m, k; int dist…...
深度学习的分类网络
深度学习的分类网络 深度学习的分类网络(Classification Networks)是用于将输入数据分配到预定义类别的神经网络。它们广泛应用于图像分类、文本分类、语音识别等任务。以下是对深度学习分类网络的详细介绍,包括其基本概念、主要架构、常见模…...
Si24R05—高度集成的低功耗 2.4G+125K SoC 芯片
Si24R05是一款高度集成的低功耗SoC芯片,具有低功耗、Low Pin Count、宽电压工作范围,集成了13/14/15/16位精度的ADC、LVD、UART、SPI、I2C、TIMER、WUP、IWDG、RTC、无线收发器、3D低频唤醒接收器等丰富的外设。内核采用RISC-V RV32IMAC(2.6 …...
layuimini框架实现点击菜单栏回到起始页
在layui页面中,如果使用了 window.location.href""进行了页面跳转,再点击菜单栏是不会显示起始页,而是跳转后的页面, 解决: 在miniTab.js文件中找到:listen方法 将其中修改为: if …...
如何查到网站是谁做的/无锡seo公司
输入描写叙述: 输入包括多组数据,每组数据包括两行。 第一行为正整数n(3≤n≤50)。紧接着第二行包括n个由数值和运算符组成的列表。 “-*/”分别为加减乘除四则运算。当中除法为整除。即“5/31”。 输出描写叙述: 相应每一组数据,…...
东莞网站建设推广公司/优秀软文案例
mac下所有vim的配色方案的样式。 下面讲解如何设置这些好看的配色 首先:在终端输入 vim ~/.bash_profile 查看是否有上面提到的某些配色,所有配色均是以.vim结束的,果有的话,再输入: $ cd ~/ 到用户主目录,…...
龙岗区最新通告/提高seo关键词排名
goldengate for sqlserver 日志暴涨的解决办法 gg for sqlserver 2008 R2 开启后,sqlserver的日志会出现暴涨的情况,解决办法如下: 1.先确认是否数据库设置问题导致 如: 1)查看ggerror中,是否有报错! 2)…...
修改wordpress上传图片路径/郑州seo技术服务
当进行Debug的时候,经常会遇到"SY-SUBRC"的返回值。具体如何使用。在各种语句下返回值。 FUNCTION MODULE (或RFC中) SY-SUBRC 的含义 使用SELECT语句选择查询:SY-SUBRC 0: 至少有一行数据,当ENDSELECT语句执行完,SY-…...
富阳网站/泉州百度seo
闭包的意义:返回的函数对象,不仅仅是一个函数对象,在该函数外还包裹了一层作用域,这使得,该函数无论在何处调用,优先使用自己外层包裹的作用域 说明: 关于闭包,即函数定义和函数表达…...
wordpress 小说多站/网站seo优化排名
HTML5是目前HTML的最新标准。在笔者写这篇文章时,HTML5仍在积极的发展。HTML5除了提供新的标签信息外,同时还包含了新的应用程序编程接口(API),这样可以使我们能够在网页上提供更多丰富的多媒体和互动功能,而无需使用专有的插件。…...