探究大语言模型如何使用长上下文

🍉 CSDN 叶庭云https://yetingyun.blog.csdn.net/


论文链接:https://doi.org/10.1162/tacl_a_00638

论文标题:Lost in the Middle: How Language Models Use Long Contexts

论文发表期刊:Transactions of the Association for Computational Linguistics(2024)

作者团队 & 机构:Nelson F. Liu, Kevin Lin, John Hewitt, Ashwin Paranjape, Michele Bevilacqua, Fabio Petroni, Percy Liang(斯坦福、加州大学伯克利分校、Samaya AI)

这篇论文的研究背景是关于语言模型在处理长篇文本时是如何使用长上下文信息的。语言模型在处理长篇文本时面临着许多挑战,例如如何有效地检索和利用相关信息,以及如何处理长篇文本中的信息丢失和模糊性。

在这里插入图片描述

虽然最近的语言模型能够将长上下文作为输入,但对它们使用长上下文的情况知之甚少。这项研究分析了语言模型在两项任务中的表现,这两项任务要求识别输入语境中的相关信息:多文档问题解答和键值检索。实验结果发现,当改变相关信息的位置时,性能会明显下降,这表明当前的语言模型不能稳健地利用长输入语境中的信息。特别是,当相关信息出现在输入上下文的开头或结尾时,性能往往最高,而当模型必须在长上下文中间获取相关信息时,性能会明显下降,即使是明确的长上下文模型也是如此。这项研究的分析使人们更好地了解语言模型如何使用输入上下文,并为未来的长上下文语言模型提供了新的评估协议。

作者进行了一系列的实验,使用了多个最新的语言模型,并对输入上下文的大小和相关信息的位置进行了控制性的变化。

  • 首先,研究团队进行了多文档问答实验,要求模型根据提供的文档找到相关信息并用于回答给定的问题。他们通过改变相关信息在输入上下文中的位置,观察模型的表现。实验结果显示,模型在处理相关信息位于输入上下文的开头或结尾时表现最好,而当相关信息位于输入上下文的中间时,模型的表现显著下降。

  • 接下来,研究团队进行了键值检索实验,要求模型根据给定的键找到对应的值。他们同样改变了相关信息在输入上下文中的位置,并观察模型的表现。实验结果显示,一些模型在处理相关信息位于输入上下文的中间时表现困难,无法准确检索到匹配的标记。

  • 通过这些实验,研究团队发现当前的语言模型在处理长输入上的表现存在问题,无法稳定地识别和使用输入上下文中的相关信息。特别是当相关信息位于输入上下文的中间时,模型的表现明显下降,即使是专门设计用于处理长输入的模型也存在这个问题。

  • 因此,本研究提供了对语言模型如何使用输入上下文的更深入的理解,并为未来的长上下文语言模型提供了新的评估方法。为了证明一个语言模型能够稳健地使用长输入上下文中的信息,需要展示其在不同位置的相关信息下的表现不受影响。

多文档问题解答任务示例如下图所示,包含输入上下文和所需的模型答案。为清楚起见,包含答案的文档在输入上下文中用粗体标出。

在上图所示的多文档问题解答示例中,调整相关信息在输入上下文中的位置。对输入上下文中的文档重新排序并不会影响所需的输出结果。以及调节多文档问题解答示例的输入上下文长度。添加不包含答案的文档会增加输入上下文的长度,但不会影响预期输出。

在这里插入图片描述

使用的模型以及这些语言模型在多文档问题解答任务中 Closed-book 和 Oracle 数据集上的准确率。

在这里插入图片描述

键值检索任务示例如下所示,包含输入上下文和所需的模型输出。给定一个键,目标是返回相关的值。所有键和值都是 128 位 UUID。为清楚起见,输入上下文中与回答查询相关的键值对用粗体标出。

在这里插入图片描述

改变输入上下文长度和相关信息位置对键值检索性能的影响。较低的位置更接近输入上下文的起始位置。虽然有些模型在这项合成任务中表现出了完美的准确性(例如 Claude-1.3 和 Claude-1.3 100K),但我们再次看到,当相关信息出现在上下文的最开始或结尾时,性能往往最高,而当模型必须从输入上下文的中间进行检索时,性能就会迅速下降。

在这里插入图片描述

改变相关信息(在本例中,即回答输入问题的段落的位置)在语言模型输入上下文中的位置会导致 U 型性能曲线:模型更善于使用出现在输入上下文开头(首要偏向)或结尾(回顾偏向)的相关信息,而当模型必须访问和使用位于输入上下文中间的信息时,性能会明显下降。一张可视化图如下示意:

在这里插入图片描述

研究者通过一系列对照实验对语言模型如何使用长输入上下文进行了实证研究。实证发现,当改变相关信息的位置时,语言模型的性能会明显下降,这表明模型在长输入上下文中很难稳健地获取和使用信息。特别是,当模型必须使用长输入上下文中间的信息时,性能往往最低。

作者对 (i) 模型架构、(ii) 查询感知上下文和 (iii) 指令微调的作用进行了初步调查,以更好地了解它们如何影响语言模型如何使用上下文。最后,通过对开放域问题解答的实际案例研究得出结论,发现语言模型阅读器的性能远远早于检索器的召回而达到饱和。这篇论文的研究结果和分析提供了一个更好的理解语言模型如何使用其输入上下文,并为未来的长上下文模型提供了新的评估协议。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Apple Vision Pro应用】Cinephile——Cinema Mode for Local Video(苹果眼睛视频播放器)

Cinephile 为您提供了一个完全无干扰、无限制的无限空间,让您尽享视频的精彩。它创造了一种身临其境的环境,您可以在能够想象到的最大屏幕上,从任何角度或位置观看内容。 您可以根据个人喜好自由调整视频的大小和位置。添加视频中的环境光&am…

MoonBit 新增 += 运算符,引入 super trait 和 List 字面量机制

MoonBit更新 1. 添加了 系列语句 包括、-、*、/,支持运算符重载: fn init {let array [1,2,3,4]array[2] * 10println(array) // [1, 2, 30, 4] }fn init {let mut a 1a 20println(a) // 21 } struct Foo {data : Array[Int] } derive(Debug)fn o…

转载-七种Java常用序列化框架的选型与对比

七种Java常用序列化框架的选型与对比 本文章转自:乐字节 文章主要讲解:Java常用序列化框架 获取更多前端相关资料可以点击链接加入群聊【Java技术交流群】:正在跳转暗号:166 转载地址:七种Java常用序列化框架的选型…

Linux设备模型(九) - bus/device/device_driver/class

一,设备驱动模型 1,概述 在前面写的驱动中,我们发现编写驱动有个固定的模式只有往里面套代码就可以了,它们之间的大致流程可以总结如下: 实现入口函数xxx_init()和卸载函数xxx_exit() 申请设备号 register_chrdev_r…

软件测试的基本流程是什么?软件测试流程详细介绍

软件测试和软件开发一样,是一个比较复杂的工作过程,如果无章法可循,随意进行测试势必会造成测试工作的混乱。为了使测试工作标准化、规范化,并且快速、高效、高质量地完成测试工作,需要制订完整且具体的测试流程。 01…

中国各省绿色金融试点DID数据集(2010-2023)

一、数据简介 最新的2010-2023年中国31省绿色金融试点DID数据,供大家研究使用。 数据说明:内含绿色金融改革创新试验区名单,将试验区获批当年及以后的政策虚拟变量项是否试点赋值为1,获批之前赋值为0。其中赣江新区、贵安新区为国…

Spring:FactoryBean预加载逻辑以及自定义实现Mybatis的接口扫描

Spring:FactoryBean预加载逻辑以及自定义实现Mybatis的接口扫描 1 前言 参考Mybatis框架的Mapper注解扫描Mapper接口的业务逻辑,其中集成Spring的逻辑里使用到了Spring框架的FactoryBean拓展点,本文针对Spring FactoryBean的加载流程进行分…

Unity 摄像机的深度切换与摄像机画面投影

摄像机可选:透视、正交 正交类似投影,1比1 透视类似人眼,近大远小 摄像机投影 在项目中新建:渲染器纹理 将新建纹理拖动到相机的目标纹理中 新建一个平面,将新建材质组件放到平面中即可。 相机深度切换 使用代…

Git实战(2)

git work flow ------------------------------------------------------- ---------------------------------------------------------------- 场景问题及处理 问题1:最近提交了 a,b,c,d记录,想把b记录删掉其他提交记录保留: git reset …

JavaWeb之 Web概述

目录 前言1.1 Web和 JavaWeb的概念1.2 JavaWeb技术栈1.2.1 B/S架构1.2.2 静态资源1.2.3 动态资源1.2.4 数据库1.2.5 HTTP协议1.2.6 Web服务器 1.3 JavaWeb 学习内容 前言 博主将用 CSDN 记录 Java 后端开发学习之路上的经验,并将自己整理的编程经验和知识分享出来&a…

浅谈MySQL的B树索引与索引优化

MySQL的MyISAM、InnoDB引擎默认均使用B树索引(查询时都显示为“BTREE”),本文讨论两个问题: 为什么MySQL等主流数据库选择B树的索引结构?如何基于索引结构,理解常见的MySQL索引优化思路? 为什…

S7-1500 PLC装载存储器已使用容量变红的解决方法示例

S7-1500 PLC装载存储器已使用容量变红的解决方法示例 1.如何在线查看S7-1200/1500 PLC的内部存储区的使用情况? 答:在项目树中展开PLC程序打开“在线和诊断”,点击“转至在线”使TIA PORTAL在线连接到S7-1200 CPU,在“存储器”标签查看CPU内存使用情况,如下图所示: 2.如何…

LeetCode234题:回文链表(python3)

代码思路:将链表的值复制到数组列表中,再使用双指针法判断,不断更新current_node的值。 # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nextNone): # self.val val # self.next…

探索Linux世界:初次接触和基本指令(文件操作)

文章目录 1.基本介绍和准备2.基本指令和Linux的基本操作3.几个重要基本指令3.1 ls - 列出文件和目录3.1.1文件的知识3.1.2 .和..文件 3.2pwd - 显示当前工作目录3.2.1路径知识 3.3 cd - 切换目录3.4 touch - 创建文件或更新时间戳3.5mkdir - 创建新目录3.6rm - 删除文件或目录3…

基本运算符

参考C Primer Plus进行C语言学习 文章目录 基本运算符 除法运算符:/其他运算 1、除法运算符 在C语言中,整数除法结果的小数部分被丢弃,这一过程被称为截断。 2.其他运算符 (1)sizeof运算符和size_t类型 回顾一下&…

C++ 前缀和

目录 例1 例2 例3 例4 例5 例6 例7 例8 例1 DP34 【模板】前缀和 分析:dp和arr的大小并不是固定的,就是有没有偏移量,这里的n是从1开始,不如直接放到下标1处,在最后的减法时,如果用第一个参考代码会…

单调栈的理解

单调栈的理解 核心代码场景思考 完整代码环形数组循环数组 单调栈&#xff1a; 单调递增或 单调递减的栈 核心代码 while (!s.empty()&&s.peek()<nums[i]){s.pop(); } s.push(nums[i]);将要放入的元素&#xff0c;与栈内元素依个比较&#xff0c;小于的都出栈&am…

设计模式(含7大原则)面试题

目录 主要参考文章 设计模式的目的 设计模式的七大原则 设计模式的三大分类及关键点 1、创建型模式&#xff08;用于解耦对象的实例化过程&#xff09; 2、结构型模式 3、行为型模式 23种设计模式&#xff08;乱序--现学现写&#xff0c;不全面--应付面试为主&#xff…

BUUCTF------[HCTF 2018]WarmUp

开局一个表情&#xff0c;源代码发现source.php <?phphighlight_file(__FILE__);class emmm{public static function checkFile(&$page){$whitelist ["source">"source.php","hint">"hint.php"];if (! isset($page) |…

web坦克大战小游戏

H5小游戏源码、JS开发网页小游戏开源源码大合集。无需运行环境&#xff0c;解压后浏览器直接打开。有需要的订阅后&#xff0c;私信本人&#xff0c;发源码&#xff0c;含60小游戏源码。如五子棋、象棋、植物大战僵尸、贪吃蛇、飞机大战、坦克大战、开心消消乐、扑鱼达人、扫雷…