Next-ViT: 下一代视觉Transformer,用于现实工业场景中的高效部署

摘要

由于复杂的注意力机制和模型设计,大多数现有的视觉Transformer(ViTs)在实际的工业部署场景中,如TensorRT和CoreML,无法像卷积神经网络(CNNs)那样高效运行。这提出了一个明显的挑战:能否设计出一个视觉神经网络,既能像CNNs一样快速推理,又能像ViTs一样强大?在这项工作中,我们提出了一种下一代视觉Transformer,用于在实际工业场景中高效部署,即Next-ViT,它从延迟/准确性权衡的角度主导了CNNs和ViTs。Next Convolution Block(NCB)和Next Transformer Block(NTB)分别开发,以部署友好的机制捕获局部和全局信息。然后,设计了Next Hybrid Strategy(NHS),以高效的混合范式堆叠NCB和NTB,从而在各种下游任务中提升性能。广泛的实验表明,Next-ViT在各种视觉任务的延迟/准确性权衡方面显著优于现有的CNNs、ViTs和CNN-Transformer混合架构。在TensorRT上,Next-ViT在COCO检测上超过了ResNet 5.5 mAP(从40.4到45.9),在ADE20K分割上超过了 7.7 7.7% \mathrm{mIoU} 7.7(从38.8%到46.5%),延迟相似。同时,它与CSWin的性能相当,推理速度提高了3.6倍。在CoreML上,Next-ViT在COCO检测上超过了EfficientFormer 4.6 mAP(从42.6到47.2),在ADE2OK分割上超过了3.5% mIoU(从45.1%到48.6%),延迟相似。我们的代码和模型已公开:https://github.com/bytedance/Next-ViT。

1. 引言

最近,视觉Transformer(ViTs)在工业界和学术界受到了越来越多的关注,并在各种计算机视觉任务中取得了巨大成功,如图像分类、目标检测、语义分割等。然而,从现实世界的部署角度来看,CNNs仍然主导着视觉任务,因为ViTs通常比经典的CNNs慢得多,例如ResNets。有一些因素限制了Transformer模型的推理速度,包括多头自注意力(MHSA)机制的二次复杂度、不可折叠的LayerNorm和GELU层,复杂的模型设计导致频繁的内存访问和复制等。

许多工作努力使ViTs摆脱高延迟困境。例如,Swin Transformer [21]和PVT [36]试图设计更高效的空间注意力机制,以减轻MHSA的二次增长计算复杂度。其他人[5, 19, 25]考虑结合高效的卷积块和强大的Transformer块来设计CNN-Transformer混合架构,以获得准确性和延迟之间的更好权衡。巧合的是,几乎所有现有的混合架构[5, 19, 25]都在浅层阶段采用卷积块,只在最后几个阶段堆叠Transformer块。然而,我们观察到,这种混合策略很容易导致下游任务(例如分割和检测)的性能饱和。此外,我们发现现有工作中的卷积块和Transformer块无法同时具备效率和性能的特点。尽管与视觉Transformer相比,准确性-延迟权衡有所改善,但现有混合架构的整体性能仍远未令人满意。

为了解决上述问题,本工作开发了三个重要组件来设计高效的视觉Transformer网络。首先,我们引入了Next Convolution Block(NCB),它擅长使用新颖的部署友好型多头卷积注意力(MHCA)捕获视觉数据中的短期依赖信息。其次,我们构建了Next Transformer Block(NTB),NTB不仅是捕获长期依赖信息的专家,还充当轻量级和高低频信号混合器,以增强建模能力。最后,我们设计了Next Hybrid Strategy(NHS),在每个阶段以新颖的混合范式堆叠NCB和NTB,大大减少了Transformer块的比例,并保留了视觉Transformer网络在各种下游任务中的高精度。
在这里插入图片描述

基于上述提出的方法,我们提出了下一代视觉Transformer,用于现实工业部署场景(简称Next-ViT)。在本文中,为了进行公平比较,我们提供了一种将特定硬件上的延迟视为直接效率反馈的观点。TensorRT和CoreML分别代表服务器端和移动端设备的通用且易于部署的解决方案,有助于提供令人信服的硬件导向性能指导。有了这种直接和准确的指导,我们在图1中重新绘制了几个现有竞争模型的准确性和延迟权衡图。如图1(a)(d)所示,Next-ViT在ImageNet-1K分类任务上实现了最佳的延迟/准确性权衡。更重要的是,Next-ViT在下游任务上显示出更显著的延迟/准确性权衡优势。如图1(b)©所示,在TensorRT上,Next-ViT在COCO检测上超过了ResNet \mathbf{5 . 5} \mathrm{mAP}(从40.4到45.9),在ADE20K分割上超过了 7.7 % m I o U \mathbf{7 . 7 \% ~ m I o U} 7.7% mIoU(从38.8 % 到46.5 %),延迟相似。Next-ViT与CSWin的性能相当,推理速度提高了 3.6 x \mathbf{3 . 6 x} 3.6x。如图1(e)(f)所示,在CoreML上,Next-ViT在COCO检测上超过了EfficientFormer 4.6 mAP(从42.6到47.2),在ADE2OK分割上超过了3.5 % mIoU(从45.1 % 到48.6 %),CoreML延迟相似。

我们的主要贡献总结如下:

  • 我们开发了强大的卷积块和Transformer块,即NCB和NTB,具有部署友好的机制。Next-ViT堆叠NCB和NTB构建了先进的CNN-Transformer混合架构。
  • 我们从新的视角设计了一种创新的CNN-Transformer混合策略,以高效率提升性能。
  • 我们提出了Next-ViT,一系列强大的视觉Transformer架构。广泛的实验证明了Next-ViT的优势。它在TensorRT和CoreML上实现了图像分类、目标检测和语义分割的SOTA延迟/准确性权衡。

2. 相关工作

卷积网络。在过去的十年中,卷积神经网络(CNNs)在包括图像分类、目标检测和语义分割在内的各种计算机视觉任务中占据主导地位。ResNet [10] 使用残差连接来消除网络退化,确保网络构建得更深,并能够捕获高级抽象。DenseNet [13] 通过密集连接交替增强特征重用并连接特征图。MobileNets [12,30] 引入深度卷积和逐点卷积来构建具有小内存和低延迟的模型。ShuffleNet [46] 采用分组逐点卷积和通道混洗进一步降低计算成本。ShuffleNetv2 [24] 提出网络架构设计应考虑直接指标如速度,而不是间接指标如FLOPs。ConvNeXt [22] 回顾了视觉Transformer的设计,并提出了一个纯粹的CNN模型,该模型可以在多个计算机视觉基准测试中与SOTA层次视觉Transformer竞争,同时保持标准CNN的简单性和效率。

视觉Transformer。Transformer最初在自然语言处理(NLP)领域提出。ViT [7] 将图像分割成块,并将这些块视为单词来执行自注意力,这表明Transformer在各种视觉任务上也取得了令人印象深刻的性能。DeiT [33] 引入了特定于Transformer的师生策略。T2T-ViT [44] 引入了一种新颖的tokens-to-token (T2T) 过程,逐步将图像标记化成token,并结构化地聚合token。Swin Transformer [21] 提出了一种通用的Transformer骨干,构建了层次化特征图,并具有对图像大小的线性计算复杂度。PiT [11] 将池化层引入ViT,并展示了这些优势可以通过广泛的实验与ViT很好地协调。如今,研究人员更加关注效率,包括高效的自注意力、训练策略、金字塔设计等。

混合模型。最近的工作 [8, 19, 25, 31, 37, 48] 表明,将卷积和Transformer结合为混合架构有助于吸收两种架构的优势。BoTNet [31] 在ResNet的最后三个瓶颈块中用全局自注意力替换空间卷积。CvT [37] 在自注意力前引入了深度和逐点卷积。CMT [8] 提出了一种新的基于Transformer的混合网络,利用Transformer捕获长距离依赖和CNN建模局部特征。在MobileViT [25]中,为移动设备引入了轻量级和通用视觉Transformer。Mobile-Former [2] 结合了提出的轻量级交叉注意力来建模桥梁,这不仅计算效率高,而且具有更强的表示能力。EfficientFormer [19] 遵循维度一致的设计,平滑地利用硬件友好的4D MetaBlocks和强大的3D MHSA块。在本文中,我们设计了一系列Next-ViT模型,以更好地适应现实工业场景。

3. 方法

在本节中,我们首先展示了所提出的Next-ViT的概述。然后,我们讨论了Next-ViT内部的一些核心设计,包括Next Convolution Block (NCB)、Next Transformer Block (NTB) 和 Next Hybrid Strategy (NHS)。此外,我们提供了不同模型尺寸的架构规格。

3.1. 概述

我们展示了如图2所示的Next-ViT。按照惯例,Next-ViT遵循带有补丁嵌入层和每个阶段一系列卷积或Transformer块的层次金字塔架构。空间分辨率将通过每个阶段减少32倍,而通道维度将在不同阶段扩展。在本章中,我们首先深入设计信息交互的核心块,并分别开发了强大的NCB和NTB来模拟视觉数据中的短期和长期依赖性。局部和全局信息的融合也在NTB中执行,这进一步增强了建模能力。最后,我们系统地研究了集成卷积和Transformer块的方式。为了克服现有方法的固有缺陷,我们引入了Next Hybrid Strategy,它堆叠了创新的NCB和NTB来构建我们的高级CNN-Transformer混合架构。
在这里插入图片描述

3.2. Next Convolution Block (NCB)

为了展示所提出的NCB的优越性,我们首先回顾了一些经典的卷积和Transformer块的结构设计,如图3所示。ResNet [10] 提出的BottleNeck块长期以来在视觉神经网络中占据主导地位,因为它在大多数硬件平台上具有内在的归纳偏置和部署友好特性。不幸的是,与Transformer块相比,BottleNeck块的有效性不足。ConvNeXt块 [22] 通过模仿Transformer块的设计,使BottleNeck块现代化。虽然ConvNeXt块部分提高了网络性能,但其在TensorRT/CoreML上的推理速度受到低效组件的严重限制,例如7×7深度卷积、LayerNorm和GELU。Transformer块在各种视觉任务中取得了优异的成绩,其固有的优越性是由MetaFormer [43] 的范式和基于注意力的token混合模块 [21] [6] 共同赋予的。然而,由于其复杂的注意力机制,Transformer块的推理速度比BottleNeck块慢得多,在大多数现实工业场景中这是不可接受的。
在这里插入图片描述

为了克服上述块的缺陷,我们引入了一个Next Convolution Block (NCB),它保持了BottleNeck块的部署优势,同时获得了与Transformer块一样突出的性能。如图3(f)所示,NCB遵循了MetaFormer [43]的一般架构,这被证明对Transformer块至关重要。与此同时,高效的基于注意力的token混合器也同样重要。我们设计了一种新颖的多头卷积注意力(MHCA)作为具有部署友好卷积操作的高效token混合器。最后,我们在MetaFormer [43]的范式中用MHCA和MLP层构建了NCB。我们提出的NCB可以表述如下:

z ~ l = MHCA ⁡ ( z l − 1 ) + z l − 1 z l = MLP ⁡ ( z ~ l ) + z ~ l \begin{array}{l} \tilde{z}^{l}=\operatorname{MHCA}\left(z^{l-1}\right)+z^{l-1} \\ z^{l}=\operatorname{MLP}\left(\tilde{z}^{l}\right)+\tilde{z}^{l} \end{array} z~l=MHCA(zl1)+zl1zl=MLP(z~l)+z~l

其中 z l − 1 z^{l-1} zl1 表示来自 l − 1 l-1 l1 块的输入, z ~ l \tilde{z}^{l} z~l z l z^{l} zl 分别是MHCA和第 l l l个NCB的输出。我们将在下一节详细介绍MHCA。

3.2.1 多头卷积注意力(MHCA)

为了解决现有基于注意力的令牌混合器的高延迟问题,我们设计了一种新的注意力机制,采用高效的卷积操作,即卷积注意力(CA),以实现快速推理速度。同时,受到MHSA [34]中有效的多头设计的启发,我们构建了多头卷积注意力,它能够同时关注不同表示子空间中的信息,以及不同位置的有效局部表示学习。所提出的多头卷积注意力(MHCA)的定义可以总结如下:

MHCA ⁡ ( z ) = Concat ⁡ ( C A 1 ( z 1 ) , C A 2 ( z 2 ) , … , C A h ( z h ) ) W P \operatorname{MHCA}(z)=\operatorname{Concat}\left(\mathrm{CA}_{1}\left(z_{1}\right), \mathrm{CA}_{2}\left(z_{2}\right), \ldots, \mathrm{CA}_{h}\left(z_{h}\right)\right) W^{P} MHCA(z)=Concat(CA1(z1),CA2(z2),,CAh(zh))WP

在这里,MHCA从 h h h个并行表示子空间中捕获信息。 z = [ z 1 , z 2 , … , z h ] z=\left[z_{1}, z_{2}, \ldots, z_{h}\right] z=[z1,z2,,zh]表示将输入特征 z z z在通道维度上分割成多头形式。为了促进多头之间的信息交互,我们还为MHCA配备了一个投影层 ( W P ) \left(W^{P}\right) (WP)。CA是单头卷积注意力,可以定义为:

C A ( z ) = O ( W , ( T m , T n ) ) where  T { m , n } ∈ z \mathrm{CA}(z)=\mathrm{O}\left(W,\left(T_{m}, T_{n}\right)\right) \text { where } T_{\{m, n\}} \in z CA(z)=O(W,(Tm,Tn)) where T{m,n}z

其中 T m T_{m} Tm T n T_{n} Tn是输入特征 z z z中的相邻令牌。O是带有可训练参数 W W W和输入令牌 T { m , n } T_{\{m, n\}} T{m,n}的内积操作。CA能够通过迭代优化可训练参数 W W W来学习局部感受野中不同令牌之间的亲和性。具体来说,MHCA的实现是通过组卷积(多头卷积)和逐点卷积来完成的,如图3(f)所示。我们在所有MHCA中统一设置头维为32,以在TensorRT上实现各种数据类型的快速推理速度。此外,我们还在NCB中采用了高效的BatchNorm(BN)和ReLU激活函数,而不是传统Transformer块中的LayerNorm(LN)和GELU,这进一步加快了推理速度。在消融研究中的实验结果表明,NCB与现有块相比具有优越性,例如BottleNeck块、ConvNext块、LSA块等。

3.3 下一代Transformer块(NTB)

尽管通过NCB有效地学习了局部表示,但迫切需要解决全局信息的捕获问题。Transformer块具有很强的捕获低频信号的能力,这些信号提供了全局信息(例如全局形状和结构)。然而,相关研究[27]观察到Transformer块可能在一定程度上恶化高频信息,如局部纹理信息。不同频段的信号在人类视觉系统中是不可或缺的[1][15],并且将以某种特定方式融合,以提取更基本和独特的特征。

受到这些观察的启发,我们开发了下一代Transformer块(NTB),以在轻量级机制中捕获多频段信号。此外,NTB作为一个有效的多频段信号混合器,进一步增强了整体建模能力。如图2所示,NTB首先使用高效多头自注意力(E-MHSA)捕获低频信号,可以描述为:

E ⁡ − MHSA ⁡ ( z ) = Concat ⁡ ( S A 1 ( z 1 ) , S A 2 ( z 2 ) , … , S A h ( z h ) ) W P \operatorname{E}-\operatorname{MHSA}(z)=\operatorname{Concat}\left(\mathrm{SA}_{1}\left(z_{1}\right), \mathrm{SA}_{2}\left(z_{2}\right), \ldots, \mathrm{SA}_{h}\left(z_{h}\right)\right) W^{P} EMHSA(z)=Concat(SA1(z1),SA2(z2),,SAh(zh))WP

其中 z = [ z 1 , z 2 , … , z h ] z=\left[z_{1}, z_{2}, \ldots, z_{h}\right] z=[z1,z2,,zh]表示将输入特征 z z z在通道维度上分割成多头形式。SA是一个空间缩减自注意力操作符,受到线性SRA [35]的启发,并执行如下:

S A ( X ) = Attention ⁡ ( X ⋅ W Q , P s ( X ⋅ W K ) , P s ( X ⋅ W V ) ) \mathrm{SA}(X)=\operatorname{Attention}\left(X \cdot W^{Q}, \mathrm{P}_{s}\left(X \cdot W^{K}\right), \mathrm{P}_{s}\left(X \cdot W^{V}\right)\right) SA(X)=Attention(XWQ,Ps(XWK),Ps(XWV))

其中Attention表示一个标准注意力计算为Attention (Q, K, V)= softmax ⁡ ( Q K T d k ) V \operatorname{softmax}\left(\frac{Q K^{T}}{d_{k}}\right) V softmax(dkQKT)V,其中 d k d_{k} dk表示缩放因子。 W Q , W K , W V W^{Q}, W^{K}, W^{V} WQ,WK,WV是上下文编码的线性层。 P s \mathrm{P}_{s} Ps是在注意力操作之前对空间维度进行下采样的avg-pool操作,以减少计算成本。具体来说,我们观察到E-MHSA模块的时间消耗也受到其通道数的很大影响。NTB因此在E-MHSA模块之前通过逐点卷积进行通道维度缩减,以进一步加速推理。引入了一个缩减比率 r r r用于通道缩减。我们还在E-MHSA模块中利用Batch Normalization以实现极其高效的部署。

此外,NTB配备了一个MHCA模块,与E-MHSA模块合作捕获多频段信号。之后,E-MHSA和MHCA的输出特征被连接起来,混合高低频信息。最后,借用一个MLP层在最后提取更基本和独特的特征。简而言之,NTB的实现可以表述如下:

z ˙ l = Proj ⁡ ( z l − 1 ) z ~ l = E ⁡ − MHSA ⁡ ( z ˙ l ) + z ˙ l z ¨ l = Proj ⁡ ( z ˉ l ) z ^ l = MHCA ⁡ ( z ˉ l ) + z ¨ l z ˉ l = Concat ⁡ ( z ˉ l , z ^ l ) z l = MLP ⁡ ( z ˉ l ) + z ˉ l \begin{aligned} \dot{z}^{l} & =\operatorname{Proj}\left(z^{l-1}\right) \\ \tilde{z}^{l} & =\operatorname{E}-\operatorname{MHSA}\left(\dot{z}^{l}\right)+\dot{z}^{l} \\ \ddot{z}^{l} & =\operatorname{Proj}\left(\bar{z}^{l}\right) \\ \hat{z}^{l} & =\operatorname{MHCA}\left(\bar{z}^{l}\right)+\ddot{z}^{l} \\ \bar{z}^{l} & =\operatorname{Concat}\left(\bar{z}^{l}, \hat{z}^{l}\right) \\ z^{l} & =\operatorname{MLP}\left(\bar{z}^{l}\right)+\bar{z}^{l} \end{aligned} z˙lz~lz¨lz^lzˉlzl=Proj(zl1)=EMHSA(z˙l)+z˙l=Proj(zˉl)=MHCA(zˉl)+z¨l=Concat(zˉl,z^l)=MLP(zˉl)+zˉl

其中 z ~ l , z ^ l \tilde{z}^{l}, \hat{z}^{l} z~l,z^l z l z^{l} zl分别表示E-MHSA、MHCA和NTB的输出。Proj表示用于通道投影的逐点卷积层。此外,NTB统一采用BN和ReLU作为高效的归一化和激活层,而不是LN和GELU。与传统的Transformer块相比,NTB能够以轻量级机制捕获和混合多频段信息,这极大地提高了模型性能。

3.4 下一代混合策略(NHS)

近期的一些研究[5,19,25,38]在将CNN和Transformer结合起来以实现高效部署方面做出了巨大努力。如图4(b)©所示,它们几乎无一例外地在浅层阶段采用卷积块,在最后一到两个阶段仅仅堆叠Transformer块,这在分类任务中取得了有效结果。不幸的是,我们观察到这些传统的混合策略在下游任务(例如分割和检测)上难以达到性能饱和。原因是,分类任务仅使用最后阶段的输出进行预测,而下游任务(例如分割和检测)通常依赖于每个阶段的特征以获得更好的结果。然而,传统的混合策略仅在最后几个阶段堆叠Transformer块。因此,浅层阶段未能捕获全局信息,例如对象的全局形状和结构,这对分割和检测任务至关重要。
在这里插入图片描述

为了克服现有混合策略的不足,我们提出了一种新的下一代混合策略(NHS),创造性地使用(N+1) * L混合范式堆叠卷积块(NCB)和Transformer块(NTB)。NHS显著提高了模型在下游任务中的性能,同时控制Transformer块的比例以实现高效部署。首先,为了赋予浅层阶段捕获全局信息的能力,我们提出了一种新的混合策略,即( N C B × N + N T B × 1 \mathrm{NCB} \times N+\mathrm{NTB} \times 1 NCB×N+NTB×1)模式,如图4(d)所示,每个阶段依次堆叠N个NCB和一个NTB。具体来说,Transformer块(NTB)位于每个阶段的末尾,使模型能够在浅层学习全局表示。我们进行了一系列实验来验证所提出的混合策略的优越性。不同混合策略的性能如表1所示。C表示在一阶段中均匀堆叠卷积块(NCB),T表示始终使用Transformer块(NTB)构建一阶段。特别地, H N \mathrm{H}_{\mathrm{N}} HN表示在相应阶段使用( N C B × N + N T B × 1 \mathrm{NCB} \times N+\mathrm{NTB} \times 1 NCB×N+NTB×1)模式堆叠NCB和NTB。表1中的所有模型都配备了四个阶段。例如,CCCC表示在所有四个阶段中一致使用卷积块。为了公平比较,我们在类似的TensorRT延迟下构建了所有模型。更多的实现细节在第4节中介绍。如表1所示,所提出的混合策略在下游任务中显著提高了模型性能,与现有方法相比。 C H N H N H N \mathrm{CH}_{\mathrm{N}} \mathrm{H}_{\mathrm{N}} \mathrm{H}_{\mathrm{N}} CHNHNHN实现了最佳的整体性能。例如, C H N H N H N \mathrm{CH}_{\mathrm{N}} \mathrm{H}_{\mathrm{N}} \mathrm{H}_{\mathrm{N}} CHNHNHN在检测中超过了CCC T 0.8 mAP,在分割中超过了 0.8 % m I o U 0.8 \% \mathrm{mIoU} 0.8%mIoU。此外, H N H N H N H N \mathrm{H}_{N} \mathrm{H}_{\mathrm{N}} \mathrm{H}_{\mathrm{N}} \mathrm{H}_{\mathrm{N}} HNHNHNHN的结果表明,在第一阶段放置Transformer块会恶化模型的延迟-准确性权衡。
在这里插入图片描述

我们进一步验证了 C H N H N H N \mathrm{CH}_{\mathrm{N}} \mathrm{H}_{\mathrm{N}} \mathrm{H}_{\mathrm{N}} CHNHNHN在大型模型上的一般有效性,通过增加第三阶段的块数作为ResNet[10]。表2前三行的实验结果表明,大型模型的性能难以提升,逐渐达到饱和。这种现象表明,通过扩大( N C B × N + N T B × 1 \mathrm{NCB} \times N+\mathrm{NTB} \times 1 NCB×N+NTB×1)模式中的N,即简单地添加更多的卷积块,并不是最佳选择。这也意味着( N C B × N + N T B × 1 \mathrm{NCB} \times N+\mathrm{NTB} \times 1 NCB×N+NTB×1)模式中的N值可能严重影响模型性能。因此,我们开始通过广泛的实验探索N值对模型性能的影响。如表2(中间)所示,我们在第三阶段构建了具有不同配置的N的模型。为了进行公平比较,当N值较小时,我们堆叠L组( N C B × N + N T B × 1 \mathrm{NCB} \times N+\mathrm{NTB} \times 1 NCB×N+NTB×1)模式。令人惊讶的是,我们发现在 ( N C B × N + N T B × 1 ) × L (\mathrm{NCB} \times N+\mathrm{NTB} \times 1) \times L (NCB×N+NTB×1)×L模式下堆叠NCB和NTB比 ( N C B × N + N T B × 1 ) (\mathrm{NCB} \times N+\mathrm{NTB} \times 1) (NCB×N+NTB×1)模式实现了更好的模型性能。它表示以适当的方式重复结合低频信号提取器和高频信号提取器 ( ( N C B × N + N T B × 1 ) ) ((\mathrm{NCB} \times N+\mathrm{NTB} \times 1)) ((NCB×N+NTB×1))可以带来更高质量的表示学习。如表2所示,第三阶段N=4的模型在性能和延迟之间实现了最佳权衡。我们通过扩大第三阶段的 L ( N C B × 4 + N T B × 1 ) × L L(\mathrm{NCB} \times 4+\mathrm{NTB} \times 1) \times L L(NCB×4+NTB×1)×L模式的L进一步构建了更大的模型。如表2(底部)所示,基础(L=4)和大型(L=6)模型的性能与小型模型相比显著提升,这验证了所提出的 ( N C B × N + N T B × 1 ) × L (\mathrm{NCB} \times N+\mathrm{NTB} \times 1) \times L (NCB×N+NTB×1)×L模式的一般有效性。在本文的其余部分,我们使用N=4作为基本配置。

我们使用上述下一代混合策略堆叠NCB和NTB构建Next-ViT,可以正式定义为:

Next-ViT ⁡ ( X ) = ∮ i { [ Γ ( Ψ ( X ) × N i ) ] × L i } \operatorname{Next-ViT}(X)=\oint_{i}\left\{\left[\Gamma\left(\Psi(X) \times N_{i}\right)\right] \times L_{i}\right\} Next-ViT(X)=i{[Γ(Ψ(X)×Ni)]×Li}

其中 i ∈ ( 1 , 2 , 3 , 4 ) i \in(1,2,3,4) i(1,2,3,4)表示阶段索引。 Ψ \Psi Ψ表示NCB。 Γ \Gamma Γ表示当 i = 1 i=1 i=1时的身份层,否则为NTB。最后, ∮ \oint 表示顺序堆叠阶段的操作。

3.5 Next-ViT架构

为了与现有的SOTA网络进行公平比较,我们提出了三种典型的变体,即Next-ViTS/B/L。架构规格列在表3中,其中C表示每个阶段的输出通道,S表示每个阶段的步幅。此外,NTB中的通道缩减比率r统一设置为0.75,E-MHSA中的空间缩减比率s在不同阶段分别为[8, 4, 2, 1]。MLP层的扩展比率分别为NCB的3和NTB的2。E-MHSA和MHCA中的头维设置为32。对于归一化层和激活函数,NCB和NTB都使用BatchNorm和ReLU。
在这里插入图片描述

4. 实验结果

4.1. ImageNet-1K分类

4.1.1 实现

我们在ImageNet-1K [29]上进行图像分类实验,该数据集包含约128万张训练图像和5万张验证图像,涵盖1000个类别。为了公平比较,我们遵循最近视觉Transformer [3, 18,36,42]的训练设置,并进行小幅调整。具体来说,所有Next-ViT变体在8个V100 GPU上训练300个周期,总批量大小为2048。输入图像的分辨率调整为 224 × 224 224 \times 224 224×224。我们采用AdamW [23]作为优化器,权重衰减为0.1。学习率根据余弦策略逐渐衰减,初始值为 2 e − 3 2\mathrm{e}-3 2e3,并使用20个周期的线性预热策略对所有NextViT变体进行训练。此外,我们还采用了增加的随机深度增强[14],Next-ViT-S/B/L的最大drop-path率为0.1,0.2,0.2。带有 † \dagger 的模型是在大规模数据集上训练的,遵循SSLD [4]。对于 384 × 384 384 \times 384 384×384输入尺寸,我们对模型进行微调,周期为30个,权重衰减为 1 e − 8 1\mathrm{e}-8 1e8,学习率为 1 e − 5 1\mathrm{e}-5 1e5,批量大小为1024。在表4中,延迟是基于TensorRT-8.0.3框架在T4 GPU上(批量大小=8)和在iPhone12 Pro Max上的CoreML框架(iOS 16.0,批量大小=1)统一测量的。请注意,iPhone 12和iPhone 12 Pro Max都配备了相同的A14处理器。
在这里插入图片描述

4.1.2 与最新模型的比较

如表4所示,与最新的最先进方法(例如CNN、ViT和混合网络)相比,我们在准确性和延迟之间实现了最佳权衡。具体来说,与著名的CNN如ResNet101 [10]相比,Next-ViT-S在TensorRT上的延迟相似,CoreML上的速度更快(从4.0毫秒提高到3.5毫秒),准确性提高了1.7%。同时,Next-ViTL在TensorRT上比EfficientNet-B5 [32]和ConvNeXt-B快4.0倍和1.4倍,在CoreML上快3.2倍和44倍,准确性相似。在先进的ViT方面,Next-ViT-S在TensorRT上的推理速度比Twins-SVT-S [3]快1.3倍,准确性提高了0.8%。Next-ViT-B在TensorRT上的推理延迟比CSwin-T [6]压缩了64%,准确性提高了0.5%。最后,与最近的混合方法相比,Next-ViT-S在TensorRT和CoreML上的速度分别比CMT-XS快1.8倍和1.4倍,准确性提高了0.7%。与EfficientFormer-L7 [19]相比,Next-ViT-L在CoreML上的运行时间减少了20%,在TensorRT上的运行时间减少了25%,性能从83.3%提高到83.6%。Next-ViT-L还获得了15%的推理延迟收益,并且性能优于TRTViT-D。这些结果证明了所提出的NextViT设计是一个有效和有前景的范式。

4.2. ADE20K语义分割

4.2.1 实现

为了进一步验证我们的Next-ViT的能力,我们在ADE20K [47]上进行了语义分割实验,该数据集包含约20K张训练图像和2K张验证图像,涵盖150个类别。为了进行公平比较,我们也遵循先前视觉Transformer [3,21,36]在Semantic FPN [16]和UperNet [39]框架上的培训惯例。大多数模型都是在ImageNet-1k上预训练的,带有 † \dagger 的模型是在大规模数据集上预训练的。所有模型都以 224 × 224 224 \times 224 224×224的分辨率进行预训练,然后在ADE20K上以 512 × 512 512 \times 512 512×512的输入尺寸进行训练。对于Semantic FPN框架,我们采用AdamW优化器,学习率和权重衰减均为0.0001。然后我们基于Next-ViT-S/B/L的随机深度0.2,训练整个网络40K次,总批量大小为32。对于在UperNet框架上的培训和测试,我们还以随机深度0.2训练模型160K次。同样使用AdamW优化器,但学习率为 6 × 1 0 − 5 6 \times 10^{-5} 6×105,总批量大小为16,权重衰减为0.01。然后我们基于单尺度和多尺度(MS)测试mIoU,尺度从0.5到1.75,间隔为0.25。对于检测和分割任务,由于Mask R-CNN和UperNet中的一些模块不容易部署在TensorRT和CoreML上,我们只测量骨干网络的延迟,以进行公平比较,测试环境与分类相同。为简化起见,统一使用 512 × 512 512 \times 512 512×512的输入尺寸在表5和表6中测量延迟。

4.2.2 与最新模型的比较

在表5中,我们与CNN、ViT和最近的混合方法进行了比较。Next-ViT-S分别超过了ResNet101 [10]和ResNeXt101-32x4d [40]的 7.7 % 7.7\% 7.7% 6.8 % m I o U 6.8\% \mathrm{mIoU} 6.8%mIoU。Next-ViT-B在TensorRT上的推理速度比CSwin-T快2.5倍, m I o U \mathrm{mIoU} mIoU提高了 0.4 % 0.4\% 0.4%。与Uniformer-S/B [17]相比,Next-ViT-B/L在CoreML上分别快了 0.4 × / 1.3 × 0.4 \times / 1.3 \times 0.4×/1.3×,在TensorRT上分别快了 0.8 × / 1.6 × 0.8 \times / 1.6 \times 0.8×/1.6× m I o U \mathrm{mIoU} mIoU性能提高了 2.0 % 2.0\% 2.0% 1.1 % 1.1\% 1.1%。Next-ViT-B在TensorRT上的延迟比EfficientFormerL7 [19]少了38%, m I o U \mathrm{mIoU} mIoU提高了 3.5 % 3.5\% 3.5%。在UperNet [39]框架方面,Next-ViT-S在TensorRT和CoreML上的速度分别比最近的SOTA CNN模型ConvNeXt [22]快了 1.0 × 1.0 \times 1.0× 18.0 × 18.0 \times 18.0×,MS mIoU提高了 2.3 % 2.3\% 2.3%。与CSWin-S [6]相比,Next-ViT-L在TensorRT上的速度提高了 3.6 × 3.6 \times 3.6×,性能相似。广泛的实验表明,我们的Next-ViT在分割任务上具有出色的潜力。
在这里插入图片描述

4.3. 目标检测和实例分割

4.3.1 实现

接下来,我们在基于Mask R-CNN [9]框架的COCO2017 [20]上评估Next-ViT在目标检测和实例分割任务上的性能。具体来说,我们所有的模型都是在ImageNet-1K上预训练的,然后按照之前的作品[3,21,36]的设置进行微调。对于12个周期(1×)的实验,我们使用AdamW优化器,权重衰减为0.05。训练期间有500次迭代用于预热,学习率在第8和11周期下降10倍。基于36个周期(3×)的多尺度(MS)训练,模型以调整大小的图像进行训练,使得短边范围在480到800之间,长边最多为1333。学习率在第27和33周期下降10倍。其他设置与1×相同。

4.3.2 与最新模型的比较

表6显示了使用Mask R-CNN框架的评估结果。基于1×时间表,Next-ViT-S超过了ResNet101 [10]和ResNeSt50 [45]的 5.5 A P b 5.5 \mathrm{AP}^{b} 5.5APb 3.3 A P b 3.3 \mathrm{AP}^{b} 3.3APb。Next-ViT-L在TensorRT和CoreML上的运行时间分别比PVTv2-B4 [35]快了4.0倍和3.9倍, A P b \mathrm{AP}^{b} APb提高了 0.5 0.5 0.5。与EfficientFormer-L7 [19]相比,Next-ViT-B将AP从42.6提高到47.2,CoreML延迟相似,TensorRT运行时间减少了39%。NextViT-B在TensorRT和CoreML上的速度分别比TRT-ViT-D快了1.9 A P b \mathrm{AP}^{b} APb,但仍然更快。基于3×时间表,Next-ViT显示出与1×相同的优越性。
在这里插入图片描述

具体来说,Next-ViT-S超过了ResNet101的 5.2 A P b 5.2 \mathrm{AP}^{b} 5.2APb,延迟相似。与Twins-SVT-S相比,NextViT-S实现了1.2 A P b \mathrm{AP}^{b} APb的更高性能,但在TensorRT上的速度提高了3.2倍。Next-ViT-B比CSwinT高出0.5 A P b \mathrm{AP}^{b} APb,但预测时间少了2.5倍。对于Next-ViT-L,它在目标检测和实例分割方面与CSwin [6]的性能相似,但推理速度提高了79%。

4.4. 消融研究和可视化

为了更好地理解我们的Next-ViT,我们通过在ImageNet-1K分类和下游任务上评估其性能来消融每个关键设计。我们还将可视化输出特征的傅里叶谱和热图,以展示Next-ViT的内在优势。

4.4.1 下一代卷积块的影响

为了验证所提出的NCB的有效性,我们将Next-ViT中的NCB替换为其他著名块,如ResNet [10]中的Bottleneck、ConvNeXt [22]块、Twins [3]中的LSA块等。为了公平比较,我们在TensorRT上以类似的延迟一致使用NTB和NHS构建不同模型。

如表7所示,NCB在所有三项任务上都实现了最佳的延迟/准确性权衡,这验证了所提出的NCB的优势。例如,NCB在分类上比最近的ConvNeXt块 [10]高出2.9%,在检测上高出4.5 A P b \mathrm{AP}^{b} APb,在分割上高出2.8% m I o U \mathrm{mIoU} mIoU

4.4.2 NTB中不同缩减比率的影响

此外,我们探索了下一代Transformer块中缩减比率 r r r对Next-ViT整体性能的影响。如表8所述,降低缩减比率 r r r,即E-MHSA模块中的通道数,将减少模型延迟。此外, r = 0.75 r=0.75 r=0.75 r = 0.5 r=0.5 r=0.5的模型比纯Transformer模型( r = 1 r=1 r=1)表现更好。这表明以适当的方式融合多频段信号将增强模型的表示学习能力。

特别地, r = 0.75 r=0.75 r=0.75的模型实现了最佳的延迟/准确性权衡。它在分类、检测和分割上分别比基线模型( r = 1.0 r=1.0 r=1.0)高出0.4%、0.5 A P b \mathrm{AP}^{b} APb和1.0% m I o U \mathrm{mIoU} mIoU,同时更轻量级。上述结果表明了所提出的NTB块的有效性。
在这里插入图片描述

4.4.3 归一化和激活的影响

我们进一步研究了Next-ViT中不同归一化层和激活函数的影响。如表9所示,LN和GELU带来的性能提升微乎其微,但在TensorRT上的推理延迟显著增加。另一方面,BN和ReLU在整体任务上实现了最佳的延迟/准确性权衡。因此,我们在Next-ViT中统一使用BN和ReLU,以实现在现实工业场景中的高效部署。

4.4.4 可视化

为了验证我们的Next-ViT的优越性,我们在图5(a)中可视化了ResNet、Swin Transformer和Next-ViT的输出特征的傅里叶谱和热图。ResNet的谱分布表明,卷积块倾向于捕获高频信号,而难以关注低频信息。另一方面,ViT擅长捕获低频信号,但忽略了高频信号。最后,Next-ViT能够同时捕获高质量和多频段信号,这显示了NTB的有效性。

此外,如图5(b)所示,我们可以看到Next-ViT与ResNet和Swin相比,能够捕获更丰富的纹理信息和更准确的全局信息(例如边缘形状),这显示了Next-ViT更强的建模能力。
在这里插入图片描述

5. 结论

在本文中,我们提出了Next-ViT家族,它以一种新颖的策略堆叠高效的下一代卷积块和下一代Transformer块,构建了强大的CNN-Transformer混合架构,用于在移动设备和服务器GPU上高效部署。实验结果表明,Next-ViT在各种视觉任务上实现了最先进的延迟/准确性权衡,如图像分类、目标检测和语义分割。我们相信,我们的工作在视觉神经网络设计方面为学术研究和工业部署之间建立了稳定的桥梁。我们希望我们的工作能够提供新的见解,并促进更多关于现实工业部署的神经网络架构设计的研究。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1537463.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

[Redis] Redis中的set和zset类型

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…

微信,手机文件管理,通过自己软件打开——手机平板电脑编程———未来之窗行业应用跨平台架构

一、手机平板IT人员编程编辑器 专为 IT 和运维人员设计的手机和平板编程编辑器,具有便携灵活、即时响应、适应多场景、触控便捷、资源丰富、成本较低、激发创意和数据同步方便等优点。 二、手机平板现状 目前手机和平板的现状是缺乏专门针对 IT 人员的编辑工具&a…

避免服务器安装多个mysql引起冲突的安装方法

最近工作中涉及到了数据迁移的工作. 需要升级mysql版本到8.4.2为了避免升级后服务出现异常, 因此需要保留原来的mysql,所以会出现一台服务器上运行两个mysql的情况 mysql并不陌生, 但是安装不当很容易引起服务配置文件的冲突,导致服务不可用, 今天就来介绍一种可以完美避免冲突…

COMDEL电源CX2500S RF13.56MHZ RF GENERATOR手侧

COMDEL电源CX2500S RF13.56MHZ RF GENERATOR手侧

【C++ Primer Plus习题】16.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream> #include <list> using …

采用 Redis+数据库为某互联网文化公司建立网上社区平台

目录 案例 【说明】 【问题 1】(10 分) 【问题 2】(7 分) 【问题 3】(8 分) 【答案】 【问题 1】解析 【问题 3】解析 相关推荐 案例 阅读以下关于数据库缓存的叙述&#xff0c;回答问题 1 至问题 3。 【说明】 某互联网文化发展公司因业务发展&#xff0c;需要建立网…

海思Hi3559av100 sdk开发环境搭建

SDK阐释 海思官方给的sdk布局&#xff0c;如Hi3559AV100R001C02SPC031&#xff0c;其包含编译工具、硬件设计资料、软件sdk、文档等资料&#xff0c;tree布局可以构建如下形式&#xff0c;但不是必要的。 软件sdk在 01.software中&#xff0c;这个路径下才是真正的软件代码&…

嵌入式DCMI摄像头功能调试方法

STM32F407芯片带有DCMI接口,在我们的核心板上已经将接口用18PIN的FPC座子引出。 这个接口可以接我们的OV2640接口。 本节我们开始调试摄像头。 16.1. DCMI DCMI接口是ST自己定义的接口。 Digital camera interface (DCMI),是意法半导体公司产品STM32F4xx系列芯片的快速摄像头…

Redis 篇-初步了解 Redis 持久化、Redis 主从集群、Redis 哨兵集群、Redis 分片集群

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 分布式缓存概述 2.0 Redis 持久化 2.1 RDB 持久化 2.1.1 RDB 的 fork 原理 2.2 AOF 持久化 2.3 RDB 与 AOF 之间的区别 3.0 Redis 主从集群 3.1 搭建主从集群 3.2…

使用Tortoisegit完成基于Git提交日志的代码合并

前言 日常开发中除了分支merge合并外&#xff0c;经常会用cherry-pick&#xff0c;示例&#xff1a;git cherry-pick 29d9493d,如果要进行多次代码的遴选&#xff0c;可以借助git工具TortoixeGit&#xff0c;进行多次提交的遴选。 一、Git工具及常用命令 TortoiseGit工具 T…

第二十六篇——九地篇:九种形势的应对之道

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 地势的维度重新阐述了懂得人心的重要性&#xff0c;道久其归一为为别人。…

Village Exteriors Kit 中世纪乡村房屋场景模型

此模块化工具包就是你一直在寻找的适合建造所有中世纪幻想村庄和城市建筑所需要的工具包。 皇家园区 - 村庄外饰套件的模型和纹理插件资源包 酒馆和客栈、魔法商店、市政大厅、公会大厅、布莱克史密斯锻造厂、百货商店、珠宝商店、药店、草药师、银行、铠甲、弗莱切、马厩、桌…

【 html+css 绚丽Loading 】000051 方寸轮回矩

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f…

Stable Diffusion Fooocus批量绘图脚本

当当当挡~&#xff0c;流动传热数值计算之余发布点AIGC相关文章&#xff0c;希望大家能喜欢~ 1 Stable Diffusion各种UI分析对比 提示&#xff1a;此部分主要是对SD各种界面的简要介绍和对比&#xff0c;只关注Fooocus批量绘图的读者可直接跳到第二部分。 Stable Diffusion …

Python画笔案例-052 绘制彩色递归六边形

1、绘制彩色递归六边形 通过 python 的turtle 库绘制 彩色递归六边形&#xff0c;如下图&#xff1a; 2、实现代码 绘制彩色递归六边形&#xff0c;以下为实现代码&#xff1a; """彩色递归六边形.py """ import turtledef draw_circle(radius,…

每日一题——第九十九题

// PrintUniqueChart.cpp : 此文件包含 “main” 函数。程序执行将在此处开始并结束。 // // 设计算法&#xff0c;打印如下图案&#xff1a; #include<stdio.h>int main() {int i, j;for (i 0; i < 5; i){//每行开始先打印空格//控制每行前的空格for (int space 0…

中秋之际,唱响工体!玛丽亚·凯莉2024演唱会北京站璀璨上演

续写传奇华章 启幕音乐盛典 中秋之际&#xff0c;全国数万乐迷翘首以待的音乐盛典如约而至。时隔多年&#xff0c;传奇天后玛丽亚凯莉惊艳开唱工体&#xff01; 夜幕降临&#xff0c;圆月高悬&#xff0c;在不绝于耳的欢呼声中&#xff0c;玛丽亚凯莉以一袭流光溢彩的礼服优雅…

KVM创建的虚拟机无法访问外网

基础环境如下&#xff1a; [rootlocalhost ~]# virsh domifaddr CentOS7_YFName MAC address Protocol Address -------------------------------------------------------------------------------vnet0 52:54:00:cb:a6:0d ipv4 192.168.…

【云原生监控】Prometheus之Alertmanager报警

Prometheus之Alertmanager报警 文章目录 Prometheus之Alertmanager报警概述资源列表基础环境一、部署Prometheus服务1.1、解压1.2、配置systemctl启动1.3、监控端口 二、部署Node-Exporter2.1、解压2.2、配置systemctl启动2.3、监听端口 三、配置Prometheus收集Exporter采集的数…

c++刷题

17.电话号码的组合 来源于题解思路&#xff1a; 双指针算法 283.移动零