MoblieOne + FastViT + FastVLM论文解析

MoblieOne

摘要

过去的高效backbone的优化目标通常是FLOPS和参数量,但是这两个指标和模型运行时间的相关性不是很好。因此本文分析了这两个指标和模型运行时间的相关性,并识别了模型架构和优化的瓶颈,最终提出了MobileOne模型,实现了性能和时延的平衡,并可以在多个视觉任务上实现较好的性能。

介绍

仅考虑FLOPS和参数量的优化方法往往缺乏考虑对内存调用花销以及并行度的考量,比如有的模型通过共享参数减少参数量但并没有降低运行时延,另一方面一些模型使用残差链接等无参数的结构,但是实际上导致内存调用花销增大而最终导致时间时延增大。为了缓解模型的性能瓶颈,本文将训练和推理架构解耦,同时使用正则化松弛进一步优化瓶颈。本文主要有以下四点贡献:

1)设计了MobileOne这种结构,其可以实现比较好的性能和运行时延的平衡。
2)分析了目前的性能瓶颈
3)分析了训练时可重新参数化分支和训练中正则化的动态松弛的效果。结合起来,它们有助于缓解训练小型模型时遇到的优化瓶颈。
4)展现了本文的模型可以推广到不同的任务上

方法

1)指标的相关性
从表中可知FLOPS和时延有一定相关性,但是和参数量的关系不大,同时相同大小的卷积结构通常有比注意力结构有更小的时延。

2)瓶颈
激活函数
测试了多个激活函数,在相同的30层卷积结构上模型的运行时延,发现激活函数会明显改变模型的运行时延,因此本文的模型中使用了relu作为激活函数。

结构块

影响运行的时延和并行度以及内存访问有关,多分支结构因为需要储存多个分支的激活值,因此内存调用时间大幅增加,需要强制同步的块也面临一定的同步成本。因此本文模型不使用残差链接并行块,并只在最大的模型上使用Squeeze-Excite模块,这两种模块对时间的影响见表三。
3)MobileOne块
MobileOne块长下面这样:

MobileOne块以MobileNet-V1块为基准,MobileNet将一个普通卷积层分解为一个33的depthwise卷积以及11的point卷积,在此基础上,增加了过度参数化以及重参数化的直接链接以及batchnorm。因为batchnorm、卷积层、直接链接都是线性操作,因此可以直接和卷积层融合起来,通过

实验

各种指标都比较不错,在时间和性能之间做了比较不错的权衡。

FastViT

忙,忙点好啊

FastVLM

posted @ 2025-01-17 17:46  低手syy  阅读(85)  评论(0)    收藏  举报