TransformerFAM:革新深度学习的新型注意力机制

深度学习领域的一项突破性技术——Transformer架构,已经彻底改变了我们处理序列数据的方式。然而,Transformer在处理长序列数据时面临的二次复杂度问题,限制了其在某些应用场景下的潜力。针对这一挑战,研究者们提出了一种名为TransformerFAM(Feedback Attention Memory)的新型架构,旨在通过引入反馈循环,使网络能够关注自身的潜在表示,从而在Transformer中培养出工作记忆(working memory),使其能够处理无限长的序列。

TransformerFAM架构

TransformerFAM(Feedback Attention Memory)是一种创新的Transformer架构,它通过引入反馈机制来增强模型处理长序列的能力。

TransformerFAM架构中注意力机制的可视化比较

Figure 1: Sliding Window Attention (SWA) 变体的查询-键注意力掩码比较

  • (a) Sliding Window Attention (SWA): 这个图示展示了标准的滑动窗口注意力机制,其中注意力被限制在当前窗口内,窗口大小为3。这意味着每个token只关注它自身以及它左右两边的token。

  • (b) Block Sliding Window Attention (BSWA): 这里展示了BSWA的工作原理,其中块大小设置为2,记忆段设置为1。在这种设置下,注意力不仅可以关注当前块的token,还可以关注记忆段中的前一个块的token。

  • (c) BSWA (block size = 2, memory segment = 2): 这个图示进一步扩展了记忆段,使得注意力可以覆盖到更大的过去上下文。当记忆段扩展到2时,意味着当前块的token可以关注到更远的过去的两个块。

  • (d) Receptive Field of BSWA: 这个图示说明了BSWA的感知范围,即模型在处理信息时能够“看到”的上下文范围。图中的花括号区域代表了感知范围,展示了在给定的块大小和记忆段设置下,模型能够关注到的token范围。

Figure 2: Transformer层中的注意力模式比较

  • (a) TransformerBSWA: 这个图示展示了TransformerBSWA层中的注意力模式,输入查询(Q)关注当前块以及两个记忆段中的token,从而提供了过去的上下文信息。

  • (b) TransformerFAM: 在TransformerFAM中,输入查询不仅关注当前块和记忆段,还关注过去的FAM(反馈注意力记忆)。FAM查询是从上一个FAM复制过来的(以蓝色虚线箭头表示),它压缩当前块的信息以更新FAM。这个反馈循环使得信息可以在不确定的时间范围内进行压缩和传播,这就是工作记忆的体现。图4将更详细地展示这一动态过程是如何随时间发展的。

BSWA是TransformerFAM架构的核心,它是一种特别设计来处理长上下文输入的注意力机制。这种机制的关键在于它将输入序列分割成多个较小的块,然后对每个块分别应用滑动窗口注意力。这样做的好处是,模型可以在保持较高计算效率的同时,关注到更广泛的上下文信息。

Block Size的概念在这里起到了关键作用。它决定了每个块中应该包含多少个token,并且这个数量也作为滑动窗口移动的步长。通过合理设置Block Size,可以控制模型在处理序列时的粒度,使其既能捕捉到局部的依赖关系,又能在必要时通过滑动窗口覆盖更广的上下文。

与Block Size紧密相关的另一个概念是Memory Segment。Memory Segment的值决定了模型需要缓存多少过去的块。这个设置直接影响了模型回顾上下文信息的能力。简单来说,一个较大的Memory Segment值可以让模型记住更远的历史信息,但同时也会增加计算的负担。相反,较小的Memory Segment值可以减少计算量,但可能会限制模型的记忆力。

TransformerFAM的另一个关键创新——Feedback Attention Memory(FAM)。FAM是一种虚拟激活,它的设计目的是将上下文信息反馈到BSWA的每个块中。这种设计满足了几个关键要求:

首先是Integrated Attention,这意味着自注意力机制需要同时处理输入上下文和FAM。通过这种方式,模型在处理当前块时,不仅考虑了当前的信息,还考虑了之前处理过的信息,从而实现了对上下文的深入理解。

其次是Block-Wise Updates,这要求FAM在块与块之间转换时进行更新。这种更新机制确保了FAM能够随着模型处理新的数据块而不断演化,保持信息的新鲜度和相关性。

第三是Information Compression,FAM的更新应该基于先前的FAM来压缩当前块的信息。这种压缩机制是FAM能够有效存储和传递信息的关键,它允许模型在有限的资源下处理和存储更多的信息。

最后是Global Contextual Storage,FAM需要无限期地存储全面的上下文信息。这一点对于处理长序列尤为重要,因为它允许模型在处理序列的任何部分时,都能够访问到整个序列的上下文信息。

FAM通过将自己附加到块段,并将其纳入自注意力过程中,实现了上述要求。这样模型就能够在块之间动态地传播全局上下文信息,实现更加丰富的表示。这种动态的、全局的上下文信息传播,是TransformerFAM架构能够处理长序列的关键所在。通过这种方式,TransformerFAM不仅能够捕捉到局部的细节,还能够维护对整体上下文的深刻理解,这在处理复杂的语言任务时尤为重要。

TransformerFAM的工作流程描述了模型是如何通过一系列步骤来处理和记忆信息的:

初始化阶段: 在TransformerFAM开始工作之前,首先需要对FAM进行初始化。这是通过在模型的token嵌入查找阶段添加可学习的摘要嵌入来完成的。这些嵌入相当于是模型的"软提示",它们帮助模型在处理输入序列的最开始阶段就建立起对信息的初步理解和摘要。这个过程类似于我们在阅读一篇文章时,首先浏览一下文章的摘要或引言部分,以获得对文章内容的初步把握。

自注意力阶段: 一旦FAM初始化完成,模型就进入自注意力阶段。在这个阶段,当前处理块的输入查询不仅仅关注它自身的键值对,还会关注到之前块的FAM。这里的FAM起到了一个全局上下文信息的提供者的角色,它允许模型在处理当前块的同时,也能够考虑到之前处理过的信息。这种机制使得模型能够构建出一个比单纯BSWA更加丰富的信息表示。

FAM查询阶段: 接下来,FAM自身也会进行查询操作。FAM查询会同时关注当前块的信息和之前块的FAM键。这个过程可以看作是模型在对当前块进行压缩处理,它基于之前全局上下文的信息来决定哪些信息是重要的,哪些可以暂时忽略。这种压缩机制是TransformerFAM能够有效处理长序列的关键,因为它允许模型在有限的资源下存储和传递最重要的信息。

更新FAM阶段: 在FAM查询完成后,模型会更新FAM,以便将其递归地传递到下一个块。这个更新的FAM包含了当前块经过压缩的信息,以及之前块的全局上下文信息。这样,当模型处理下一个块时,它就能够利用这个更新的FAM来构建更加全面和深入的信息表示。

TransformerFAM的具体实现是通过一系列算法步骤来完成的。这些步骤详细描述了如何迭代地计算自注意力,并将这些计算结果串联起来形成对整个序列的理解。算法考虑了块索引、记忆段和FAM的更新,确保了模型在处理序列时能够考虑到所有相关的上下文信息。

这个算法的实现确保了TransformerFAM在处理长序列时的效率和有效性。通过这种方式,模型不仅能够处理当前的信息,还能够记住和利用之前的信息,从而实现对整个序列的深入理解和处理。这种能力对于处理复杂的语言任务,如长文本的阅读理解、摘要生成等,是非常关键的。

TransformerFAM在推理阶段展现出的计算复杂度是线性的,即O(L),这里的L代表处理的token长度。这种线性复杂度意味着,无论输入序列多长,所需的计算量都将以序列长度的线性速率增长,这与传统的Transformer模型相比是一个显著的改进,后者的计算复杂度是二次方的。TransformerFAM的内存复杂度保持为常数O(1),这表示无论处理多少token,所需的内存量都不会增加,这对于处理长序列数据尤为重要。

这种设计使得TransformerFAM能够在保持较低资源消耗的同时,无限期地维护过去信息,从而为处理无限长的输入序列提供了一个有效的解决方案。这对于需要处理大量数据的应用场景,如自然语言处理中的长文本分析,是一个巨大的优势。

TransformerFAM的一个显著优势是它不需要引入新的权重,可以无缝地重用现有的预训练Transformer模型的检查点。这种兼容性大大降低了模型部署和微调的复杂性。通过对TransformerFAM进行LoRA(Low-Rank Adaptation)微调,即使是在50k步的训练之后,也能显著提升不同规模的Flan-PaLM大型语言模型(LLMs)在长上下文任务上的性能。

与现有的Transformer模型相比,TransformerFAM通过模仿生物神经系统中的工作记忆机制,提供了一种全新的视角来处理长序列数据。这种机制不仅能够提高模型的记忆能力,还能够增强其在复杂任务中的推理和理解能力。

实验

实验开始于对TransformerFAM的训练阶段。研究者们采用了不同规模的Flan-PaLM大型语言模型(LLMs),包括1B、8B和24B参数的模型,以验证TransformerFAM在不同模型大小下的表现。这些模型在预训练阶段后,通过指令微调(instruction finetuning)进一步训练,以适应特定的任务。

在微调过程中,研究者们使用了Flan指令数据,这些数据包含了少量的指令和相应的输出,被打包成长度为8.5k tokens的序列。为了维持所有模型的 minibatch 大小为128,研究者们根据模型的大小分配了不同数量的TPUv5核心。

研究者们采用了LoRA(Low-Rank Adaptation)技术来微调TransformerFAM,这是一种高效的微调方法,它通过在原始模型的注意力和前馈网络层中引入低秩矩阵来调整模型参数,而不是训练所有的权重。这种方法有助于减少灾难性遗忘(catastrophic forgetting),即模型在新任务上训练时不会遗忘旧任务的知识。

实验中使用了多种长上下文任务来评估TransformerFAM的性能,包括NarrativeQA、ScrollsQasper、Scrolls-Quality、XLSum等。这些任务要求模型在回答问题之前必须理解长达数千到数百万的上下文信息,是测试模型长序列处理能力的理想选择。

TransformerFAM在两个不同任务上的性能表现

Figure 3 展示了TransformerFAM在两个不同任务上的性能表现:PassKey Retrieval任务和长上下文任务(Long Context Tasks, LCT)。这个图表位于论文的实验部分,具体来说是在介绍TransformerFAM在不同配置下的性能比较和效果评估的小节中。

(a) PassKey Retrieval 任务

这一部分的图表显示了不同Transformer模型和BSWA记忆段配置下的性能。这里,MX 表示BSWA中记忆段的数量,而FAM 表示TransformerFAM且没有使用记忆段(即0记忆段)。实验结果显示,TransformerFAM能够成功解决PassKey Retrieval任务,这表明即使在面对极长上下文的情况下,它也能够有效地检索和记忆重要的信息(如PassKey)。

(b) 长上下文任务 (LCT)

第二部分的图表展示了在Flan 1B模型上,不同Transformer模型和不同BSWA记忆段配置下,长上下文任务的标准化得分。这些任务要求模型处理和理解大量的上下文信息以回答问题或完成任务。结果显示,TransformerFAM在所有长上下文任务上的性能都超过了其他所有BSWA配置,这进一步证明了TransformerFAM在处理长序列数据时的有效性。

这些结果不仅证明了TransformerFAM架构设计的成功,也突显了其在实际应用中的潜力,尤其是在需要处理和记忆大量信息的任务中。通过这些实验,研究者们能够展示TransformerFAM如何通过其独特的反馈注意力机制来提高模型的性能。

实验结果显示,TransformerFAM在所有长上下文任务上均优于传统的Transformer模型。特别是在处理极长序列时,如PassKey Retrieval任务,TransformerFAM能够完美地解决问题,即使在面对超过260k个token的填充上下文时也表现出色。这证明了TransformerFAM在处理长序列数据时的有效性和优越性。

TransformerFAM的性能提升不仅体现在长上下文任务上,在GPT-3任务中也有小幅提升。这可能是因为TransformerFAM通过FAM有效地减少了输入激活中的冗余,优化了潜在空间的使用。

实验还评估了TransformerFAM在不同模型大小下的扩展性和泛化能力。结果表明,随着模型规模的增加,TransformerFAM的性能得到了提升,这表明自注意力机制能够在处理局部信息的同时,有效地将上下文信息传递给FAM。

尽管实验结果令人鼓舞,但研究者们也指出,TransformerFAM的性能提升还有待进一步提高。这表明在工作记忆机制的进一步开发和完善方面,仍有大量的工作要做。未来的研究可能会集中在如何更有效地压缩和传递信息,以及如何将工作记忆与长期记忆更好地结合起来。

TransformerFAM的提出,不仅是对Transformer架构的一次重要补充,更是深度学习领域在模拟人类工作记忆功能方面的一次重要尝试。随着这一技术的不断发展和完善,我们有理由相信,它将在教育、医疗、通信等多个领域发挥重要作用,为构建更加智能和个性化的AI助手提供强有力的支持。

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

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

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

相关文章

Qwen2大模型微调入门实战(完整代码)

Qwen2是通义千问团队的开源大语言模型,由阿里云通义实验室研发。以Qwen2作为基座大模型,通过指令微调的方式实现高准确率的文本分类,是学习大语言模型微调的入门任务。 指令微调是一种通过在由(指令,输出)对…

使用vite从0开始搭建vue项目

使用Vite从0开始创建vue项目 第一步:创建项目目录 mkdir vue-demo -创建目录 cd vue-demo --进入项目 npm init -y --生成package.json文件 第二步:安装vite、typescript--ts、vue、vitejs/plugin-vue--对单文件组件、热重载、生产优化的支持 pnpm…

【Python】探索 One-Class SVM:异常检测的利器

我已经从你的 全世界路过 像一颗流星 划过命运 的天空 很多话忍住了 不能说出口 珍藏在 我的心中 只留下一些回忆 🎵 牛奶咖啡《从你的全世界路过》 在数据科学和机器学习领域,异常检测(Anomaly Detection)是…

工业通讯现场中关于EtherCAT转TCPIP网关的现场应用

在当今工业自动化的浪潮中,EtherCAT技术以其高效、实时的特性成为了众多制造业的首选。然而,随着工业互联网的发展,对于数据的远程访问和云平台集成的需求日益增长,这就需要将EtherCAT协议转化为更为通用的TCP/IP协议。于是开疆智…

【MMU】——MMU 权限控制

文章目录 权限控制内存访问权限内存类型XN execute neverDomain 权限控制 内存访问权限 内存类型 TEX C B bit 控制信息 XN execute never 不可执行区域,例如设备地址空间通常标记为不可执行区域,如果有指令预取访问了该空间,就会触发指令…

CVE-2022-4230

CVE-2022-4230 漏洞介绍 WP Statistics WordPress 插件13.2.9之前的版本不会转义参数,这可能允许经过身份验证的用户执行 SQL 注入攻击。默认情况下,具有管理选项功能 (admin) 的用户可以使用受影响的功能,但是该插件有一个设置允许低权限用…

快速入门Linux及使用VSCode远程连接Linux服务器

在当前的技术环境中,Linux操作系统因其强大的功能和灵活性而广受欢迎。无论你是开发人员、系统管理员还是技术爱好者,学习Linux都是提升技术技能的重要一步。本文将介绍如何快速入门Linux,并使用Visual Studio Code(VSCode&#x…

【RAG入门教程03】Langchian框架-文档加载

Langchain 使用文档加载器从各种来源获取信息并准备处理。这些加载器充当数据连接器,获取信息并将其转换为 Langchain 可以理解的格式。 LangChain 中有几十个文档加载器,可以在这查看https://python.langchain.com/v0.2/docs/integrations/document_lo…

王学岗鸿蒙开发(北向)——————(七、八)ArkUi的各种装饰器

arts包含如下:1,装饰器 ;2,组件的描述(build函数);3,自定义组件(Component修饰的),是可复用的单元;4,系统的组件(鸿蒙官方提供);等 装饰器的作用:装饰类、变量、方法、结…

著名AI人工智能社会学家唐兴通谈数字社会学网络社会学主要矛盾与数字空间社会网络社会的基本议题与全球海外最新热点与关注社会结构社会分工数字财富数字游民数字经济

如果人工智能解决了一切,人类会做什么? 这个问题的背后是人工智能时代的社会主要矛盾会是什么?那么整个社会的大的分工体系就会围绕主要矛盾开展。 《人工智能社会主要矛盾》 在农业社会,主要矛盾是人口增长和土地资源之间的关…

这家叉车AGV巨头2024年一季度销售4075万~

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》人俱乐部 一、BALYO公司概览 BALYO,这家来自法国的仓储机器人公司,自2006年成立以来,一直致力于为全球客户提供…

LabVIEW 与组态软件在自动化系统中的应用比较与选择

LabVIEW 确实在非标单机设备、测试和测量系统中有着广泛的应用,特别是在科研、教育、实验室和小型自动化设备中表现突出。然而,LabVIEW 也具备一定的扩展能力,可以用于更复杂和大型的自动化系统。以下是对 LabVIEW 与组态软件在不同应用场景中…

嵌入式单片机产品微波炉拆解分享

在厨房电器中,微波炉可以说是最具技术含量的电器,它的工作原理不像其他电器那样一眼就能看个明白,于是拆解了一个微波炉,分析内部电路。 微波炉的结构 微波炉由箱体、磁控管、变压器、高压电容器、高压二极管、散热风扇、转盘装置及一系列控制保护开关组成,大多数微波炉还…

【详细的Kylin使用心得,什么是Kylin?】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

【JAVASE】面向对象编程综合案例--------模仿电影信息系统

需求: (1)展示系统中的全部电影(每部电影展示:名称、价格) (2)允许用户根据电影编号(ID)查询出某个电影的详细信息。 目标:使用所学的面向对象…

报表或者BI的价值在哪?这是十几年的问题啦!

对,问题已经十几年了,答案也应该普世都懂了吧,但非常遗憾,答案没有问题普及的广。看似简单,但也难说清楚,不同的人,总会有不同的看法。 为什么要解释这个并不新鲜的问题? 因为有人问…

计网总结☞网络层

.................................................. 思维导图 ........................................................... 【Wan口和Lan口】 WAN口(Wide Area Network port): 1)用于连接外部网络,如互联…

Java面向对象-[封装、继承、多态、权限修饰符]

Java面向对象-封装、继承、权限修饰符 一、封装1、案例12、案例2 二、继承1、案例12、总结 三、多态1、案例 四、权限修饰符1、private2、default3、protected4、public 一、封装 1、案例1 package com.msp_oop;public class Girl {private int age;public int getAge() {ret…

【AI 高效问答系统】机器阅读理解实战内容

⭐️我叫忆_恒心,一名喜欢书写博客的研究生👨‍🎓。 如果觉得本文能帮到您,麻烦点个赞👍呗! 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧,喜欢的小伙伴给个三连支…

Git【版本控制命令】

02 【本地库操作】 1.git的结构 2.Git 远程库——代码托管中心 2.1 git工作流程 代码托管中心用于维护 Git 的远程库。包括在局域网环境下搭建的 GitLab 服务器,以及在外网环境下的 GitHub 和 Gitee (码云)。 一般工作流程如下: 1.从远程…