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

r-and-r——提高长文本质量保证任务的准确性重新提示和上下文搜索的新方法可减轻大规模语言模型中的迷失在中间现象

概述

随着大规模语言模型的兴起,自然语言处理领域取得了重大发展。这些创新的模型允许用户通过输入简单的 "提示 "文本来执行各种任务。然而,众所周知,在问题解答(QA)任务中,用户在处理长文本时会面临信息 "丢失 "的问题。

最近,支持超长语境的大规模语言模型已经发布,如 GPT-4 Turbo 和 Claude-2.1,它们分别支持 128k 和 200k 标记的语境窗口。虽然这些大规模语言模型支持长上下文,但当输入提示非常长时,它们的响应质量往往会下降;Liu 等人(2023 年)发现,即使是 16k 标记上下文,如果相关上下文位于文档的中间,也会出现问题。Liu 等人(2023 年)发现,在基于文档的大型语言模型质量保证中,如果相关上下文位于文档中间,即使是 16k 标记上下文,准确率也会明显低于开始和结尾。这种现象被称为"迷失在中间"。

为了解决这个问题,本文提出了一种新的方法–R&R,它结合了 "重新提示 "和 “上下文检索”。这种方法允许在整个文档中重复问题指示,从而有效地提取最相关的信息。其目的是提高 QA 的准确性,以及大型语言模型在长语境中的性能。

论文详细介绍了这一创新方法的工作原理,并提出了在长时间的质量保证任务中减少 "中间丢失 "效应的有效策略。通过实验,论文还展示了 "重新提示 "和 "上下文检索 "在使用大规模语言模型方面的新潜力。这些方法在处理长句时提高了准确性和效率,从而有可能扩大 NLP 技术的应用范围。

技术

本文重点介绍了基于文档的问题解答(QA)任务,并提出了一种使用大规模语言模型的创新方法。

这种方法要求大规模语言模型根据给定文档的上下文回答问题。为此,提示被分为三个部分,以明确说明。首先标记问题及其答案说明,然后标记文档本身。

最后,在大规模语言模型生成答案之前,再次重复指令。这种重复是基于以前的方法,目的是在不丢失文档信息的情况下有效地引导回答。

它还假定文档被分为 “页”。这些页面与文档中的自然分隔符(如段落和句子)相对应,为标准化起见称为页面。<PAGE {p}> . . . </PAGE {p}> 标记,其中 {p} 由相应的页码代替。这种方法允许大规模语言模型更有效地处理整个文档,并精确提取与问题相关的信息。

此外,还引入了一种名为"重新提示"的技术。这种技术旨在减少 "迷失在中间 "现象,即大型语言模型偏向于文档的开头或结尾,或靠近关键指令。在重新提示中,<INSTRUCTIONS_REMINDER> 你的任务是. . . </INSTRUCTIONS_REMINDER> 时,会在 PAGE 块外为文档中的每个指定标记插入一个提醒块,其中包含几乎是逐字记录的原始指令。这有望缩短文档中任何地方的相关信息与说明之间的距离,并提高大规模语言模型中应答的准确性。

此外,还引入了"上下文检索"和分块技术。上下文检索"基于这样一种理念,即从文件中提取与问题相关的信息通常比直接回答问题要简单。这是因为在信息提取过程中,可重复性比准确性更重要。这一过程分两个阶段进行,首先确定与问题最相关的页面,然后使用仅包含这些页面的缩写文档来回答问题。这种方法旨在让大规模语言模型高效处理信息。它还结合了"重新提示"和"上下文检索",以确保在提取文档中间的重要信息时不会遗漏任何内容。具体来说,通过在整个文档中提醒搜索指令,大规模语言模型有助于找到埋藏在中间的相关页面。

分块技术还能将文档划分为非重叠、连续的块,并独立执行"上下文内检索"。这样就能有效地提取最相关的信息,在保持准确性的同时减少 LLM 调用的次数。如果信息块足够大,还可以在信息块内执行"重新提示",从而进一步优化准确性和效率之间的平衡。这样就有可能为更复杂的文档提供更高的性能。

实验和结果

本文研究了 "R&R "在基于文档的问题解答(QA)任务中的有效性。下表总结了每个数据集和长文本方法(不包括分块法)在不同文档长度(d)下获得的模糊匹配分数。往往会提高准确率。

重新提示的额外成本极低,在 d=80k 时比基线多消耗约 1.15%的输入令牌,但在输出令牌方面没有额外成本;R&R 同样在 d=80k 时比基线多消耗约 1.15%的输入令牌,但平均每个样本需要 83 个输出令牌,平均每个样本需要 83 个输出令牌。它需要在 ICR 步骤中额外调用一个大型语言模型,平均每个样本需要 83 个输出词块。与基线和重新提示情况下的 43 个输出词组相比,这个数字偏高。不过,这些结果表明,在基于文档的质量检测中,R&R可以有效扩展大规模语言模型的有效语境范围。

此外,还进行了分块式 ICR 和分块式 R&R(增加了重新提示),以比较较长上下文和重新提示与较短上下文和基于分块的方法的优势。下表显示了每个数据集和每种方法的模糊匹配得分,其中改变了进行 ICR 和 R&R 时的语块大小(c)。

一般来说,对于大多数数据集来说,随着数据块大小的增加,准确率往往会下降,因为额外的填充上下文会降低搜索准确率。不过,有研究表明,重新提示实际上可以使用更大的数据块,随着数据块大小的增加,准确率的损失也会减少。

这对准确性/成本的权衡有重要影响。较小的语块需要更多的 LLM 调用(每个语块一次,聚合后进行 QA)、输入标记和输出标记。特别是,输出标记的成本很高,相当于 GPT-4 Turbo 中输入标记价格的三倍,而且大型语言模型的执行时间会随着输出标记的增加而线性增加。因此,有人建议,重新提示可以通过允许更大的语块来减轻这种权衡,从而减少对大型语言模型的调用和输出令牌的需求,同时将准确性的损失降到最低。此外,虽然重新提示本身需要少量额外的输入标记,但这一成本可被大块输入标记的减少所抵消。

这种上下文内检索(ICR)方法也是基于这样一个假设:从文件中提取最相关的页面比直接回答问题更容易。在前一种情况下,原因是可重复性优先于准确性。我们通过比较直接基于文档的质量保证和 "提取最相关的页面来回答问题 "的任务来验证这一假设。我们将 NQ 排除在实验之外,因为初始页面包含误导性信息;将 HotPotQA 排除在外,因为相关上下文分散在多个页面中。然而,SQuAD 和 PubMed 显示,在文档长度 d = 40k 的示例中,页面提取的准确性明显高于直接回答问题。

关于重试频率,我们验证了每 10k 个标记的选择,并发现这在所有数据集中都能达到最高的 QA 准确率。

关于重新提示的位置,我们测试了这样一个假设:只在紧接着相关上下文之前重新提示可以显著提高准确率。特别是,在文档长度为 d = 40k 的三个数据集中,在标记为包含 "黄金段落 "的 PAGE 块之前插入单个 INSTRUCTIONS_REMINDER 块的方法均匀地优于每 10k 个重复提示的方法。比均匀每 10k 个词组重新提示一次的方法获得了更高的质量保证准确率。这表明,重新提示是通过缩短相关上下文与任务指令之间的距离来发挥作用的。

此外,他们还发现,仅仅暗示原始指令的重复提示比原始提示的效果更差。这表明,重要的是,提示不仅要重复,还要缩短问题与相关语境之间的距离。最后,将提示块放在文档开头的重新提示测试结果明显不如原始重新提示。这些结果表明,重新提示不是简单的重复,而是由于特定的策略性位置而产生了效果。

总结

本文开发了一种基于提示的方法 R&R,以探索在基于文档的问题解答(QA)任务中提高大规模语言模型处理长句性能的潜力。研究发现,这种方法在减少"中间丢失 "方面特别有效。此外,还有人认为,重新提示是通过最小化相关上下文与任务指令之间的距离来发挥作用的。

对于提取类型的质量保证任务而言,分块方法提供了坚实的基础,但也有可能以分块的方式进行重复性和再现性分析。即使在这种情况下,我们也发现重新提示是有益的,通过允许使用较大的分块,减少了对大型语言模型的调用次数,最大限度地减少了标记的使用,同时在平衡准确性和成本时限制了准确性损失的 R&R、在准确性至关重要的实际应用中,分块方法的灵活性和成本节约

未来的研究方向多种多样,前景广阔:将 R&R 与其他基于提示的方法相结合可进一步提高性能。还可以考虑 "上下文分块 "等新方法,以进一步优化准确性/成本的权衡。将重新提示法应用于需要对文档有更全面理解的任务(如摘要制作),也可以开辟新的研究领域。最后,虽然这些只是基于提示的方法,但深入了解这些方法的优势和局限性,可以揭示大规模语言模型在处理较长文本时的行为,并为促进进一步改进的架构变革提供提示。

注:
论文地址:https://arxiv.org/abs/2403.05004
源码地址:https://github.com/casetext/r-and-r

相关文章:

r-and-r——提高长文本质量保证任务的准确性重新提示和上下文搜索的新方法可减轻大规模语言模型中的迷失在中间现象

概述 随着大规模语言模型的兴起&#xff0c;自然语言处理领域取得了重大发展。这些创新的模型允许用户通过输入简单的 "提示 "文本来执行各种任务。然而&#xff0c;众所周知&#xff0c;在问题解答&#xff08;QA&#xff09;任务中&#xff0c;用户在处理长文本时…...

光伏电站的方案PPT总结

现在的市面上每做一个项目&#xff0c;做个项目方案是必不可少的了&#xff0c;光伏电站的项目亦是如此&#xff0c;做一个既美观又有说服力的项目PPT方案就尤为重要&#xff0c;项目PPT方案的全面性&#xff0c;美观度更征服业主&#xff0c;拿下项目&#xff0c;下面我从鹧鸪…...

前端pdf预览方案

前端pdf预览方案 pdf预览一般不需要前端生成pdf文件&#xff0c;pdf文件一般是通过接口&#xff0c;获取pdf文件【responseType:‘blob’,】或二进制文件流【responseType: ‘arraybuffer’,】或者已有的pdf文件。 前端PDF预览通常是通过读取现有的PDF文件&#xff0c;并使用…...

java 深拷贝 浅拷贝 详解

在 Java 中&#xff0c;深拷贝和浅拷贝是对象拷贝&#xff08;复制&#xff09;时的两个重要概念&#xff0c;它们决定了拷贝后的对象与原对象之间的关联性。以下是深拷贝和浅拷贝的详解&#xff0c;包括定义、实现方式及其区别。 1. 概念解释 1.1 浅拷贝&#xff08;Shallow …...

针对git、giteeVSCode连接的使用 || Live Share插件使用

1.下载git 链接 打开终端&#xff0c;桌面鼠标右键 2.配置密钥 登录gitee。 设置密钥 查看官方文档 跟着教程 复制最后的输出进行密钥添加 验证是否添加成功 3.创建&连接远程仓库 创建仓库 git终端进行配置 远程仓库克隆到本地 桌面终端clone,克隆他人|自己的仓库到本地…...

如何解决Ubuntu 20.04中Vim编辑器在按下Ctrl+S时暂停响应的问题

如何解决Ubuntu 20.04中Vim编辑器在按下CtrlS时暂停响应的问题 在Ubuntu 20.04中使用Vim编辑器时&#xff0c;用户可能会遇到按下CtrlS后编辑器似乎“卡死”或无响应的情况。这个问题实际上源于历史悠久的终端行为&#xff0c;而非Vim本身或操作系统的缺陷。以下是详细的分析及…...

mybatisPlus打印sql配置

MyBatis-Plus 提供了方便的配置方式来打印 SQL 查询语句&#xff0c;以便进行调试和性能分析。可以通过配置 log 来输出 SQL 语句以及执行的参数。 方法 1&#xff1a;通过 application.properties 或 application.yml 配置打印 SQL 可以通过配置 application.properties 或 a…...

Redis 内存管理

参考&#xff1a;面试官&#xff1a;为什么 Redis 不立刻删除已经过期的数据&#xff1f; 目录 1.Redis 给缓存数据设置过期时间有什么用&#xff1f; 2.Redis 是如何判断数据是否过期的呢&#xff1f; 3.Redis 过期 key 删除策略了解么&#xff1f; 4.大量 key 集中过期怎…...

Excel表文本函数、日期和时间函数

一、文本函数 函数说明CHAR返回字符代码所对应的字符CLEAN删除文本中的所有不可打印字符CODE返回文本字符串首字符的代码CONCATENATE合并多个文本字符串EXACT检查两个文本是否完全相同FIND查找文本中某个字符串的位置LEFT从文本的左边开始返回指定数量的字符LEN返回文本字符串…...

从零到一:利用 AI 开发 iOS App 《震感》的编程之旅

在网上看到一篇关于使用AI开发的编程经历&#xff0c;分享给大家 作者是如何在没有 iOS 开发经验的情况下&#xff0c;借助 AI&#xff08;如 Claude 3 模型&#xff09;成功开发并发布《震感》iOS 应用。 正文开始 2022 年 11 月&#xff0c;ChatGPT 诞生并迅速引发全球关注。…...

基于Java Springboot幼儿园管理系统

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 数据…...

Python小白学习教程从入门到入坑------习题课2(基础巩固)

目录 一、选择题 二、实战题 2.1 实战1&#xff1a;输入一个年份&#xff0c;判断是否是闰年 2.2 实战2&#xff1a;模拟10086查询功能 2.3 实战3&#xff1a;使用嵌套循环输出九九乘法表 2.4 实战4&#xff1a;猜数游戏 一、选择题 1、以下选项符合Python语法要求且能够…...

基于IPMI_SSH的服务器硬件监控指标解读

随着企业IT架构的日益复杂化&#xff0c;对服务器的实时监控和管理变得至关重要。监控易作为一款功能强大的监控软件&#xff0c;支持通过IPMI_SSH的方式对服务器硬件进行远程监控&#xff0c;确保服务器的稳定运行。本文将针对监控易中基于IPMI_SSH的服务器硬件监控指标进行解…...

数据结构-二叉树及其遍历

🚀欢迎来到我的【数据结构】专栏🚀 🙋我是小蜗,一名在职牛马。🐒我的博客主页​​​​​​ ➡️ ➡️ 小蜗向前冲的主页🙏🙏欢迎大家的关注,你们的关注是我创作的最大动力🙏🙏🌍前言 本篇文章咱们聊聊数据结构中的树,准确的说因该是只说一说二叉树以及相…...

(33)iptables设置防火墙策略常用命令(docker环境、非docker环境)

#普通环境&#xff08;非docker&#xff09; # 拒绝所有对端口 31001 的访问 iptables -A INPUT -p tcp --dport 31001 -j DROP # 允许 IP 地址 20.59.30.77 访问端口 31001 (此处用的是虚拟机 所以要使用nat地址的网关) iptables -I INPUT 1 -p tcp -s 20.59.30.77 --dpor…...

fastadmin中动态下拉组件(SelectPage)的使用

实现的功能如下&#xff1a; 1、支持模糊搜索&#xff1b;2、分页功能&#xff1b;3支持多选 官方文档&#xff1a;https://doc.fastadmin.net/doc/178.html html页面引用组件 <div class"form-group"><label class"control-label col-xs-12 col-sm-2…...

通过Python 调整Excel行高、列宽

在Excel中&#xff0c;默认的行高和列宽可能不足以完全显示某些单元格中的内容&#xff0c;特别是当内容较长时。通过调整行高和列宽&#xff0c;可以确保所有数据都能完整显示&#xff0c;避免内容被截断。合理的行高和列宽可以使表格看起来更加整洁和专业&#xff0c;尤其是在…...

力扣-Mysql-3278. 寻找数据科学家职位的候选人 II(中等)

一、题目来源 3278. 寻找数据科学家职位的候选人 II - 力扣&#xff08;LeetCode&#xff09; 二、数据表结构 表&#xff1a;Candidates ----------------------- | Column Name | Type | ----------------------- | candidate_id | int | | skill | varch…...

Android笔记(三十六):封装一个Matrix从顶部/底部对齐的ImageView

背景 ImageView的scaleType默认显示图片是这样&#xff0c;但是有时候设计稿需求希望图片左右能紧贴着ImageView左右边缘&#xff0c;又不破坏图片的比例&#xff0c;用自带的matrix&#xff0c;centerCrop等都可以满足 但是都会造成图片的某些区域被裁剪了&#xff0c;如果设…...

web 入门

学习 Web 开发的基础&#xff0c;建议从以下几个方面入门&#xff0c;按步骤循序渐进学习核心知识&#xff1a; 1. 了解 Web 的基础概念 在开始编码之前&#xff0c;先理解 Web 开发的基本工作原理&#xff1a; Web 前端与后端&#xff1a; 前端&#xff1a;负责用户界面和用…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...