当前位置: 首页 > 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;负责用户界面和用…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机&#xff0c;因为在使用过程中发现 Airsim 对外部监控相机的描述模糊&#xff0c;而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置&#xff0c;最后在源码示例中找到了&#xff0c;所以感…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...

java高级——高阶函数、如何定义一个函数式接口类似stream流的filter

java高级——高阶函数、stream流 前情提要文章介绍一、函数伊始1.1 合格的函数1.2 有形的函数2. 函数对象2.1 函数对象——行为参数化2.2 函数对象——延迟执行 二、 函数编程语法1. 函数对象表现形式1.1 Lambda表达式1.2 方法引用&#xff08;Math::max&#xff09; 2 函数接口…...

多模态大语言模型arxiv论文略读(112)

Assessing Modality Bias in Video Question Answering Benchmarks with Multimodal Large Language Models ➡️ 论文标题&#xff1a;Assessing Modality Bias in Video Question Answering Benchmarks with Multimodal Large Language Models ➡️ 论文作者&#xff1a;Jea…...

Vue3学习(接口,泛型,自定义类型,v-for,props)

一&#xff0c;前言 继续学习 二&#xff0c;TS接口泛型自定义类型 1.接口 TypeScript 接口&#xff08;Interface&#xff09;是一种定义对象形状的强大工具&#xff0c;它可以描述对象必须包含的属性、方法和它们的类型。接口不会被编译成 JavaScript 代码&#xff0c;仅…...

Spring Boot 中实现 HTTPS 加密通信及常见问题排查指南

Spring Boot 中实现 HTTPS 加密通信及常见问题排查指南 在金融行业安全审计中&#xff0c;未启用HTTPS的Web应用被列为高危漏洞。通过正确配置HTTPS&#xff0c;可将中间人攻击风险降低98%——本文将全面解析Spring Boot中HTTPS的实现方案与实战避坑指南。 一、HTTPS 核心原理与…...