ViT:3 Compact Architecture

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型重新阅读。而最新科技(Mamba,xLSTM,KAN)则提供了大模型领域最新技术跟踪。若对于具身智能感兴趣的请移步具身智能专栏。技术宅麻烦死磕AI架构设计

视觉转换器(ViT)架构已经广受欢迎,并广泛用于计算机视觉应用。然而,随着 ViT 模型规模的扩大,可训练参数直线上升,从而影响了部署和性能。因此如何进行有效的优化成为热点领域,各种的研究方向层出不穷。下图左一为基本的ViT块,左二到左五代表着紧凑架构优化法、剪枝优化法、知识蒸馏法和量化优化法。橙色虚线的部分代表每个领域重点优化的组件。

本文先来看看Compact Architecture的优化方向。Compact Architecture是指设计轻量级、高效或者紧凑的模型,同时需要在下游任务中保持高性能。它包含各种策略和方法,可在不影响性能的情况下减小模型大小、计算复杂性和内存占用。这种方法的研究集中在2021年-2022年,紧凑架构对于算力不那么充裕的终端的确是一个很好的改进。这个领域一般涉及到如下几种优化方法,要么创新整体架构,要么优化整体架构,要么进行架构搜索,要么优化注意力机制。

架构优化

2020年Reformer引入了两种技术提高Transformer的效率。利用局部敏感哈希的替换点积注意力,将其复杂度从 O(L) 更改为 O(L log L),其中 L 是序列的长度。其次使用可逆残差层而不是标准残差,允许在训练过程中只存储一次激活,而不是 N 次。


2022年EfficientFormer分析了基于ViT的模型架构和算子,没有集成MobileNet结构,是一个完全基于Transformer的模型。这个架构定义了两种元块(MetaBlock),MB4D是基于CNN,而MB3D是传统的ViT块。

它一共有4个阶段,并且在最后两个阶段仅启用MB3D。可以这么理解,一开始先用CNN,到了最后才是使用注意力。因为一方面由于MHSA的计算相对于Token长度呈二次增长,因此在早期阶段集成它会大大增加计算成本。另一方面网络的早期阶段利用CNN捕获了低级特征,而后期阶段则学习长期的依赖关系。

它其实还构建了一个超网,采用搜索算法包括找到最优的超参数Cj(每个阶段的宽度)、Nj(每个阶段的块数,即深度)和最后N个要应用MB3D的块。实验结果证明还是挺不错的,而且在iphone12运行记过还是低延时。

"小编任务这个表格可以琢磨一下,其中第二行的Type和第三行的参数规模!"


之后半年的EfficientFormerV2提出了一种低延迟、高参数效率的超网。

(a)为原来EfficientFormer1.0的模型,在2.0的版本中奖FFN(b)在所有的块中进行统一,同时将注意力机制块进行调整(c)。在高分辨率的场景利用下采样和上采样(插值)的办法,将整体延迟从3.5ms压缩到1.5ms,而没有任何性能的损失。

EfficientFormer2.0提出了一种新的超网络设计方法,该方法在维护较高的准确性的同时,可以在移动设备上运行。同时它提出了一种细粒度的联合搜索策略,该策略可以同时优化延迟和参数数量,从而找到高效的架构。

最后EfficientFormer2.0在ImageNet-1K 数据集上的准确性比MobileNetV2和MobileNetV2×1.4高出约 4%,同时具有相似的延迟和参数。

<Transformer居然还能比MobileNet快!,请细品下图>

架构搜索优化

架构搜索一般会采用特定的搜索算法来找寻最优的网络参数,进而构建超网框架。比如2022年的Vision Transformer Slimming来探索和发现针对特定任务或某些约束下量身定制的紧凑架构。

随着budget的收缩,每层头数目不断地被优化降低。下图为它和其他几种瘦身算法的对比。DeiT-S 上,ViT-Slim的搜索过程只需要约43个 GPU 小时,并且搜索的结构灵活,不同模块的维度多样。根据运行设备的accuracy-FLOPs权衡的要求采用预算阈值,并执行重新训练过程以获得最终模型。大量实验表明,ViT-Slim可以在各种视觉转换器上压缩高达 40% 的参数和 40% 的 FLOP,同时在 ImageNet 上将准确度提高约 0.6%。

早在2021年的Autoformer利用weight Entanglement训练超网,然后在预设置好的搜索空间进行采样到子网,紧接着更新子网的参数,冻结其余参数不使其更新,最终通过进化算法得到参数量最小且精度最高模型。

下图为AutoFormer 超网络的整体架构。请注意每个层和深度中的Transformer块都是动态的。实线部分表示它们是被选择的,而虚线部分则不是。下图右为AutoFormer中详细的Transformer块。在层中搜索最佳嵌入维度、头数、MLP比率、Q-K-V维度的最佳块。

不同子网的梯度在ViT中与超网的梯度冲突比CNN更严重,这导致训练过早饱和,收敛性较差。为了缓解这个问题,2022年的NASViT提出了一系列技术,包括梯度投影算法、可切换层缩放设计以及简化的数据增强和正则化训练配方。所提出的技术显著改善了所有子网的收敛性和性能。

上图为NASViT的整体架构,下图为NASViT的搜索空间。

另外NASViT的注意力机制块如下:

此外,还有TF-TAS研究了免训练架构搜索方法。UniNet引入了上下文感知下采样模块,改善了Transformer和MLP的适配能力。

注意力机制优化

这个领域的优化专注于通过引入自适应注意力、学习稀疏注意力模式和动态调整注意力机制来降低计算复杂性。Fayyaz等通过对重要标记进行评分和自适应采样来实现自适应注意力。PatchMerger提取区域Token之间的全局信息,并通过自注意力与区域Token之间的信息交换局部自注意力。


如上图所示DynamicViT提出的预测模块(中间部分)插入到Transformer 块之间,以根据前一层产生的特征选择性地修剪掉信息量较少的Token。

上图通过可视化展示了修剪过程,从直观上还是比较好理解。通过这样的算法,后续层中处理的Token会大幅减少。


此外还有一种高效的视觉Transformer骨干网络SepViT,它借鉴深度可分离卷积的思想,通过深度可分离自我注意力实现局部-全局信息交互。

SepViT利用窗口令牌嵌入和分组自注意力,以较低的计算成本实现窗口间的注意力关系,提升远程视觉交互。实验表明,SepViT在性能与延迟之间实现了出色的权衡,相较于同类模型,在ImageNet分类上提升了精度并降低了延迟,同时在语义分割、目标检测和实例分割等任务中也表现优异。

相关推荐
昨日之日20061 小时前
Moonshine - 新型开源ASR(语音识别)模型,体积小,速度快,比OpenAI Whisper快五倍 本地一键整合包下载
人工智能·whisper·语音识别
浮生如梦_1 小时前
Halcon基于laws纹理特征的SVM分类
图像处理·人工智能·算法·支持向量机·计算机视觉·分类·视觉检测
深度学习lover1 小时前
<项目代码>YOLOv8 苹果腐烂识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·苹果腐烂识别
热爱跑步的恒川2 小时前
【论文复现】基于图卷积网络的轻量化推荐模型
网络·人工智能·开源·aigc·ai编程
阡之尘埃4 小时前
Python数据分析案例61——信贷风控评分卡模型(A卡)(scorecardpy 全面解析)
人工智能·python·机器学习·数据分析·智能风控·信贷风控
孙同学要努力6 小时前
全连接神经网络案例——手写数字识别
人工智能·深度学习·神经网络
Eric.Lee20216 小时前
yolo v5 开源项目
人工智能·yolo·目标检测·计算机视觉
其实吧37 小时前
基于Matlab的图像融合研究设计
人工智能·计算机视觉·matlab
丕羽7 小时前
【Pytorch】基本语法
人工智能·pytorch·python
ctrey_7 小时前
2024-11-1 学习人工智能的Day20 openCV(2)
人工智能·opencv·学习