LONGHEADS:无需训练的多头注意力长文本处理框架

大模型(LLMs)在处理海量文本数据时展现出了前所未有的能力。然而这些模型在面对超出其训练时所见序列长度的长文本时存在两个主要问题:一是模型对于超出预训练长度的文本难以有效泛化,二是注意力机制的二次方时间复杂度导致计算成本急剧上升。这些问题严重限制了LLMs在长文本处理领域的应用潜力。

三种长文本处理方式:(a) 全部上下文注意力,但在预训练长度之外挣扎;(b) 局部上下文注意力,流畅生成但丢失信息;(c) 每个头处理短块,多头处理长文本

复旦大学计算机科学学院的研究团队在论文《LONGHEADS: Multi-Head Attention is Secretly a Long Context Processor》中提出了一种无需额外训练的框架,通过挖掘多头注意力的潜力,有效提升了LLMs处理长文本的能力。与传统方法相比,LONGHEADS无需额外的训练,便能在保持线性时间复杂度的同时,有效扩展模型的上下文处理窗口,为长文本的深入理解和生成任务提供了新的解决方案。

方法

本方法的核心思想是将输入文本分割成多个逻辑块,每个块由固定数量的连续token组成。这种分块策略不仅简化了注意力机制的复杂性,而且使得模型能够更加灵活地处理长文本。在生成特定token时,LONGHEADS会根据当前token的查询向量和块的表示,选择与之最相关的k个块。这一过程不依赖于额外的训练数据,完全基于模型已经学到的知识。

LONGHEADS推理过程的概览图,展示了生成特定token时如何选择相关的k个块

图2提供了对LONGHEADS推理过程的高层次概览,尤其是在生成特定步骤中的token x14时。在LONGHEADS的推理过程中,模型会特别关注两个关键的文本块:第一个块和最后一个块。

  1. 第一个块的重要性:第一个块(Chunk 1)对于保持计算的稳定性至关重要。它通常包含了文本的开始部分,这些信息对于模型理解整个上下文和维持生成过程中的连贯性非常关键。

  2. 最后一个块的作用:最后一个块(记为C−1)包含了最近的token,为模型提供了必要的局部上下文信息。这对于生成任务尤其重要,因为它帮助模型了解最近发生的事情,并据此做出合理的预测。

在生成token x14的当前步骤中,LONGHEADS会保留第一个块,并与最后一个包含最近token的块结合起来。这样,模型在生成新token时,既考虑了文本的整体结构,也考虑了近期的上下文信息。LONGHEADS模型的一些关键特性和操作方式包括:

  1. 选择性注意力机制:模型仅对与当前生成任务最相关的文本块进行注意力计算,而不是对整个文本进行全面的注意力分配。

  2. 计算效率的优化:通过限制参与计算的文本块数量,模型能够降低处理长文本时所需的内存和计算资源。

  3. 多头注意力的协作:模型中的多个注意力头可能各自选择不同的文本块进行处理,这样的设计允许模型从不同的角度和层面理解文本信息。

  4. 推理过程的动态性:模型在生成每个新token时,会根据当前的上下文动态选择相关的文本块,以适应不断变化的推理需求。

块表示是LONGHEADS中的一个关键概念,它指示了块内token是否应该被模型所关注。与传统方法不同,LONGHEADS通过一种训练无关的方式来获取块表示,这主要得益于注意力机制的内在能力。

每个块的块表示是通过对其内部所有token的关键状态进行聚合来获得的。为了更好地反映块内各个token的重要性,LONGHEADS采用了一种基于flash-attention的方法,通过评估每个token对整个块表示的贡献度,然后进行加权聚合。这种方法不仅考虑了块内token的语义重要性,而且还能够捕捉到它们在语义上的相关性。

在编码或生成下一个token的过程中,LONGHEADS采用了一种查询感知的块选择策略。这一策略基于当前token的查询状态和块表示之间的点积相似度来选择目标块。通过这种方式,模型能够识别出与当前任务最相关的上下文信息,并将其纳入到注意力计算中。

如何选择和重新映射超过预训练长度的文本块的位置编码

选择过程首先确保包含文本的开始部分和最近的部分,以维持生成的流畅性和局部性。然后,模型会根据点积相似度分数,选择剩余的k-2个最相关的块。这种选择机制不仅提高了模型对长文本信息的捕捉能力,而且还保持了计算效率。

在推理阶段,LONGHEADS对长输入的编码和长输出的生成进行了特别的优化。首先,模型会并行计算所有块的表示,然后根据块表示和查询向量选择最相关的k个块。这一过程通过两次flash-attention操作高效完成,大大减少了参与注意力计算的token数量。

在生成阶段,LONGHEADS首先执行块选择,然后加载所选k个块的键值表示,以进行长度受限的因果注意力计算。这种设计允许模型在保持预训练长度内的有效计算的同时,还能够处理超出该长度的长文本序列。

通过这些创新的方法,LONGHEADS不仅提高了LLMs处理长文本的能力,而且还保持了计算效率,为长文本的深入分析和应用提供了新的可能性。

实验

为了验证LONGHEADS框架的有效性,研究团队将LONGHEADS应用于流行的LLaMA-2-7B模型的基础和聊天版本,这两种模型因其广泛的应用和受欢迎程度而被选中。实验的基线设置包括了全注意力方法和受限注意力方法,以进行全面的比较。

全注意力方法包括了动态NTK插值和位置插值技术,而受限注意力方法则涵盖了LM-Infinite和Landmark-Attention。这些方法的实现细节在附录A中有详细描述。实验的目的是为了评估LONGHEADS在处理长文本时的性能,特别是在语言建模、合成检索任务和长文本基准测试中的表现。

实验聚焦于长文本语言建模的能力。研究团队使用了两个数据集:PG19和Proof-pile。PG19是一个由书籍组成的语料库,而Proof-pile则是一个清洁过的Arxiv数学证明数据集。通过在这些数据集上进行实验,研究团队展示了不同方法在不同上下文长度下的困惑度(PPL)。

困惑度是衡量语言模型预测下一个token能力的指标,其值越低表示模型的预测能力越强。实验结果显示,当上下文长度在预训练范围内时,LLaMA-2-7B基础模型和位置插值方法的PPL保持在较低水平。然而,当上下文长度超出这个范围时,PPL显著增加。相比之下,LONGHEADS、Landmark Attention和LM-Infinite即使在32k的序列长度上也能成功保持低PPL得分。

不同上下文窗口扩展方法在PG19和Proof-pile数据集上的滑动窗口困惑度

基于检索的任务评估这项任务挑战语言模型在长文本序列中准确定位和检索一个简单的密码——一个五位数的随机数。这项任务测试了语言模型是否能够有效地关注输入序列的所有位置的信息。

实验中,密码被放置在不同上下文长度(从4k到32k,间隔为4k)的文本中,每种上下文长度进行了50次测试,密码在上下文中的位置是随机的。结果显示,所有模型在预训练长度内都能输出密码,但基础模型在扩展长度上完全失败。而LONGHEADS和Landmark Attention无论序列长度如何,都能以接近100%的准确率一致地检索密码。

在不同上下文长度下检索密码任务的准确率

最后,为了更全面地反映模型处理长序列的能力,研究团队使用了LongBench进行下游NLP任务的评估。LongBench是一个多任务基准,包括单文档问答、多文档问答、摘要、少样本学习和代码补全等任务。这些任务覆盖了NLP领域的多个重要方面,能够全面评估模型对长文本的理解和处理能力。

在LongBench上的实验结果表明,LONGHEADS在受限注意力设置中的性能优于其他方法,并且在与全注意力方法的比较中也显示出竞争力。特别是在将上下文窗口扩展到32k时,LONGHEADS能够保持其性能,超越了所有基线方法,证明了其在长文本处理上的通用性和有效性。

基于LLaMA-2-7B-Base模型在LongBench基准测试上的不同方法的结果

分析

研究团队探讨了LONGHEADS框架中不同注意力头是如何处理长文本的,以及它们是否能够成功识别并集中于文本中的关键信息。通过一系列的可视化展示和统计分析,研究团队评估了模型在执行检索密码和摘要任务时的表现。

检索密码任务: 在这一任务中,所有注意力头都集中于包含答案的同一文本块,并准确预测出了密码。即使在某些情况下密码没有被成功预测,包含答案的文本块仍然被多个注意力头选中。这表明LONGHEADS的注意力头能够聚焦于文本中的重要部分,即便在长文本环境中也能够准确捕捉到关键信息。

摘要任务: 与检索任务不同,在摘要任务中,注意力头更加均匀地分散其关注点,以覆盖整个文本的信息。这种分布的均匀性有助于模型生成全面且连贯的摘要。

可视化结果: 通过可视化分析,研究团队展示了不同注意力头在不同层级上选择的文本块。颜色块表示了每个注意力头在每个层级上选择的文本块,清晰地揭示了模型在处理长文本时的注意力分布。

通过颜色块展示了不同注意力头在检索密码和摘要任务中选择的块

统计结果: 统计数据进一步证实了LONGHEADS的注意力头在不同序列长度上的表现。例如,在检索密码任务中,即使在32k的长序列上,模型的命中率也接近100%,这显示了模型在长文本处理上的高效性和有效性。

不同序列长度下的选择统计结果,包括覆盖率、均匀性和命中率

为了更深入地理解LONGHEADS框架的性能,研究团队还进行了消融实验,以评估块选择策略、注意力头的灵活性、块数K和块大小l对模型表现的具体影响。

块选择策略: 实验结果显示,选择得分最高的块明显优于选择得分最低的块,甚至随机选择也比最后K个选择的结果要好。此外,当不保留文本的第一个块时,模型性能显著下降,这强调了块选择策略在维持模型输出分布稳定性中的重要性。

注意力头的灵活性: 当限制注意力头的灵活性时,模型性能受到了不同程度的影响。这表明在LONGHEADS框架中,不同注意力头在每一层的协作对于整体性能至关重要。

块数和块大小: 消融实验还探讨了块数和块大小对模型性能的影响。结果表明,增加文本中的块数可以提供更多信息,但效益呈现递减趋势。这表明适量的块数已经足够保证性能,并且通过块选择策略可以有效地获取整个序列的信息。同时,不同的块大小对结果的影响不大,说明LONGHEADS可以适应不同的块大小设置。

不同设置下LONGHEADS在LongBench上的平均表现

实验结果表明,LONGHEADS不仅在语言建模、密码检索等任务上取得了优异的性能,而且在下游NLP任务中也展现出了强大的能力。特别是在不需要额外训练成本的情况下,LONGHEADS能够直接扩展现有模型的上下文处理能力,这一点对于资源受限的实际应用场景尤为重要。

然而,LONGHEADS也存在一些局限性。例如,文本分块可能会破坏内容的连续性,影响模型对某些任务的性能;另外,模型能够处理的文本长度受到一定限制。未来的工作可以探索更加灵活的分块策略,以及进一步提高模型对长文本的理解和处理能力。

论文链接:https://arxiv.org/abs/2402.10685

代码链接:https://github.com/LuLuLuyi/LongHeads

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#语言+net技术架构+ VS2019开发的微信公众号预约挂号系统源码 微信就医全流程体验 什么是微信预约挂号系统?

C#语言net技术架构 VS2019开发的微信公众号预约挂号系统源码 微信就医全流程体验 什么是微信预约挂号系统? 微信预约挂号系统是一种基于互联网的预约挂号平台,通过与医院信息系统的对接,实现了患者通过手机微信轻松预约挂号的功能。预约挂号系…

Flutter图像编辑器应用:创造生动美丽的照片体验

介绍 引言 想象一下,在一个阳光明媚的下午,与家人或朋友漫步在风景如画的街道上。拿出手机,迫不及待地捕捉这一刻的美好,按下快门,留下了一张充满回忆的照片。 然而,回到家后发现照片的亮度有些偏暗&…

Element 进度条样式优化

在开发后台管理系统时,经常会用到进度条这样一个控件,Element UI中提供了progress这样一个组件,如下图所示: 该组件默认的颜色会比较单一,为此时常需要对该组件的样式进行一些优化,以满足实际项目的需求。 …

芒果YOLOv10改进64:主干Backbone篇RepVGG结构:简单但功能强大的卷积神经网络架构

💡本篇内容:YOLOv10改进RepVGG结构:简单但功能强大的卷积神经网络架构 💡🚀🚀🚀本博客 改进源代码改进 适用于 YOLOv10 按步骤操作运行改进后的代码即可 💡本文提出改进 原创 方式:二次创新,YOLOv10 应部分读者要求,新增一篇RepVGG 论文理论部分 + 原创最…

LabVIEW机器视觉在质量控制中的应用

基于LabVIEW的机器视觉系统在质量控制中应用广泛,通过图像采集、处理和分析,自动检测产品缺陷、测量尺寸和识别标记,提高生产效率和产品质量。下面介绍LabVIEW机器视觉系统在质量控制中的实现方法、应用场景及其优势。 项目背景 在现代制造业…

生鲜水果行业wordpress主题

水果蔬菜wordpress外贸自建站模板 水果、脐橙、牛油果、菠萝、凤梨、鲜枣、苹果、芒果、瓜果、百香果wordpress外贸独立站模板。 https://www.jianzhanpress.com/?p3932 生鲜wordpress外贸出口网站模板 水果、蔬菜、肉蛋奶、水产、干货等生鲜产品wordpress外贸出口公司网站…

css-Echarts图表柱状图,X轴横坐标值显示不完全问题

1.问题 在Echarts图表中当横坐标数值过多,或者数值过长时会导致部分横坐标不显示。数据量少或简单会默认显示完全,当放大时会导致部分横坐标隐藏。 更改第一个Mon字段名 会发现偶数横坐标显示隐藏; 2.解决方法 2.1 在x横坐标中添加interval…

JavaFX 下拉框

组合框允许用户选择几个选项之一。用户可以滚动到下拉列表。组合框可以是可编辑和不可编辑的。 创建组合框 以下代码将选项列表包装到ObservableList中&#xff0c;然后使用observable列表实例化ComboBox类。 ObservableList<String> options FXCollections.observab…

快速上手 Spring Boot:基础使用详解

快速上手 Spring Boot&#xff1a;基础使用详解 文章目录 快速上手 Spring Boot&#xff1a;基础使用详解1、什么是SpringBoot2、Springboot快速入门搭建3、SpringBoot起步依赖4、SpringBoot自动配置&#xff1a;以tomcat启动为例5、SpringBoot基础配置6、yaml7、多环境开发配置…

ArkUI开发学习随机——得物卡片,京东登录界面

案例一&#xff1a;得物卡片 代码&#xff1a; Column(){Column(){Image($r("app.media.mihoyo")).width(200).height(200)Row(){Text("今晚玩这个 | 每日游戏打卡").fontWeight(700).fontSize(16).padding(4)}.width(200)Text("No.12").fontWe…

Unity的Excel转表工具

该Excel工具主要由Python语言完成&#xff0c;版本为3.x 主要功能&#xff1a; 1.转换后的数据存储结构为二进制。 2.excel文件可以选择多种数据类型&#xff1a;int、float、string、一维&#xff08;int、float、string&#xff09;、二维int、Map&#xff08;int/int、in…

DVWA-XSS(Stored)-beef

用Low Level来测试beef的使用 beef配置 如果kali没有beef的&#xff0c;进行下载 apt install beef-xss使用 beef-xss # 命令方式启动 beef-xss-stop # 命令方式关闭 systemctl start beef-xss.service #开启beefsystemctl stop beef-xss.service #关闭…

使用插件和微调优化 GPT 模型

文章目录 LLM 用例和示例产品警惕 AI 幻觉&#xff1a;限制与考虑使⽤插件和微调优化 GPT 模型 OpenAI 在其网站上展示了许多激励人心的客户故事&#xff0c;我们需要了解这些模型如何改变我们的社会并为商业和创造力开辟新机遇。正如你将看到的&#xff0c;许多企业已经开始使…

【 ARMv8/ARMv9 硬件加速系列 3.5.1 -- SVE 谓词寄存器有多少位?】

文章目录 SVE 谓词寄存器(predicate registers)简介SVE 谓词寄存器的位数SVE 谓词寄存器对向量寄存器的控制SVE 谓词寄存器位数计算SVE 谓词寄存器小结 SVE 谓词寄存器(predicate registers)简介 ARMv9的Scalable Vector Extension (SVE) 引入了谓词寄存器&#xff08;Predica…

JVM专题五:类加载器与双亲委派机制

通过上一篇Java的类加载机制相信大家已经搞明白了整个类加载从触发时机&#xff0c;接着我们就来看下类加载器&#xff0c;因为类加载机制是有加载器实现的。 类加载器的分类 启动类加载器 Bootstrap ClassLoader 是 Java 虚拟机&#xff08;JVM&#xff09;的一部分&#x…

数据挖掘概览

数据挖掘(Data Mining)就是从大量的,不完全的,有噪声的,模糊的,随机的实际应用数据中,提取隐含在其中的,人们事先不知道的,但又是潜在有用的信息和知识的过程. 预测性数据挖掘 分类 定义&#xff1a;分类就是把一些新的数据项映射到给定类别中的某一个类别 分类流程&#x…

AI办公自动化:免费批量将英语电子书转成有声书

Edge-TTS是由微软推出的文本转语音Python库&#xff0c;通过微软Azure Cognitive Services转化文本为自然语音。可以作为付费文本转语音TTS服务的替代品&#xff0c;Edge-TTS支持40多种语言和300种声音&#xff0c;提供优质的语音输出 。 edge-tts支持英语、汉语、日语、韩语、…

小阿轩yx-MySQL数据库管理

小阿轩yx-MySQL数据库管理 使用 MySQL 数据库 在服务器运维工作中不可或缺的 SQL &#xff08;结构化查询语句&#xff09;的四种类型 数据定义语言&#xff08;DDL&#xff09;&#xff1a;DROP&#xff08;删除&#xff09;、CREATE&#xff08;创建&#xff09;、ALTER&…

基于rouyi框架的多租户改造

基于rouyi框架的多租户改造&#xff0c;重点是实现权限管理和数据隔离。权限管理相当于从原来的“顶级管理员admin-普通用户user”转变为“顶级管理员admin-租户管理员tanantAdmin-普通用户user”。数据隔离主要通过分库、分表、表内设置tenantId字段进行过滤三种方式。 本文主…

由于bug造成truncate table卡住问题

客户反应truncate table卡主&#xff0c;检查awr发现多个truncate在awr报告期内一直没执行完&#xff0c;如下&#xff1a; 检查ash&#xff0c;truncate table表的等待事件都是“enq: RO - fast object reuse”和“local write wait” 查找“enq: RO - fast object reuse”&am…