论文标题

SAS: Simulated Attention Score

论文地址

https://arxiv.org/pdf/2507.07694

代码

见论文附录

作者背景

摩根士丹利,斯坦福大学,微软研究院,新加坡国立大学,得克萨斯大学奥斯汀分校,香港大学

动机

多头注意力是 Transformer 的核心组件,它通过引入多组 QKV 投影来捕获不同的特征子空间,从而在机器翻译、问答等任务中取得巨大成功。研究表明,注意力头的数量对 Transformer 性能至关重要:在保证每个头的隐藏维度充分大的前提下,注意力头数越多可以使模型效果越好。但问题在于,直接增加头数或维度往往伴随着模型参数量和计算开销的剧增,这在训练和部署中代价高昂

在这里插入图片描述

目前也有一些注意力架构旨在提高计算效率,例如共享部分 K 和 V 的 MQA、GQA;使用矩阵分解的 MLA、MFA、TPA 等。但这些方法主要关注降低内存/计算成本,而非提升注意力的表达能力

于是作者希望在不显著增加参数的前提下,设计一种新的注意力架构,实现近似于使用了更多注意力头和更高每头维度的性能提升

本文方法

本文提出 SAS(Simulated Attention Score,模拟注意力分数),核心思想是在注意力计算中引入额外的映射层,将低维的头表示投射到更高维空间,以此“虚拟地”增大注意力头数和每头的隐藏维度

一、扩展注意力头

对于查询Q,其特征维度为 [B, T, H, D],分别表示 batch_size,序列长度,头数和隐藏维度。为了扩充 H,需要把其他维度拉平,得到张量 Q_0,维度为 [B * T * D, H] ;然后使用一个 H * H’ 的线性变换得到 Q_1,维度为 [B * T * D, H’],其中 H’ > H;Q_1 过一个 ReLU 引入非线性;最后再过一个 H’ * H’ 的线性层,并加上 Q_1 的残差连接

在这里插入图片描述

于是我们获得了更多的注意力头,其中残差连接的引入可以稳定训练;值得注意的是,原始头数 H 和扩展后的头数 H’ 都远小于每头的特征维度 D,所以这个两层 MLP 的参数开销相对整模型来说可以忽略不计

除了使用 MLP 来扩展维度,作者还尝试了卷积方案。具体地,将查询 Q 的维度整理成 [B * T, H, D],类似于多通道特征图,然后使用卷积变换将 H 扩展成 H’,同样地,H’ > H,最后再过第二层卷积以及残差连接

在这里插入图片描述

类似地,在 K、V 中都应用上述扩展流程

二、扩展注意力维度

直觉上,每个注意力头内部特征维度 D 越大,其能够捕获的子空间信息越丰富。因此作者进一步在 Q 和 K 上也引入了类似的维度扩展映射。这里之所以不对 V 进行扩展,是因为 V

直接决定了注意力模块的输出张量隐藏维度,扩大 V 的每头维度到 D 会导致后续前馈层的参数量大幅增加,违背了不显著增加计算量的初衷

在这里插入图片描述

三、注意力聚合

在标准多头注意力中,会将所有头的输出向量拼接,再通过一个输出投影矩阵 O 映射回模型的隐藏维度。然而,由于 SAS 对注意力头数进行了扩增,若仍按传统方式拼接势必导致输出维度变大,进而导致 O 的参数量大大增加(H * hidden 变为 H’ * hidden)。为此,作者提出了参数高效注意力聚合机制,旨在不增加输出层参数规模的情况下完成对多头输出的整合

实现过程非常简单:假设注意力头数扩展了 r 倍,即 r * H = H’,那么便把所有头划分成 r 组,每组都按照原本的计算流程与 O 相乘,得到 r 组输出结果,最后取平均作为注意力模块的最终输出传向前馈层

在这里插入图片描述

实验结果

作者在多种基准任务和数据集上对SAS进行了验证,包括语言模型预训练及下游任务评估,全面展示了SAS在准确率和效率方面的优势

一、预训练效果

下图对比了SAS与标准MHA、MQA、GQA、MLA、TPA等方法在ArXiv和Books3数据集上的表现。结果表明,无论是短序列训练(长度512)还是长序列训练(长度1024),SAS均取得了最低的验证困惑度

在这里插入图片描述

除了取得更好的性能,SAS还加速了模型的收敛。作者报告,在 Books3 数据集、序列长度512的训练中,MHA模型在5万步时达到29.86的验证困惑度,而SAS模型在3万步时就达到了相近的30.49,即 SAS 可以节约 40% 左右的计算资源

此外,作者还在更大的训练长度、更大的模型尺寸上做了验证,结果表明相比于其他注意力机制 SAS 具备稳定的优势

二、下游任务效果

作者评测了在多个下游任务基准(ARC、HellaSwag、PIQA、ScIQ、SocialIQA、WinoGrande)上 SAS 与其他注意力模型的效果,可见在多种参数量、训练数据量的实验设置下,SAS 大部分情况下都表现出了最优性能

在这里插入图片描述

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

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

相关文章

零基础|宝塔面板|frp内网穿透|esp32cam远程访问|微信小程序

1.准备好阿里云服务器和宝塔面板2.安装frp服务端3.测试(密码账号在详情里面)4.配置客户端#一、没有域名情况下 [common] server_addr #公网ip地址,vps server_port 7000 服务的bind_port token 12121212 [httpname] type tcp # 没有域名情况下使用 tcp local_i…

Spring Boot整合MyBatis+MySQL+Redis单表CRUD教程

Spring Boot整合MyBatisMySQLRedis单表CRUD教程 环境准备 1. Redis安装(Windows) # 下载Redis for Windows # 访问: https://github.com/tporadowski/redis/releases # 下载Redis-x64-5.0.14.1.msi并安装# 启动Redis服务 redis-server# 测试连接 redis-c…

linux学习第30天(线程同步和锁)

线程同步协同步调,对公共区域数据按序访问。防止数据混乱,产生与时间有关的错误。数据混乱的原因资源共享(独享资源则不会)调度随机(意味着数据访问会出现竞争)线程间缺乏必要同步机制锁的使用建议锁!对公共数据进行保护。所有线程【应该】在…

JavaScript中的系统对话框:alert、confirm、prompt

JavaScript中的系统对话框:alert、confirm、prompt 在Web开发的世界里,JavaScript始终扮演着“桥梁”的角色——它连接用户与网页,让静态的页面焕发活力。而在这座桥梁上,系统对话框(System Dialogs)是最基…

圆幂定理深度探究——奥数专题讲义

圆幂定理深度探究——奥数专题讲义 开篇语:几何中的"隐藏等式" 在平面几何的星空中,圆与直线的交点仿佛散落的珍珠,而连接这些珍珠的线段之间,藏着一组令人惊叹的等量关系。当我们用直尺测量、用逻辑推导时,…

一文看懂显示接口:HDMI / DP / VGA / USB-C 有什么区别?怎么选?

刚买的新显示器,插上线却发现画面糊成马赛克?游戏打到关键时刻突然黑屏?4K电影看着看着就卡顿?别急!这些问题很可能都是"接口没选对"惹的祸!今天我们就来彻底搞懂HDMI、DP、VGA、USB-C这些常见的…

【ARM嵌入式汇编基础】- 操作系统基础(二)

操作系统基础(二) 文章目录 操作系统基础(二)6、线程7、进程内存管理8、内存页9、内存保护10、匿名内存和内存映射内存11、内存映射文件和模块6、线程 程序首次启动时,会创建一个新进程,并为该程序分配一个线程。该初始线程负责初始化进程并最终调用程序中的主函数。多线…

C#调用Matlab生成的DLL

C#调用Matlab生成的DLL 1.Matlab生成DLL文件1.1准备脚本文件1.2.输出DLL文件2.Winform项目中调用DLL2.1.创建Winform项目2.2.添加引用2.3.调用DLL2.3.1. 方法12.3.2. 方法22.4.配置CPU3.运行测试4.缺点1.Matlab生成DLL文件 1.1准备脚本文件 在Matlab环境下创建脚本文件calcul…

Julia爬取数据能力及应用场景

Julia 是一种高性能编程语言,特别适合数值计算和数据分析。然而,关于数据爬取(即网络爬虫)方面,我们需要明确以下几点:虽然它是一门通用编程语言,但它的强项不在于网络爬取(Web Scra…

Java03 二维数组|方法

一、声明数组和初始化(掌握)数据类型[] 数组名 ; 数据类型 数组名[] ;静态初始化数据类型[] 数组名 {元素1,元素2,元素3};动态初始化数据类型[] 数组名 new 数据类型[5]; 数组名[0] 元素1;二、数组的内存结构(掌握)package…

1. JVM介绍和运行流程

1. jvm是什么JVM(Java Virtual Machine)是 Java 程序的运行环境,它是 Java 技术的核心组成部分,负责执行编译后的 Java 字节码(.class文件)。jvm 说白了就是虚拟机,一个专门运行java字节码文件的…

Spring Cloud Gateway 的路由和断言是什么关系?

1. 基本概念 路由是 Spring Cloud Gateway 的基本组成单元。它定义了从客户端接收到的请求应该被转发到哪个目标服务。一个完整的路由通常包含以下几个要素: ID (id):路由的唯一标识符。目标 URI (uri):请求最终要被转发到的后端服务地址。断…

线程属性设置全攻略

目录 一、线程属性的概念 二、线程属性的核心函数 1. 初始化与销毁线程属性对象 2. 常用属性设置函数 三、线程属性的设置示例 1. 设置线程为分离状态 2. 设置线程栈大小 3. 设置线程调度策略和优先级 四、线程属性的关键注意事项 1. 分离状态(Detached S…

苍穹外卖-day06

苍穹外卖-day06 课程内容 HttpClient微信小程序开发微信登录导入商品浏览功能代码 学习目标 能够使用HttpClient发送HTTP请求并解析响应结果 了解微信小程序开发过程 掌握微信登录的流程并实现功能代码 了解商品浏览功能需求 功能实现:微信登录、商品浏览 1. H…

安卓定制功能

未解决的定制功能 1.创建自定义分区 2.通过服务启动应用进程 3.应用白名单 4.网络白名单 5.应用锁 6.默认launcher 7.多主页动态切换 8.禁止状态栏下拉/锁屏页面禁止下拉状态栏(两种一起) 9.导航栏动态打开关闭 10.固件默认是手势还是导航栏 11.状态栏动…

【项目】GraphRAG基于知识图谱的检索增强技术-实战入门

GraphRAG—基于知识图谱的检索增强技术(一)GraphRAG入门介绍(二)GraphRAG基本原理回顾(三)GraphRAG运行流程3.1 索引(Indexing)过程3.2 查询(Query)过程3.3 P…

Zookeeper添加SASL安全认证 修复方案

#作者:任少近 文章目录1修复背景2 修复方案说明3 配置流程3.1停止zookeeper服务3.2Zookeeper添加SASL参数3.3配置jaas密码文件3.4 添加启动参数3.5启动zookeeper服务3.6访问测试4 Kafka连接zookeeper服务端配置4.1未配置身份认证4.2停止kafka服务4.3配置身份认证4.4…

AI进化论07:第二次AI寒冬——AI“改头换面”,从“AI”变成“机器学习”

书接上回,上回咱们聊了神经网络在第一次寒冬中的“蛰伏”与“萌动”。但别高兴太早,AI很快就迎来了它的第二次“寒冬”(大概从20世纪80年代末到90年代中期)。这次寒冬啊,比第一次还“冷”,还“漫长”。AI这…

基于开源AI智能名片链动2+1模式与S2B2C商城小程序的渠道选择策略研究

摘要:在数字化商业环境下,品牌与产品的渠道选择对其市场推广和运营成功至关重要。本文聚焦于如何依据自身品牌和产品特性,结合开源AI智能名片链动21模式与S2B2C商城小程序,运用科学的渠道选择方法,慎重挑选1 - 2个适宜…

开源 C# .net mvc 开发(八)IIS Express轻量化Web服务器的配置和使用

文章的目的为了记录.net mvc学习的经历。本职为嵌入式软件开发,公司安排开发文件系统,临时进行学习开发,系统上线3年未出没有大问题。开发流程和要点有些记忆模糊,赶紧记录,防止忘记。 相关链接: 开源 C# .net mvc 开…