视觉注意力机制,又有新突破,来自香港大学和英伟达。
Transformer的自注意力在NLP和计算机视觉领域表现出色——它能捕捉远距离依赖,构建深度上下文。然而,面对高分辨率图像时,传统自注意力有两个大难题:
虽然线性注意力和Mamba等方法能把复杂度降到O(N),但它们还是把图像当作一维序列处理,无法真正利用二维空间信息。
为此,香港大学与英伟达联合推出了广义空间传播网络(GSPN)。
GSPN采用二维线性传播,结合“稳定性–上下文条件”,将计算量从 O(N²) 或 O(N) 再降到√N级别,并完整保留图像的空间连贯性。这样,不仅大幅提升了效率,还在多个视觉任务上刷新了性能纪录。
GSPN的核心技术是二维线性传播与稳定性-上下文条件,基于此,现有注意力机制与GSPN的对比如下:
作为GSPN的核心组件,二维线性传播包括两个关键点:
对于二维图像,二维线性传播通过逐行或逐列的顺序处理进行其遵循线性循环过程,隐藏层通过前一行的隐藏状态和当前输入计算得出:
将上述公式按展开,可以得到向量化的输入与一个下三角矩阵的乘积,输出则为输入的加权和。其中与注意力机制里的大矩阵意义类似—都描述了任意两个像素之间的连接关系。
在传播过程中,研究人员并不对所有像素做全连接,而是只在前一行的左、中、右三个相邻像素之间建立三向连接。这样既能大幅减少参数量,又能保证信息像全连接那样完整传播。
GSPN有两种变体,一种捕捉整个输入的全局上下文(下图左),另一种专注于局部区域以实现更快的传播(下图右)。这些变体使GSPN能够作为现有注意力模块的直接替代品无缝集成到现代视觉架构中。
那么上述三连接扫描方式是否能形成像注意力机制的那样的密集链接呢?
下面的示意图给出了肯定答案。通过左→右、右→左、上→下、下→上四个方向的扫描,所有的像素都会和其他任意像素产生连接。
此外,GSPN引入了一个可学习的合并器,用于聚合来自所有扫描方向的空间信息,增强了模型动态适应视觉数据二维结构的能力。
研究人员发现GSPN天然对位置信息敏感,无需位置嵌入,避免了常见的混叠问题。
众所周知,线性系统容易出现不稳定。
为了让 GSPN在长距离传播时既稳定又高效,研究人员提出了定理1和定理 2(统称“稳定性–上下文条件”)。推导结果表明(过程见GSPN附录),只要把传播矩阵做成行随机矩阵(元素非负、每行之和为1),就能在保证信息不丢失、信号不过度放大或衰减的前提下,维持系统稳定。
更简单的是,只需在CUDA内核外加个Sigmoid激活,再对每行做归一化,就能轻松实现这一点。
GSPN引入了一个根据线性传播构建的序列长度为的全新内核。无需依赖ViT的大规模矩阵乘法,也不同于Mamba的并行方案。该核能在批量样本、所有通道以及与传播方向垂直的行/列上一次性并行执行,极大地减少循环开销,实现了快速且可扩展的线性传播。
与ViT和Mamba类似,研究人员推荐了以下GSPN模块化设计。
需要注意的是,GSPN本身是一个独立的注意力机制层,可以非常灵活的用在任何视觉网络中。比如在Stable Diffusion中,研究人员就保留了大部分网络结构甚至训练参数,直接将注意力层替换为GSPN,仍然取得了非常好的效果。
具体来看实验结果。
在图像分类领域,GSPN实现了效率与精度双优。
在ImageNet中,GSPN-T在5.3 GFLOPs计算量下,Top-1准确率达82.2%,超越LocalVMamba-T(81.9%)和ViT类模型,参数效率提升显著。
图像生成方面,在类条件生成任务中,GSPN-XL/2在ImageNet 256×256任务中以65.6%参数实现FID 3.2,优于DiT-XL/2(FID 3.5),生成速度提升1.5倍。
文本到图像生成任务上,在SD-XL模型中,生成16K×8K图像的推理时间加速超84倍,且在未见分辨率外推的场景下FID分数(30.86)优于基线(32.71)。
值得一提的是,GSPN具备两个优势:
这使其具备了从学术到工业的落地潜力。
总结来说,GSPN通过二维结构感知和线性复杂度设计,重新定义了视觉注意力机制的范式。
其在保持空间连贯性的同时实现计算效率跃升,尤其在高分辨率生成任务中的突破,为多模态模型和实时视觉应用提供了新方向。
论文: https://arxiv.org/abs/2501.12381
项目主页: https://whj363636.github.io/GSPN/
代码:https://github.com/NVlabs/GSPN
文章来自于“量子位”,作者“GSPN团队”。
【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。
项目地址:https://github.com/microsoft/graphrag
【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。
项目地址:https://github.com/langgenius/dify
【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。
项目地址:https://github.com/infiniflow/ragflow/tree/main
【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目
项目地址:https://github.com/phidatahq/phidata
【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。
项目地址:https://github.com/TaskingAI/TaskingAI