当前位置: 首页 > news >正文

【VLM】Gated Attention, Gated DeltaNet

Gated AttentionGated DeltaNet是近期在长文本大模型(特别是探索O(N)O(N)O(N)线性复杂度的高效序列模型)中非常核心的架构创新。它们分别解决了传统 Transformer 在扩展上下文时面临的注意力坍缩(Attention Sinks)线性注意力记忆冲突(Memory Collisions)问题。

以下是这两种架构的数学本质及其相较于传统方法的代差级升级:

一、 Gated Attention:为注意力加上“物理阀门”

1. 架构形态

传统的 Self-Attention 计算完注意力矩阵并与 Value 相乘后,直接将结果输出到下一层。而 Gated Attention 在标准注意力的基础上,引入了一个由输入状态计算得出的乘法门控信号(Multiplicative Gate)

其核心计算公式如下:

Y=Softmax(QKTd)VY = \text{Softmax}\left(\frac{QK^T}{\sqrt{d}}\right)VY=Softmax(dQKT)V

Y′=Y⊙σ(XWθ)Y' = Y \odot \sigma(XW_\theta)Y=Yσ(XWθ)

其中,XXX是输入隐藏状态,σ\sigmaσ通常是 Sigmoid 函数(输出000111之间的值),⊙\odot是逐元素相乘(Element-wise multiplication)。

2. 传统方法的痛点与 Gated Attention 的升级
  • 传统痛点(Attention Sinks):在传统 Transformer 中,Softmax 的特性要求每一行的注意力权重之和必须为 1。当遇到一些无关紧要的 Token 时,模型无处安放这些权重,往往只能强行“倾倒”在序列开头的某些 Token 上(如[BOS]),这会导致这些 Token 出现极端的激活值(Massive Activations),引发训练和量化时的数值不稳定。
  • 架构升级:Gated Attention 相当于加了一个“物理阀门”。由于是乘法门控,如果当前 Head 的注意力输出全是噪声,门控网络可以直接输出接近000的值将其彻底“归零”(截断信息流),而不需要强行分配权重。这极大地提升了模型在极长上下文训练中的数值稳定性和去噪能力。

Attention Sink(注意力汇聚 / 注意力水槽)是近年来在大语言模型(特别是基于 Transformer 架构的模型)研究中发现的一个非常有趣且关键的现象。

打个形象的比方:它就像是模型内部的一个“垃圾桶”“排水槽”。

1. 现象是什么?

研究人员在观察 LLM 生成文本时发现,无论当前在生成什么词,模型都会把极其不成比例的注意力权重(Attention Weights)分配给输入序列的最开头的几个 Token(通常是第一个 Token,比如<s>[BOS])。

即便这第一个 Token 对于当前正在生成的词没有任何语义上的联系,它依然会吸收掉大量的注意力。这个最初始的 Token 就被称为Attention Sink

2. 为什么会产生 Attention Sink?(数学本质)

这完全是被 Transformer 中的Softmax 函数“逼”出来的。

在标准的注意力机制中,注意力分数的计算公式包含一个 Softmax 操作:

Attention(Q,K,V)=Softmax(QKTd)V \text{Attention}(Q, K, V) = \text{Softmax}\left(\frac{QK^T}{\sqrt{d}}\right)VAttention(Q,K,V)=Softmax(dQKT)V

Softmax 有一个铁律:每一行输出的权重之和必须等于 1

∑jWeighti,j=1 \sum_{j} \text{Weight}_{i, j} = 1jWeighti,j=1

在实际推理中,当模型预测下一个词时,它可能环顾四周,发现前面的所有历史上下文都不太重要(即当前的 Query 找不到特别匹配的 Key)。
但是,由于 Softmax 的铁律,它必须把这 “1” 的权重分配出去。它不能输出全 0。

久而久之,在预训练的过程中,模型学到了一个“作弊”技巧:把序列开头的第一个 Token(它对所有后续 Token 都是可见的)当成一个安全的垃圾桶。当模型不需要关注任何有意义的历史信息时,它就把多余的注意力权重全部倾倒在这个初始 Token 上。

3. 这个发现为什么极其重要?(工业界的影响)

这个现象的发现,直接解决了一个长期困扰学术界的难题:如何让 LLM 处理无限长度的文本而不撑爆显存?

在过去,为了节省显存,人们尝试过滑动窗口(Sliding Window)机制——即只保留最近的 N 个 Token 的 KV Cache,把更早的 Token 丢弃。但结果是灾难性的:一旦把最开头的几个 Token 移出窗口,模型的语言生成能力会瞬间崩溃,开始胡言乱语。

原因就在于你把模型的“垃圾桶”给扔了!没有了 Attention Sink,模型无处安放那些无用的注意力权重,被迫把它们分配给最近的 Token,导致语义彻底混乱。

解决方案(StreamingLLM 的诞生):
MIT 等机构的研究人员基于这个原理提出了 StreamingLLM 框架。做法极其简单粗暴却有效:
在推理时,永远保留最开头的 4 个 Token(即 Attention Sinks)的 KV Cache,再加上最近的一小段滑动窗口。
就凭这一招,就可以让 Llama 等模型在有限的显存下,稳定生成几百万甚至上千万长度的文本,且困惑度(Perplexity)完全不崩。


二、 Gated DeltaNet:兼具 RNN 速度与 Transformer 精度的“手术刀”

Gated DeltaNet 是一种线性注意力(Linear Attention)变体,它将 Mamba 类模型的门控衰减(Gating)与 DeltaNet 的增量更新规则(Delta Rule)完美结合,目的是彻底消除O(N2)O(N^2)O(N2)的 KV Cache 瓶颈。

1. 架构形态

在 Gated DeltaNet 中,序列信息不再以KKKVVV的形式按长度堆叠,而是被压缩进一个固定大小的矩阵状态(Memory State)StS_tSt中,随时间步ttt进行 RNN 式的递归更新。

其核心状态更新公式为:

St=αtSt−1(I−βtktktT)+βtvtktTS_t = \alpha_t S_{t-1}(I - \beta_t k_t k_t^T) + \beta_t v_t k_t^TSt=αtSt1(IβtktktT)+βtvtktT

  • αt∈(0,1)\alpha_t \in (0, 1)αt(0,1)遗忘门(Decay Gate):由当前输入动态计算,控制全局记忆的留存度。
  • βt\beta_tβt更新门(Update Gate):控制新知识写入的强度。
  • (I−βtktktT)(I - \beta_t k_t k_t^T)(IβtktktT)Householder 变换矩阵:其几何意义是在状态空间中,将与当前ktk_tkt相关的子空间直接“正交化”清空。
2. 传统方法的痛点与 Gated DeltaNet 的升级
  • 传统线性注意力的痛点(记忆冲突):早期的线性注意力(如 Additive Linear Attention)状态更新规则是简单的相加:St=St−1+vtktTS_t = S_{t-1} + v_t k_t^TSt=St1+vtktT。这导致模型只能像往黑板上不断写字一样累积信息。当遇到相同或相似的 Key 时,新旧 Value 会混杂在一起(Memory Collisions),导致模型在做“大海捞针”(Needle-in-a-Haystack)等精确检索任务时一塌糊涂。
  • Gated DeltaNet 的两大核心升级:
  1. Surgical Eraser(手术刀式的精确擦除):得益于 Delta Rule(即上述公式中的 Householder 变换),模型在写入新知识vtv_tvt之前,会先去St−1S_{t-1}St1精准定位并擦除旧的、ktk_tkt对应的记忆。这不再是简单的“相加”,而是“修改/覆写”,使得固定大小的隐藏状态拥有了极其惊人的容量和表达能力。
  2. Global Reset(全局状态重置):得益于 Mamba 风格的门控αt\alpha_tαt,当模型检测到话题发生剧烈切换(比如输入了一篇全新的文章)时,αt\alpha_tαt会迅速趋近于000,相当于瞬间擦除整块黑板,避免旧上下文对新任务产生“幽灵干扰”。

并且,在工程实现上,Gated DeltaNet 可以通过 WY Representation 将串行的 RNN 计算转化为 Chunkwise 并行(分块矩阵乘法 GEMM),从而充分打满 GPU 的算力,实现极高的训练吞吐量。


三、 工业界如何组合它们(Hybrid Architecture)

在将研究推向工业级 VLM 或超大参数模型时(如近期的 Qwen 系列的探索分支、Kimi 等),业界发现纯粹的线性注意力依然会因为“压缩瓶颈”在复杂逻辑推理上略逊一筹。

因此,当前最前沿的工程解法是混合架构(Hybrid Architecture)

  • 3:1 比例交替:比如每 4 个 Transformer Block 中,有 3 层使用Gated DeltaNet(用于以O(N)O(N)O(N)的代价极速处理和压缩海量历史 Context,消除绝大部分 KV Cache 显存占用)。
  • 第 4 层使用Gated Attention(保留精确的 Token 级全局感受野,确保复杂推理的准确性)。

这种组合既做到了推理速度和显存的“线性红利”,又保住了大模型强大的上下文学习(ICL)与推理下限。

http://www.jsqmd.com/news/823145/

相关文章:

  • Driver Store Explorer:彻底清理Windows驱动存储,让你的系统运行如新的专业工具
  • EVK-M8N-0,高精度GNSS评估套件
  • 终极指南:如何在Windows上使用gInk免费屏幕画笔工具快速提升演示效率
  • TypeScript 学习笔记
  • 蓝桥杯单片机项目实战:用AT24C02 EEPROM给DS1302时钟做个‘掉电记忆’(附完整代码)
  • Proe三维模型转CAD二维图,手把手教你搞定图纸加工(附常见问题修复)
  • 常用图像绘制在线实验闯关
  • Ganache 快速启动与 Truffle 项目集成实战
  • 别再手动复制图片了!WPF图像资源‘生成操作’选Resource还是Content?一次讲清区别与实战选择
  • 对比直接购买与通过taotoken的tokenplan套餐成本差异分析
  • 内网服务也安全:手把手教你用mkcert为NAS、树莓派和智能家居设备签发HTTPS证书
  • 骁龙X60如何通过系统级协同设计,定义5G旗舰体验
  • 【限时开源】ElevenLabs多角色对话编排引擎v2.3:支持动态角色注入、跨话轮情感继承与实时唇形同步(仅开放48小时)
  • 别再死记硬背参数了!深入理解Halcon形状匹配的‘金字塔’与‘对比度’:以create_shape_model为例
  • 2026年内蒙古企业推广公司哪家好 适配中小微与大型企业的AI获客 覆盖蒙宁全域 - 深度智识库
  • 逆向分析入门:如何用VMOS Pro+HttpCanary安全抓取安卓App数据(以快手极速版为例)
  • MATLAB实战:手把手教你用iradon函数实现CT图像重构(附完整代码与避坑指南)
  • 别再手动刷新了!用Nginx给本地Nacos集群做个负载均衡,5分钟搞定
  • 低代码平台表单设计器 unione form editor 组件介绍--复选组件
  • 3步掌握Cats Blender插件:从模型导入到VRChat优化的完整指南
  • 高效构建面试题库系统:React+Node全栈技术实战指南
  • 工业自动化中的电路隔离技术原理与应用
  • 从零到一:在Quartus II中构建高效Testbench并驱动Modelsim精准仿真
  • 重庆注册公司代办机构口碑榜|本地正规工商服务整理 - 果果1998
  • 基于Jetpack Compose与OpenAI API的Android ChatGPT客户端开发实践
  • 高级网页设计技能体系构建:从设计系统到数据驱动的全链路能力
  • 告别命令行:InfluxDB Studio如何让时间序列数据管理变得像聊天一样简单
  • 3步实现高效无水印下载:开源抖音下载器终极指南
  • 从Figma到Midjourney的极简工作流革命:1套可复用的“视觉降噪SOP”(含内部团队验证版Checklist)
  • 前端性能优化实战:除了虚拟滚动,我们还能为el-table做些什么?(懒加载、分页策略与代码分割)