EfficientFormer:高效低延迟的Vision Transformers

简介: 我们都知道Transformers相对于CNN的架构效率并不高,这导致在一些边缘设备进行推理时延迟会很高,所以这次介绍的论文EfficientFormer号称在准确率不降低的同时可以达到MobileNet的推理速度。

我们都知道Transformers相对于CNN的架构效率并不高,这导致在一些边缘设备进行推理时延迟会很高,所以这次介绍的论文EfficientFormer号称在准确率不降低的同时可以达到MobileNet的推理速度。

Transformers能否在获得高性能的同时,跑得和MobileNet一样快?为了回答这个问题,作者首先回顾了基于vit的模型中使用的网络架构和运算,并说明了一些低效的设计。然后引入一个维度一致的纯Transformer(没有MobileNet块)作为设计范例。最后以延迟为目标进行优化设计,获得一系列称为EfficientFormer的最终模型。最后还设计了EfficientFormerV2。

延迟分析

作者在论文中发现:

1、内核大、步幅大的补丁嵌入是移动设备上的速度瓶颈。

2、一致的特征维度对于令牌混合器的选择很重要。MHSA不一定是速度瓶颈。

3、convn - bn比LN (GN)-Linear更有利于延迟,对于延迟的降低,精度的小损失是可以接受的。

4、非线性的延迟取决于硬件和编译器。

EfficientFormer整体架构

该网络由补丁嵌入(PatchEmbed)和元Transformer块堆栈组成,表示为MB:

X0为批大小为B,空间大小为[H, W]的输入图像,Y为期望输出,m为块总数(深度)。MB由未指定的令牌混合器(TokenMixer)组成,后跟一个MLP块:

Xi|i>0是第i MB的中间特征。阶段Stage(或S)被定义为几个MetaBlocks的堆栈。该网络包括4个阶段。在每个阶段中,都有一个嵌入操作来投影嵌入维数和下采样令牌长度,表示为嵌入,如上图所示。

也就是说effentformer是一个完全基于transformer的模型,没有集成MobileNet结构。

Dimension-Consistent设计

网络从四维划分开始,后期进行三维划分。首先,输入图像由stem层进行处理,这是两个3 × 3,步幅为2的卷积作为patch嵌入:

其中Cj是第j级的通道号(宽度)。然后网络从MB4D开始,使用简单的Pool mixer提取低级特征:

式中,ConvB,G表示是否有BN和GeLU跟随卷积。在处理完所有MB4D块后,执行一次重塑以转换特征大小并进入3D分区。MB3D使用传统的ViT:

式中,LinearG表示线性后接GeLU, MHSA为:

其中,Q, K, V分别表示查询,键和值,b是参数化的作为位置编码的注意力偏差。

在定义了总体体系结构之后,下一步作者就开始搜索高效的体系结构。

以延迟为目标架构优化

定义了一个搜索高效模型的超级网络MetaPath (MP),它是一些可能块的集合:

其中I表示单位路径。

在网络的S1和S2中,每个区块可以选择MB4D或I,在S3和S4中,每个区块可以选择MB3D、MB4D或I。

在最后两个阶段只启用MB3D的原因有2个:1、由于MHSA的计算相对于令牌长度呈二次增长,因此在早期阶段将其集成将大大增加计算成本。2、网络的早期阶段捕获低级特征,而后期阶段学习长期依赖关系。

搜索空间包括Cj(每个Stage的宽度),Nj(每个Stage的块数,即深度)和最后N个应用MB3D的块。

搜索算法使用Gumbel Softmax采样对超级网络进行训练,以获得每个MP内块的重要性得分:

其中α评估MP中每个块的重要性,因为它表示选择一个块的概率。ε ~ U(0,1)保证探索。对于S1和S2, n∈{4D, I},对于S3和S4, n∈{4D, 3D, I}。

最后通过收集不同宽度的MB4D和MB3D的设备上延迟(16的倍数),构建一个延迟查找表。

也就是说EfficientFormer的架构不是通过人工设计的,而是通过NAS(Neural Architecture Search)搜索出来的。作者通过查找表计算每个动作产生的延迟,并评估每个动作的准确率下降。根据每延迟精度下降(-%/ms)选择动作。这个过程迭代地执行,直到达到目标延迟。(细节见论文附录)

结果展示

ImageNet上与广泛使用的基于cnn的模型相比,EfficientFormer在准确率和延迟之间实现了更好的权衡。

传统的vit在延迟方面仍然表现不佳。EfficientFormer-L3的top-1准确率比PoolFormer-S36高1%,在Nvidia A100 GPU上快3倍,在iPhone NPU上快2.2倍,在iPhone CPU上快6.8倍。

EfficientFormer-L1的Top1精度比MobileViT-XS高4.4%,并且在不同的硬件和编译器上运行得更快。

MS COCO数据集,EfficientFormers的表现始终优于CNN (ResNet)和Transformer (PoolFormer)。

使用ADE20K,在类似的计算预算下,EfficientFormer始终比基于CNN和transformer的主干性能好得多。

论文地址:

EfficientFormer: Vision Transformers at MobileNet Speed

https://avoid.overfit.cn/post/eb0e56c5753942cf8ee70d78e2cd7db7

目录
相关文章
|
数据采集 Python
python并发编程:使用多线程,Python爬虫被加速10倍
python并发编程:使用多线程,Python爬虫被加速10倍
326 1
python并发编程:使用多线程,Python爬虫被加速10倍
|
运维 搜索推荐 数据安全/隐私保护
什么是C端 什么是B端 这里告诉你
C端产品早已将运营专业化,并细化到各维度的运营了,比如运营的工种可以细分为“活动运营岗、用户运营岗、增长裂变岗、内容运营岗”等等。
19033 0
什么是C端 什么是B端 这里告诉你
|
SQL
记一次不常见到主从延迟问题
Slave_SQL_Running_State: Waiting for dependent transaction to commit 导致的主从延迟
8351 1
|
传感器 监控 Ubuntu
Linux下监控CPU和GPU温度的三款命令行工具
如今,即使技术已经日新月异,但是笔记本电脑的散热还是一个常见问题。监视硬件温度可以帮助您诊断笔记本电脑过热的原因。
6288 0
Linux下监控CPU和GPU温度的三款命令行工具
|
4月前
|
数据采集 数据可视化 关系型数据库
基于python大数据的电影数据可视化分析系统
电影分析与可视化平台顺应电影产业数字化趋势,整合大数据处理、人工智能与Web技术,实现电影数据的采集、分析与可视化展示。平台支持票房、评分、观众行为等多维度分析,助力行业洞察与决策,同时提供互动界面,增强观众对电影文化的理解。技术上依托Python、MySQL、Flask、HTML等构建,融合数据采集与AI分析,提升电影行业的数据应用能力。
|
存储 大数据 测试技术
用于大数据分析的数据存储格式:Parquet、Avro 和 ORC 的性能和成本影响
在大数据环境中,数据存储格式直接影响查询性能和成本。本文探讨了 Parquet、Avro 和 ORC 三种格式在 Google Cloud Platform (GCP) 上的表现。Parquet 和 ORC 作为列式存储格式,在压缩和读取效率方面表现优异,尤其适合分析工作负载;Avro 则适用于需要快速写入和架构演化的场景。通过对不同查询类型(如 SELECT、过滤、聚合和联接)的基准测试,本文提供了在各种使用案例中选择最优存储格式的建议。研究结果显示,Parquet 和 ORC 在读取密集型任务中更高效,而 Avro 更适合写入密集型任务。正确选择存储格式有助于显著降低成本并提升查询性能。
1648 1
用于大数据分析的数据存储格式:Parquet、Avro 和 ORC 的性能和成本影响
|
存储 移动开发 大数据
HTML5 Web IndexedDB 数据库详解
IndexedDB 是一种高效的浏览器存储方案,允许在本地存储大量结构化数据,支持索引和事务,适用于需要离线和大数据处理的应用。它由数据库、对象仓库等组成,通过键值对存储数据,确保数据一致性和完整性。本介绍展示了如何创建、读取、更新和删除数据,以及事务和错误处理的最佳实践。
1248 10
|
10月前
|
机器学习/深度学习 人工智能 安全
AI大模型安全风险和应对方案
AI大模型面临核心安全问题,包括模型内在风险(如欺骗性对齐、不可解释性和模型幻觉)、外部攻击面扩大(如API漏洞、数据泄露和对抗性攻击)及生成内容滥用(如深度伪造和虚假信息)。应对方案涵盖技术防御与优化、全生命周期管理、治理与行业协同及用户教育。未来需关注动态风险适应、跨领域协同和量子安全预研,构建“技术+管理+法律”三位一体的防护体系,推动AI安全发展。
3345 1
|
弹性计算 数据库连接 Nacos
阿里云ECS服务器在docker中部署nacos
docker pull nacos 失败,docker部署nacos遇到的问题,nacos数据库连接,nacos端口映射
816 1