关注公众号,发现CV技术之美
本文分享论文『Fast Vision Transformers with HiLo Attention』,由蒙纳士大学提出能够高效建模高低频信息的LITv2,在性能、FLOPs、吞吐量和显存消耗方面均优于现有Transformer结构!代码即将开源!
详细信息如下:
论文链接:https://arxiv.org/abs/2205.13213
项目链接:https://github.com/zip-group/litv2
01
摘要
视觉Transformer(ViT)引发了计算机视觉领域最新的重大突破。他们的高效设计主要由计算复杂性的间接指标(即FLOPs)来衡量,然而FLOPs与吞吐量等直接指标有明显的差距。因此,作者提出使用目标平台上的直接速度评估作为高效ViTs的设计原则。
具体来说,作者提出了LITv2,这是一种简单有效的ViT,在不同模型尺寸的范围内,它以更快的速度与现有的最先进的方法相比表现相当。LITv2的核心是一种新的自注意机制,作者称之为HiLo。HiLo的灵感来源于这样一种见解,即图像捕获中的高频局部细节和低频聚焦于全局结构,而多头自注意力层忽略了不同频率的特征。
因此,作者提出通过将head分为两组来分离注意层中的高/低频模式,其中一组通过每个局部窗口内的自注意力对高频进行编码,另一组负责建模每个窗口的平均池化低频键与输入特征映射中的每个查询位置之间的全局关系。得益于两组的高效设计,作者通过对GPU上的FLOPs、速度和内存消耗进行全面基准测试,表明HiLo优于现有的注意力机制。
02
Motivation
现实世界中的应用通常要求模型在有限的计算预算下(如UAV和自动驾驶)具有最佳的速度和精度权衡。这推动了高效视觉Transformer(ViT)设计的大量工作,如PVT、Swin和Focal Transformer等。为了衡量计算复杂性,最近ViT设计中广泛采用的一个指标是浮点运算的数量,即浮点运算。然而,FLOPs是一种间接指标,不能直接反映目标平台上的真实速度。例如,Focal Tiny的速度比GPU上的Swin Ti慢得多,尽管它们的FLOPs相当。
一般而言,近期ViTs中间接指标(FLOPs)和直接指标(速度)之间的差异可归因于两个主要原因。首先,尽管自注意力在低分辨率特征图上是有效的,但由于内存访问成本高,内存和时间的二次复杂性使其在高分辨率图像上的速度慢得多,从DRAM获取数据可能会消耗速度。其次,VIT中的一些有效注意力机制理论上的复杂性保证较低,但实际上在GPU上速度较慢,因为某些操作对硬件不友好或无法并行,例如多尺度窗口划分、递归和扩展窗口。
根据这些观察结果,在本文中,作者提出通过直接通过吞吐量来评估ViT,而不仅仅是FLOPs。基于这一原理,作者提出了LITv2,这是一种新型高效、准确的视觉Transformer,在标准基准上优于最先进的ViT,而在GPU上则运行更快。LITv2是建立在LITv1基础上的,LITv1是一个简单的ViT baseline,它在早期阶段删除所有多头自注意力层(MSAÿ