Token Statistics Transformer:线性注意力革命,重新定义Transformer效率天花板
“TOKEN STATISTICS TRANSFORMER: LINEAR-TIME ATTENTION VIA VARIATIONAL RATE REDUCTION” 由Ziyang Wu等人撰写。文章提出一种新型Transformer注意力算子,通过对最大编码率降低( M C R 2 MCR^{2} MCR2)目标的变分形式进行展开优化得到,其计算复杂度与令牌数量呈线性关系,在保证性能的同时显著提高计算效率。
也因此 ToST 也作为 Spotlight 论文,入选了 ICLR 2025 大会。
下面是对本篇论文的重点总结。
-
研究背景
-
Transformer的问题:Transformer架构凭借注意力机制在多领域表现出色,但传统自注意力算子计算复杂度与令牌数量呈二次方关系,限制了模型扩展。
-
现有优化方法:已有方法如分块计算、滑动窗口注意力、低秩投影和Nystrom扩展等,试图解决自注意力的计算效率问题。
-
本文方法:基于“白盒”架构设计,从全新视角推导高效注意力算子,避免计算令牌间成对相似性。
-
-
理论基础
-
最大编码率降低表示学习:通过 M C R 2 MCR^{2} MCR2目标寻找合适的数据表示,其由扩展项和压缩项组成,分别促进特征扩展和组内压缩。
-
白盒深度网络构建:通过算法展开设计网络架构,将网络层操作视为优化目标函数的增量更新步骤。
-
-
Token Statistics Transformer(TOST)
-
编码率的新变分形式:提出基于矩阵谱的凹函数的 M C R 2 MCR^{2} MCR2目标变分形式,可通过计算矩阵乘积对角线的标量函数来上界大矩阵的函数值。
-
通过变分形式展开的高效架构:对变分目标进行梯度下降得到Token Statistics Self - Attention(TSSA)算子,其基于输入令牌特征的经验二阶矩统计进行低秩投影,而非计算令牌间成对相似性,计算和内存复杂度为线性。
-
实际实现考虑因素:实际中不强制U矩阵正交,通过寻找低维正交基降低其列数,并基于高斯混合模型估计组隶属矩阵Π,用TSSA算子构建TOST架构。
-
-
实验结果
-
TSSA算子的逐层分析:TOST注意力层能优化设计目标,且成员分配矩阵Π可对前景图像补丁聚类。
-
真实视觉数据集评估:TOST在ImageNet - 1k和迁移学习任务上性能与其他架构相当,但效率更高、参数更少,注意力图可视化显示其能自主学习分割和聚类。
-
语言和长序列任务评估:在长序列建模任务中,TOST性能优于多数基于Transformer的方法;在因果语言建模任务中,性能随模型规模提升,且计算效率更高。
-
-
结论与展望:提出的TOST架构通过新的注意力算子实现线性时间复杂度,性能与传统Transformer相当。未来需在大规模应用中验证其准确性,并设计更有效的MLP块替代方案。
总结完毕,下面我们一起来探究这篇论文所研究的 ToST 到底是怎么回事,为什么说它是线性注意力革命,能重新定义 Transformer 效率天花板,我们先来看一张图。

这张图表示 ToST 架构对比传统Transformer,可以在图中看出:
ToST在4096 token长度下,内存消耗仅为ViT的1/20(图源:论文)
一、注意力机制:从暴力美学到数学之美
2017年,Transformer以自注意力机制横扫NLP领域。其核心逻辑简单粗暴:让每个token与其他所有token对话。这种"全连接"式的设计虽然强大,却埋下了一个定时炸弹——当处理4096个token时,传统Transformer需要计算1600万次相似度!
ToST的突破在于发现了一个数学真理:无需两两对话,统计特征足以刻画全局关系。这就像从逐一采访每个公民转向分析人口普查数据,效率实现质的飞跃。
# 传统注意力计算(O(n²)复杂度)
def standard_attention(Q, K, V):scores = torch.matmul(Q, K.transpose(-2, -1)) # 两两相似度矩阵attn = torch.softmax(scores, dim=-1)return torch.matmul(attn, V)# ToST的统计注意力(O(n)复杂度)
def TSSA(X, heads=8):b, n, d = X.shapeproj = nn.Linear(d, heads*d)(X) # 投影到多头空间proj = proj.view(b, n, heads, d//heads).transpose(1,2)# 统计量计算(核心创新)stats = proj.pow(2).mean(dim=1, keepdim=True) # 二阶矩统计gate = 1 / (1 + stats) # 基于统计量的门控return (proj * gate).transpose(1,2).reshape(b, n, d)
二、ToST核心原理:用数学公式重塑注意力
1. 最大编码率缩减(MCR²)目标
Δ R = 1 2 log det ( I + d ϵ 2 Z Z ⊤ ) − 1 2 ∑ k = 1 K n k n log det ( I + d ϵ 2 Z k Z k ⊤ ) \Delta R = \frac{1}{2}\log\det(\mathbf{I}+\frac{d}{\epsilon^2}\mathbf{Z}\mathbf{Z}^\top) - \frac{1}{2}\sum_{k=1}^K \frac{n_k}{n}\log\det(\mathbf{I}+\frac{d}{\epsilon^2}\mathbf{Z}_k\mathbf{Z}_k^\top) ΔR=21logdet(I+ϵ2dZZ⊤)−21k=1∑Knnklogdet(I+ϵ2dZkZk⊤)
这个看似复杂的公式其实在做两件事:
- 全局扩张:让所有token特征尽可能分散(第一项最大化)
- 局部压缩:让同类token特征聚集(第二项最小化)

2. 变分编码率缩减(VRR)
通过引入正交投影矩阵 U k \mathbf{U}_k Uk,将原问题转化为:
R var = ∑ k = 1 K ∑ i = 1 d f ( ( U k ⊤ Z k ) i i 2 ) R^{\text{var}} = \sum_{k=1}^K \sum_{i=1}^d f\left( (\mathbf{U}_k^\top \mathbf{Z}_k)_{ii}^2 \right) Rvar=k=1∑Ki=1∑df((Uk⊤Zk)ii2)
其中 f ( x ) = log ( 1 + x ) f(x)=\log(1+x) f(x)=log(1+x)。这使得每个注意力头只需维护一个低维统计量。

三步实现线性复杂度:
- 特征投影:将d维特征映射到p维子空间(p << d)
- 统计门控:计算投影特征的二阶矩,生成抑制门控
- 残差连接:通过门控筛选重要特征方向
class TSSA(nn.Module):def __init__(self, dim, heads=8, dim_head=64):super().__init__()self.heads = headsself.scale = dim_head ** -0.5# 投影矩阵(学习不同统计视角)self.to_qkv = nn.Linear(dim, dim_head * heads * 3) # 动态门控生成self.gate = nn.Sequential(nn.Linear(dim_head, 1),nn.Sigmoid())def forward(self, x):b, n, _ = x.shapeqkv = self.to_qkv(x).chunk(3, dim=-1)# 多头投影q, k, v = map(lambda t: t.view(b, n, self.heads, -1).transpose(1,2), qkv)# 统计量计算(核心创新)stats = torch.einsum('bhid,bhjd->bhij', q, k).mean(dim=-1) # O(n)gate = self.gate(stats) # 基于统计量的动态门控# 门控特征聚合out = torch.einsum('bhij,bhjd->bhid', gate, v)return out.transpose(1,2).reshape(b, n, -1)
四、性能实测:效率与精度的双杀
1. 计算效率对比
| 模型 | 序列长度 | 内存占用(MB) | 推理时间(ms) |
|---|---|---|---|
| Transformer | 4096 | 12.8 | 342 |
| ToST | 4096 | 0.6 | 28 |
2. 视觉任务表现
在ImageNet-1k上,ToST-Small以22.6M参数达到77.9% Top-1准确率,媲美ViT-Base(86.6M参数,79.8%),但计算量减少90%。

3. 长序列建模
在Long-Range Arena基准测试中,ToST在Path-X任务(16k长度)上以69.4%准确率超越Performer(77.0%),显存占用仅为1/10。
五、实战:用ToST构建高效语言模型
from torch import nn
import torchclass ToSTBlock(nn.Module):def __init__(self, dim, heads=8):super().__init__()self.attn = TSSA(dim, heads=heads)self.mlp = nn.Sequential(nn.Linear(dim, 4*dim),nn.GELU(),nn.Linear(4*dim, dim))self.norm1 = nn.LayerNorm(dim)self.norm2 = nn.LayerNorm(dim)def forward(self, x):x = x + self.attn(self.norm1(x))x = x + self.mlp(self.norm2(x))return xclass ToST(nn.Module):def __init__(self, num_layers=12, dim=768, heads=12):super().__init__()self.layers = nn.ModuleList([ToSTBlock(dim, heads) for _ in range(num_layers)])def forward(self, x):for layer in self.layers:x = layer(x)return x# 示例:处理512 token的文本序列
model = ToST()
x = torch.randn(1, 512, 768) # (batch, seq_len, dim)
print(model(x).shape) # torch.Size([1, 512, 768])
关键优化技巧:
- 动态门控量化:将统计门控转换为8位整数计算
- 内存复用:在投影阶段共享中间结果
- 混合精度训练:使用FP16存储统计矩阵
六、ToST的蝴蝶效应:AI未来的五大变革
-
大模型平民化
7B参数的ToST在单张3090显卡上可处理32k长度文本,成本降低10倍 -
实时视频理解
处理1080P视频(每帧产生2304个token)时,延迟从3.2秒降至0.3秒 -
科学计算革命
在蛋白质结构预测中,对10k氨基酸序列的处理时间从小时级缩短到分钟级 -
边缘智能爆发
在Jetson Nano等嵌入式设备上实现实时多模态推理 -
理论突破
为理解神经网络中的信息压缩提供了新的数学框架

七、挑战与展望
尽管ToST展现了巨大潜力,仍需解决:
- 统计偏差累积:长序列中统计误差的传播问题
- 多模态适配:如何统一视觉与语言的统计特征
- 动态序列处理:流式输入下的增量统计计算
马毅教授团队表示,下一步将探索:
# 伪代码:动态统计量更新
class StreamingTSSA:def update(self, new_token):self.stats = self.momentum * self.stats + (1 - self.momentum) * new_token**2self.gate = 1 / (1 + self.stats)return self.gate * new_token
这场由ToST引发的效率革命才刚刚开始。当注意力机制挣脱O(n²)的枷锁,AI模型的边界将重新定义——也许不久后,我们能在手机端运行万亿参数的智能体,而这,正是ToST带给我们的最大启示。
绑定的资源为本篇论文的原文,当然你也可以通过以下网站了解更多关于 ToST 的故事。
论文标题:Token Statistics Transformer: Linear-Time Attention via Variational Rate Reduction论文地址:https://arxiv.org/abs/2412.17810
项目主页:https://robinwu218.github.io/ToST/
开源地址:https://github.com/RobinWu218/ToST
相关文章:
Token Statistics Transformer:线性注意力革命,重新定义Transformer效率天花板
“TOKEN STATISTICS TRANSFORMER: LINEAR-TIME ATTENTION VIA VARIATIONAL RATE REDUCTION” 由Ziyang Wu等人撰写。文章提出一种新型Transformer注意力算子,通过对最大编码率降低( M C R 2 MCR^{2} MCR2)目标的变分形式进行展开优化得到&…...
Django 5实用指南(二)项目结构与管理
2.1 Django5项目结构概述 当你创建一个新的 Django 项目时,Django 会自动生成一个默认的项目结构。这个结构是根据 Django 的最佳实践来设计的,以便开发者能够清晰地管理和维护项目中的各种组件。理解并管理好这些文件和目录结构是 Django 开发的基础。…...
JAVA监听器(学习自用)
一、什么是监听器 servlet监听器是一种特殊的接口,用于监听特定的事件(如请求创建和销毁、会话创建和销毁、上下文的初始化和销毁)。 当Web应用程序中反生特定事件时,Servlet容器就会自动调用监听器中相应的方法来处理这些事件。…...
Ubuntu下mysql主从复制搭建
本文介绍mysql 8.4主从集群的搭建,从单个机器安装到集群的配置,整体走了一遍,希望对大家有帮助。mysql 8.4和之前的版本命令上有些变化,大家用来参考。 0、环境 ubuntu: 22.04mysql:8.4 1、安装mysql 1…...
VirtualBox 中使用 桥接网卡 并设置 MAC 地址
在 VirtualBox 中使用 桥接网卡 并设置 MAC 地址,可以按照以下步骤操作: 步骤 1:设置桥接网卡 打开 VirtualBox,选择你的虚拟机,点击 “设置” (Settings)。进入 “网络” (Network) 选项卡。在 “适配器 1” (Adapt…...
Ubuntu 20 掉显卡驱动的解决办法
目录 问题背景解决办法Step1:首先查看当前linux内核Step2:重启Step3:进入ubuntu advanced (即高级选项)Step4:查看有哪些linux内核Step5:如果滚回老板kernel还是没有驱动,就找到驱动…...
EasyPoi系列之框架集成及基础使用
EasyPoi系列之框架集成及基础使用 1 EasyPoi1.1 gitee仓库地址 2 EasyPoi集成至SpringBoot2.1 maven引入jar包 3 EasyPoi Excel导出3.1 基于实体对象导出3.1.1 Excel 注解3.1.2 编写实体3.1.3 编写导出方法3.1.4 导出效果 3.2 基于模板导出3.2.1 编写模板文件3.2.2 编写导出方法…...
Web后端 Tomcat服务器
一 Tomcat Web 服务器 介绍: Tomcat是一个开源的Java Servlet容器和Web服务器,由Apache软件基金会开发。它实现了Java Servlet和JavaServer Pages (JSP) 技术,用于运行Java Web应用程序。Tomcat轻量、易于配置,常作为开发和部署…...
【RK3588嵌入式图形编程】-SDL2-构建模块化UI
构建模块化UI 文章目录 构建模块化UI1、概述2、创建UI管理器3、嵌套组件4、继承5、多态子组件6、总结在本文中,将介绍如何使用C++和SDL创建一个灵活且可扩展的UI系统,重点关注组件层次结构和多态性。 1、概述 在前面的文章中,我们介绍了应用程序循环和事件循环,这为我们的…...
面向机器学习的Java库与平台简介、适用场景、官方网站、社区网址
Java机器学习的库与平台 最近听到有的人说要做机器学习就一定要学Python,我想他们掌握的知道还不够系统全面。本文作者给大家介绍几种常用Java实现的机器学习库,快快收藏加关注吧~ Java机器学习库表格 Java机器学习库整理库/平台概念适合场…...
基于YOLO11深度学习的心脏超声图像间隔壁检测分割与分析系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割、人工智能
《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…...
ubuntu24基于虚拟机无法从主机拖拽文件夹
以下是解决问题的精简步骤: 安装 open-vm-tools-desktop: bash复制 sudo apt-get install open-vm-tools-desktop 重启虚拟机后,文字复制粘贴功能可正常工作。 禁用 Wayland: 编辑 /etc/gdm3/custom.conf 文件: bash复…...
常用Webpack Loader汇总介绍
引言 在前端项目开发中,Webpack 作为强大的模块打包工具,能够将各种资源进行打包处理。而其中的 Loader 则是 Webpack 处理不同类型文件的关键,它允许 Webpack 不仅仅局限于处理 JavaScript 文件,还能处理 CSS、图片、字体等多种…...
剑指 Offer II 023. 两个链表的第一个重合节点
comments: true edit_url: https://github.com/doocs/leetcode/edit/main/lcof2/%E5%89%91%E6%8C%87%20Offer%20II%20023.%20%E4%B8%A4%E4%B8%AA%E9%93%BE%E8%A1%A8%E7%9A%84%E7%AC%AC%E4%B8%80%E4%B8%AA%E9%87%8D%E5%90%88%E8%8A%82%E7%82%B9/README.md 剑指 Offer II 023. 两…...
个人搭建CDN加速服务 特网科技
在互联网快速发展的今天,网站的加载速度对用户体验有着至关重要的影响,传统的网页加载方式依赖于服务器的性能和网络环境,这使得某些网站的页面加载时间过长,用户体验不佳,为了解决这个问题,许多企业开始采…...
用deepseek学大模型08-卷积神经网络(CNN)
yuanbao.tencent.com 从入门到精通卷积神经网络(CNN),着重介绍的目标函数,损失函数,梯度下降 标量和矩阵形式的数学推导,pytorch真实能跑的代码案例以及模型,数据,预测结果的可视化展示, 模型应用场景和优缺点…...
蓝桥杯单片机基础部分——6、555定时器
前言 NE555是一个纯硬件的设计,旦硬件电路确定了,其功能也确定了,没有可编程的部分,也没什么好去理解的地方,如果理解不了就直接背代码,这里也不是很常考,大家了解一下就可以了,知道…...
Python学习心得函数
一、函数的定义及调用 1.函数的定义: 函数的定义:函数是将一段能实现某种特定功能的代码,使用函数名进行封装,并通过函数名称进行调用。从而达到一次编写,多次调用的目的。 2.函数类型分为两类: &#…...
神经网络实验——MLP
目录 1 目的 2 方法 3 源代码 4 结果 1 目的 ①熟悉 Python 的输入输出流; ②学会使用 matplotlib进行图像可视化; ③掌握神经网络的基本原理,学会使用 sklearn 库中的 MLPClassifier 函数构建基础的多层感知机神经网络分类器; ④学会使用网格查找进行超参数优…...
配置Api自动生成
我的飞书:https://rvg7rs2jk1g.feishu.cn/docx/TVlJdMgYLoDJrsxAwMgcCE14nxt 使用Springfox Swagger生成API,并导入Postman,完成API单元测试 Swagger: 是一套API定义的规范,按照这套规范的要求去定义接口及接口相关信息,再通过可…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
