ACL 2024 | CoCA:自注意力的缺陷与改进

【学习】自注意力机制的改进方法、non-autoregressive sequence generation、point network 李宏毅机器学习 学习自注意力机制的改进方法、non-autoregressive sequence generation、point network 阅读详情

近年来,在大语言模型(LLM)的反复刷屏过程中,作为其内核的 Transformer 始终是绝对的主角。然而,随着业务落地的诉求逐渐强烈,有些原本不被过多关注的特性,也开始成为焦点。例如:在 Transformer 诞生之初,被视为天然具备的长度外推能力,随着相关研究的深入,人们发现,传统的 Transformer 架构在训练长度之外无一例外表现出糟糕的推理性能。

在本文中,作者从一个全新的视角,剖析了造成这种糟糕表现的可能原因,并给出了相应的解决方案。文章主要聚焦于 Self-Attention (Vaswani et al., 2017) 与 RoPE (Su et al., 2021) 的碰撞,后者是近年较多开源模型所采用的位置编码方式,例如:LLaMA (Touvron et al., 2023a) 和 Qwen (Bai et al., 2023)。

论文已被ACL 2024接收,技术细节可以查看预印版本:https://arxiv.org/abs/2309.08646

图片

引言:

在自注意力 (Vaswani et al., 2017) 诞生之初,长度外推被认为是一种理所当然的能力。然而,随着实际应用的不断验证,这在事实上是有难度的,进而产生了一系列相关的优化工作。

现有工作通常聚焦于2个方向:注意力模块和位置编码,并有一系列优秀的工作产生。如:Longformer (Beltagy et al., 2020)、StreamingLLM (Xiao et al., 2023)、LM-Infinite (Han et al., 2023)、Alibi (Press et al., 2021)、Position Interpolation (PI) (Chen et al., 2023)、NTK-aware Scaled RoPE (bloc97, 2023)、CLEX (Chen et al., 2024) 等。

本文从一个全新的视角,揭示了自注意力与位置编码之间的内在联系(尤其是如今广泛应用的RoPE)。自注意力之中,查询和键之间天然存在的夹角,将位置编码引入了意料之外的困境,尤其是对具有关键信息的邻近位置的估计,存在不符合预期的异常行为。文章以此为切入,提出了相应的解决方案。

主要贡献如下:

  • 揭示了自注意力与位置编码之间的一种异常行为

  • 提出了 Collinear Constrained Attention (CoCA) 以解决上述问题

  • 实验表明 CoCA 在长上下文处理能力比常规自注意力具有显著优势

  • 开源了一份 CoCA 高效实现,不会增加现有计算和空间复杂度

图片

Fig. 1. CoCA model architecture.

01

背景

旋转位置编码

理论完备性和简洁的实现,使 RoPE 成为了多数开源模型的选择。RoPE 通过旋转矩阵来编码每一个 Token 的位置信息,并利用查询和键的旋转复合,来实现相对位置的表达。

图片

Fig. 2. rotary position embedding.(Su et al., 2021)

异常行为

在 Transformer 模型中,核心思想是计算 query 和 key 之间的关系。注意力机制使用这些关系来决定模型应该“关注”输入序列中的哪些部分。而 RoPE 利用旋转矩阵来编码位置信息的过程中,存在以下潜在的异常行为,如图 3 所示:

图片

Fig. 3. Anomalous Behavior between RoPE and Attention Matrices.

情况(b)和(c):这是符合预期的行为,因为 query 和 key 之间注意力得分随着 m 和 n 的距离变大而逐渐减小,符合“近大远小”的先验假设。

情况(a)和(d):这是发生异常的行为,因为在最邻近的 Token 处,注意力得分预期之外的衰减,模型为了补偿这种衰减,必须在训练阶段给邻近 Token 补偿额外的增益,进而在长度外推过程中产生训练/推理的不一致。

02

CoCA实现

共线约束

基于上述观察,一个很自然的想法是让 Self-Attention 中的query和key初始夹角为0,这是论文中共线约束(Collinear Constrained Attention)的由来。

详细的推导和公式,这里不进行一一展开,读者可以阅读原文进行深入理解,这里只给出核心公式:

图片

与原始的 Self-Attention 和 RoPE 相比,上述公式表达了CoCA 的核心:即在第 m 个 query 和第 n 个 key 之间建立联系,使它们的任意一个二维切片共线,从而保证 query 和 key 初始夹角为 0 。

松弛约束

然而,上述共线约束所导出的精确解仅仅在理论上可行,实际操作过程中,由于空间复杂度的问题,并不能够实现。为此,文章中给出了一种“对偶”实现,并证明了两者的等价性。

核心公式如下:

图片

文章中证明了“对偶”实现施加以下额外约束后,等价于理论精确解:

图片

最后,文章移除该额外约束,并得到CoCA的最终实现,这是松弛约束(Slack Constraint)的由来。

03

实验结果

长文本能力

文章分别评估了重新训练和基于LLaMA微调2种方式,在PG-19 数据集 (Rae et al., 2019)和 (Mohtashami & Jaggi, 2023) 提出的密钥检索综合评估任务,均表明CoCA相比常规的Self-Attention在长文本能力上具有显著优势。

图片

Fig. 4. Experiment Results.

消融实验

文章对比了松弛约束和非松弛版本的模型,得到了一些出人意料的结果:即尽管模型结构一致,但松弛约束具有更大的上下文窗口,且不影响模型表达能力。

图片

Fig. 5.  Ablation study.

04

总结

文章提出了一种新的自注意力架构,以解决 RoPE 和原始 Self-Attention 之间的异常行为。这是首次对自注意力机制中查询和键的相对位置的深入研究,并由此发现了此前被忽视的位置编码异常。文章进一步导出了 CoCA 的松弛实现,并在大量实验上表明了该方法在长文本扩展上的优越性。同时,CoCA 与其他优化方法的兼容性,也为其未来的实用价值提供了基础。

CoCA 开源地址:https://github.com/codefuse-ai/Collinear-Constrained-Attention

参考文献

CoCA 预印版本:https://arxiv.org/abs/2309.08646

致谢

感谢来自 Moonshot AI Ltd 的苏剑林和Sangfor Technology 的黄忠强,在论文修改过程中提出的宝贵建议。

本文属于 CodeFuse 模型创新成果,想了解更多CodeFuse 详情和互动交流,欢迎加入 CodeFuse 技术交流群。

获取最新信息,你还可以扫描二维码直接加入群聊

图片

阅读原文

【论文阅读】注意力综述(自注意力) 以下内容来自:综述:图像处理中的注意力机制 - 知乎 概述 自注意力机制是注意力机制的改进,其减少了对外部信息的依赖,更擅长捕捉数据或特征的内部相关性。 在神经网络中,我们知道卷积层通过卷积核和原始特征的线性结合得到输出特征,由于卷积核通常是局部的,为了增加感受野,往往采取堆叠卷积层的方式,实际上这种处理方式并不高效。同时,计算机视觉的很多任务都是由于语义信息不足从而影响最终的性能。自注意力机制通过捕捉全局的信息来获得更大的感受野和上下文信息。 自注意力机制 (self-attention)[1. 阅读详情

相关推荐

注意力机制(attention)和自注意力机制(self-attention)

本文参考了b站博主蘅芜仙菌的视频以及文章如有侵权,联系删除。注意力机制其实是源自于人对于外部信息的处理能力。由于人每一时刻接受的信息都是无比的庞大且复杂,远远超过人脑的处理能力,因此人在处理信息的时候,会将注意力放在需要关注的信息上,对于其他无关的外部信息进行过滤,这种处理方式被称为注意力机制。针对于注意力机制的引起方式,可以分为两类,一种是非自主提示,另一种是自主提示。

m0_54180573的博客 5525

自注意力机制优化方向

在自注意力机制中,这种方法可以用于快速计算P,方法是在Q和K上应用LSH,仅对近似的元素进行计算,而非直接进行Q和K的全量计算。为了简化scaled-dot product attention的复杂度,通常会假设序列中的每一个位置并不是同等重要的,比如一个词可能跟它附近的词比较相关,距离太远的词并不一定需要关注。,计算全局自注意力(每个元素与其他每个元素相乘)会变得非常困难,因此也就有了后来的一些研究对自注意力机制的复杂度进行优化,当然这样做也可能会失去自注意力能够处理长距离上下文的优势。

hellozhxy的博客 1424

yolov5注意力机制改进

以烟火检测数据集验证不同改进措施的效果

游泳的鱼的专栏 1614

自注意力机制改良 目标检测

自注意力机制 目标检测

Tony_Starky的博客 1419

【过检测】2026调试级去虚拟化虚拟机成品

EternalBlaze调试级虚拟机是由恒烈开发的定制化VMware环境,适用于逆向工程、病毒分析等专业场景。该虚拟机基于Windows 10 1909专业版,预装Python/JDK等开发环境和逆向工具包,支持快照回溯功能。特色包括:一键去虚拟化方案、双机调试支持、驱动开发环境等。适用场景涵盖CTF竞赛、软件调试、病毒行为分析等,但不支持DX12游戏和视频盗录。使用前需按步骤关闭安全中心、安装特定VMware版本并执行去虚拟化操作。虚拟机提供基础版和逆向调试增强版两种配置,均预装必要工具链。(149字)

Heng_lie的博客 2665

AD9361数字调制入门:从IQ调制原理到动手实现第一个ASK信号(Vivado工程详解)

本文详细介绍了如何使用AD9361射频收发器实现ASK数字调制,从IQ调制原理到Vivado工程实现。通过Verilog代码示例和FPGA架构设计,帮助开发者理解纯逻辑实现数字调制解调的关键技术,特别适合软件无线电(SDR)初学者入门实践。

weixin_29158047的博客 374

注意力机制(Attention)、自注意力机制(Self Attention)和多头注意力(Multi-head Self Attention)机制详解

简单理解:多组自注意力机制并行运行,最后把结果拼接起来。

CV在读 1万+

CST微波工作室端口设置保姆级教程:从波导端口到离散端口,手把手教你搞定S参数仿真

本文提供CST微波工作室端口设置的详细教程,涵盖波导端口和离散端口的选择与配置,助力工程师精准完成S参数仿真。通过微带线滤波器案例,详解端口尺寸、阻抗设置及常见问题排查,提升仿真效率与准确性。

weixin_42570296的博客 361

自注意力机制

self-attention

静妮子的博客 1287

芒果YOLO11改进59:分类损失函数Loss篇FocalLoss:即插即用|最新改进FocalLoss损失函数,提高处理不平衡数据分类场景下的任务性能,提升YOLO11检测精度

即插即用|最新改进FocalLoss损失函数,提高处理不平衡数据分类场景下的任务性能,提升YOLO11检测精度

包括YOLOv5、YOLOv7、YOLOv8等模型改进 548

【技能】OpenClaw Memory 与 MemOS 两种 AI 记忆方案深度解析

摘要:本文对比了两种AI记忆系统方案。OpenClaw Memory是轻量级记忆助手,内置SQLite存储,支持语义搜索,部署简单成本低,适合日常对话记忆需求。MemOS是自学习系统,通过Neo4j和Qdrant实现技能自进化,但需部署4套服务,门槛高成本大。建议普通用户选择OpenClaw Memory,技术玩家可逐步尝试MemOS。两种方案各具优势,需根据实际需求选择。

海兰 195

解码Transformer: 自注意力机制和TA的优化策略

注意力机制自从2014年被正式提出后,逐渐成为了NLP中应用最广泛的设计。借助简单而又变幻莫测的Attention机制,一系列横扫SOTA的模型被提出。自注意力机制(Self-Attention),允许序列中的标记相互交互,并计算输入和输出序列的表示,成为了大语言模型主流架构Transformer的关键组成部分。Transformer 结构中,自注意力机制的时间和存储复杂度与序列的长度呈平方的关系,因此占用了大量的计算设备内存和并消耗大量计算资源。因此,如何优化自注意力机制的时空复杂度、 增强计算效率是大语

2401_82452722的博客 1872

【LLC快速上手系列】LLC轻载时:开关频率 + 死区时间 联合优化!

轻载优化,频率别飞天,死区要有耐心。两手一起抓,效率高到笑。😎。

weixin_43199439的博客 1182

2024最全注意力机制模型全家桶!永久更新!

关于注意力机制(Attention)的研究与应用越来越多,这并不是空穴来风。可以说,注意力机制就像人的大脑皮层,让我们的模型更加智能化。 但是,这么多模型到底该怎么选择?今天小当家推出最全注意力机制全家桶,共10种结合注意力机制的模型,每种模型可以进行回归预测、时间序列预测,并且已经在真实数据上得到验证,代码注释也是十分清楚,适合新手!!!

m0_61878377的博客 2704

vue3中使用antv-S2表格(基础功能版)

表格的数值默认会渲染排序 icon, 可以配置 showDefaultHeaderActionIcon关闭。当配置为对象时,always 控制是否在子维度不足 2 个时始终展示小计,默认不展示。首先创建一个vue3+vite+ts项目,可以查看下面相关文章,只看第一条即可。可以调整行宽、列宽、列排序、单个单元格详情展示、选中某列、某行等基本功能。可以通过上面设置的SUM函数自动计算出数值,也可以自定义累加函数。配置自定义方法优先级大于配置聚合方式,即配置。1、在项目中安装(npm/pnpm都可以)

蜗牛~~ 2210

15、运行语音识别应用:从Mac到微控制器的部署指南

本文详细介绍了如何在Mac上运行语音识别应用,并将其部署到Arduino Nano 33 BLE Sense和SparkFun Edge等微控制器设备上的完整流程。内容涵盖应用构建、设备特定的音频与输出实现、部署步骤、常见问题解决方案及进一步优化建议。通过本指南,开发者可快速实现基于TensorFlow Lite的嵌入式语音识别系统,并根据需求进行自定义修改与功能扩展。

l3m4n的博客 57

白嫖!平替ChatGPT,高效阅读文档,支持pdf上传!

大家好,我是阿潘,现在技术更新的太快了,每天arxiv上面更新的论文太多了看不过来,同时还有一大堆公众号、知识星球、知乎等等,太多需要关注的信息了,力不从心啊。但是又怕漏掉一些有用的信息因此今天跟大家分享两个网站 (现在还可以白嫖先用起来)1、高效阅读最新论文的网站,不漏掉最新成果2、高效阅读文档的网站,快速筛选提取有用信息 1、https://papers.cool/ 作者:苏剑林作者的初心:...

zero的博客 1764

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

2025创新idea!线性注意力机制狂发顶会!

ALiBi在训练时使用的输入序列长度为1024,但在测试时能够处理长度为2048的序列,并且在困惑度上与训练长度为2048的正弦位置编码模型相当,同时训练速度提升11%,内存使用减少11%。在训练时,Griffin与Transformer的硬件效率相当,且在推理时具有更低的延迟和更高的吞吐量。在训练时使用的token数量比Llama-2少6倍的情况下,Griffin匹配了Llama-2的性能。通过增强的线性注意力,模型能够支持更长的序列长度(从8K扩展到32K),同时显著降低延迟和内存使用。

d22800的博客 1912

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

一文搞定自注意力机制(Self-Attention)

1 Self-Attention的概念2 Self-Attention的原理3 Self-Attention的作用4 Self-Attention的问题。

markconca的博客 17万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【Transformer系列(2)】注意力机制、自注意力机制、多头注意力机制、通道注意力机制、空间注意力机制超详细讲解

一文带你读懂注意力机制、自注意力机制、多头注意力机制、通道注意力机制、空间注意力机制,超详细的讲解,小白也能看得懂!

路人贾的博客 17万+

学习笔记1——常用的注意力机制(即插即用)

常用的即插即用的注意力机制原理及代码

daige123的博客 2万+

注意力机制

Attention是从大量信息中有筛选出少量重要信息,并聚焦到这些重要信息上,忽略大多不重要的信息。权重越大越聚焦于其对应的Value值上,即权重代表了信息的重要性,而`Value`是其对应的信息。

weixin_45767204的博客 692

CVPR 2024 即插即用! CA:新注意力机制,助力分类 检测 分割涨点!

与Non-local/self-attention的方法不同,CA方法考虑了一种更有效的方法来捕获位置信息和通道关系,以增强Mobile Network的特征表示。这2种转换也允许注意力模块捕捉到沿着一个空间方向的长期依赖关系,并保存沿着另一个空间方向的精确位置信息,这有助于网络更准确地定位感兴趣的目标。然而,它只考虑通过建模通道关系来重新衡量每个通道的重要性,而忽略了位置信息,但是位置信息对于生成空间选择性attention maps是很重要的。是2个线性变换,可以通过学习来捕捉每个通道的重要性。

2401_83947398的博客 4787

YOLO11 改进、魔改|低分辨率自注意力机制LRSA ,提取全局上下文建模与局部细节,提升小目标、密集小目标的检测能力

本文提出低分辨率自注意力机制(LRSA)来解决计算机视觉任务中全局建模与计算效率的矛盾。LRSA通过将自注意力计算限制在固定低分辨率空间(如16×16),显著降低计算复杂度,同时配合高分辨率局部卷积保留细节信息。在目标检测中,LRSA能高效捕捉物体间全局关系并提升定位精度;在语义分割中,可增强上下文理解且保持边缘准确性。研究还展示了将LRSA集成到YOLOv11模型中的具体实现方法,包括核心代码结构、模块导入和配置文件修改等步骤,为平衡视觉任务精度与效率提供了有效解决方案。

qq_64693987的博客 2326

自注意机制和交叉注意力的区别和优劣

等方面进行详细对比分析。

具身机器人和通用AI 3886

顶会最爱的注意力机制,我整理了2025最新魔改方案,高效涨点!

在人工智能领域,注意力机制模拟人类“选择性关注”的认知能力,使模型能够聚焦关键信息,从而提升任务表现,在计算机视觉、自然语言处理等方向展现出巨大潜力。传统CNN与RNN在建模长距离依赖方面存在局限,而注意力机制通过“动态权重分配”有效增强特征表达能力,成为Transformer及其变体的核心思想。当前研究正致力于解决其计算效率、局部与全局信息平衡、多模态融合等挑战,推动注意力机制向更轻量、更具泛化能力的方向发展。理解其内在逻辑,有助于把握深度学习的发展脉络,并加速实际应用落地。

2822
上一篇: 2024年5月90篇代码大模型论文最全整理
下一篇: ACL 2024|D2LLM:将Causal LLM改造成向量搜索模型的黑科技
CodeFuse
博客等级 码龄3年 630粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值