IRET:基于注意力引导的动态计算分配,实现边缘端Vision Transformer高效部署
1. 项目概述当Vision Transformer遇上资源瓶颈在计算机视觉领域Transformer架构凭借其强大的全局建模能力已经彻底改变了我们对图像理解的范式。从ViTVision Transformer开始研究者们不断证明将自然语言处理中的自注意力机制迁移到图像块Patch序列上能够在ImageNet等大型数据集上取得超越传统卷积神经网络CNN的精度。然而这份强大的能力背后是一个众所周知的“阿喀琉斯之踵”惊人的计算开销和内存占用。问题的核心在于自注意力机制。对于一个包含N个图像块的输入其计算复杂度与N的平方成正比。当处理高分辨率图像时N会变得非常大导致模型在推理时速度缓慢内存消耗激增。这对于云端服务器或许尚可接受但对于手机、摄像头、无人机等边缘设备来说就成了难以承受之重。这些设备通常受限于电池续航、散热能力和有限的算力如移动端GPU或NPU直接部署标准的Vision Transformer几乎是不可能的任务。因此一个核心的研究方向应运而生如何在保持模型精度的前提下大幅削减Vision Transformer的计算和内存成本过去几年社区提出了多种思路比如多尺度处理、静态/动态的Token剪枝、提前退出Early Exit机制以及优化注意力计算本身如线性注意力。这些方法各有千秋但或多或少存在一些局限有的需要复杂的重训练有的缺乏对输入内容的动态感知能力有的则在剪枝后难以维持模型的表征能力。正是在这样的背景下IRETIncremental Resolution Enhancing Transformer提出了一种新颖的“聚焦与遗忘”协同优化策略。它不再将剪枝视为一个单纯的“丢弃”过程而是将其与一个积极的“增强”过程相结合。简单来说IRET会像人眼观察世界一样先快速扫视全局使用较小的嵌入维度锁定关键区域高注意力Token然后忽略无关背景遗忘低注意力Token同时将“目光”聚焦于关键区域获取更多细节通过增量采样增加其嵌入维度。这种动态的、由注意力引导的计算资源分配机制使得IRET能够在精度和效率之间实现前所未有的灵活权衡为边缘设备上的高效视觉模型部署提供了一个极具潜力的新方案。2. IRET核心设计思路从“遗忘”到“聚焦”的范式转变传统的模型压缩或加速方法无论是剪枝、量化还是知识蒸馏其目标往往是做一个“减法”在尽可能不影响输出的前提下减少模型的大小或计算量。IRET的创新之处在于它做的是一个“有选择的加减法”对不重要的部分做减法遗忘同时对重要的部分做加法聚焦。这个设计哲学源于一个直观的观察并非图像中的所有信息都对最终任务如分类同等重要。2.1 “遗忘”机制注意力引导的动态Token剪枝Token剪枝并非新概念其基本思想是识别并移除对最终预测贡献微乎其微的图像块。IRET在这方面借鉴并优化了前人的工作例如DynamicViT和ATS。其核心流程如下注意力分数获取在标准的Vision Transformer中通常会引入一个特殊的[CLS] token用于最终的分类。这个[CLS] token在每一层都会与其他所有图像块token进行交互其产生的注意力分数Attention Score矩阵中[CLS] token对其他token的注意力权重可以被直观地解释为每个图像块对于最终分类决策的重要性度量。阈值化决策IRET在特定的编码器层论文中设置在网络的第4、5、6层引入一个可配置的注意力阈值。对于当前层中所有token计算其从[CLS] token收到的注意力分数。动态丢弃将注意力分数低于预设阈值的token标记为“不重要”并在后续的计算中将其完全丢弃。这意味着后续的注意力计算、前馈网络计算都将跳过这些token从而直接减少了计算图中参与运算的节点数实现了计算量的动态降低。这里的关键在于“动态”。阈值是固定的但每个输入图像产生的注意力分布不同因此被丢弃的token集合是因图而异的。一张背景纯净、主体突出的图片可能被丢弃大量token而一张细节复杂、主体不明确的图片则可能保留更多token。这种数据依赖的剪枝策略比静态的、一刀切的剪枝更加高效和合理。2.2 “聚焦”机制基于可学习采样的增量特征增强这是IRET最具独创性的部分。如果仅仅做“遗忘”模型在处理被保留的重要token时其信息容量嵌入维度并没有变化。IRET认为既然我们已经识别出了关键区域就应该为它们分配更多的计算资源以获取更精细的特征。这就是“聚焦”的含义。“聚焦”通过一个可学习的2D提升方案Learnable 2D Lifting Scheme来实现。这个模块可以理解为一个轻量级的、参数可学的图像特征采样器。增量采样IRET模型在开始时接收的是一个下采样后的低分辨率输入例如112x112而非标准的224x224并且初始的token嵌入维度也较小例如192维。这个“粗糙”的视图用于快速建立对图像的全局上下文理解。生成新视角可学习的2D提升方案以原始输入图像为源学习生成多个不同的特征子带Sub-band。你可以把它想象成学习提取图像的“边缘”、“纹理”、“色彩分布”等不同方面的特征图但这些特征是通过数据驱动学到的而非预设的滤波器如DWT。选择性注入在每一个IRET编码器层当进行“遗忘”操作后系统会检查每个被保留的token即高注意力token。对于每一个这样的token模型会从2D提升方案生成的对应子带中找到其对应空间位置的图像块将其编码为一个新的特征向量。特征融合这个新生成的特征向量会被拼接到该token现有的特征向量之后。于是这个重要token的嵌入维度就增加了。例如从第4层的192维增加到第5层的294维再到第6层的348维。维度的增加意味着该token能够承载和表达更丰富、更细微的信息。这个过程模拟了人类的认知先瞥一眼低分辨率、小嵌入找到兴趣点高注意力区域然后定睛细看引入更多细节特征。通过这种方式IRET实现了计算资源的非均匀分配——将宝贵的计算力集中在任务最相关的图像区域上。2.3 双机制协同实现精度与效率的优雅权衡“遗忘”和“聚焦”不是两个独立的模块而是一个协同工作的闭环系统。“遗忘”为“聚焦”提供依据注意力分数是决定谁被丢弃、谁被增强的唯一标准。这确保了资源分配的合理性。“聚焦”补偿“遗忘”的潜在损失单纯丢弃token可能会损失信息导致精度下降。但IRET通过对保留的token进行特征增强在一定程度上弥补了因丢弃而可能丢失的细节信息使得模型在减少总计算量的同时仍能在关键区域保持甚至提升表征能力。动态平衡的“控制旋钮”注意力阈值是这个协同系统的核心控制参数。提高阈值意味着剪枝更激进遗忘更多计算量下降更明显但可能损失更多信息降低阈值则剪枝更保守计算量下降有限但精度更有保障。论文中的实验曲线清晰地展示了通过调节这个单一的阈值IRET可以在一条平滑的曲线上权衡精度Accuracy和计算量FLOPs这为不同资源约束的边缘场景提供了灵活的配置选项。3. 核心组件深度解析可学习2D提升方案与多出口架构3.1 可学习2D提升方案从固定变换到数据驱动采样在早期的探索中IRET团队尝试了两种简单的采样方案一是直接重复输入下采样后的图像二是使用离散小波变换DWT生成固定的LL、LH、HL、HH子带。实验结果图15a, 15b表明这两种方法效果有限。直接重复输入无法提供新的信息而DWT作为固定的、与任务无关的变换其生成的子带特征可能并非模型所需的最优补充。因此可学习的2D提升方案成为了关键突破。它的结构如图9所示借鉴了信号处理中提升方案Lifting Scheme的思想但将其中的预测器Predictor和更新器Updater模块替换为小型卷积神经网络CNN。工作原理该方案将输入图像在空间上按奇偶位置拆分为两个序列。预测器CNN根据“偶数”部分预测“奇数”部分应有的细节两者的差异构成细节子带高频更新器CNN根据“奇数”部分更新“偶数”部分得到近似子带低频。通过堆叠这样的操作可以生成多个子带。可学习优势这里的CNN参数是随整个IRET模型一起端到端训练的。损失函数公式11, 12确保其学习到的预测和更新操作是有效的。这意味着这个采样器不是在进行一个固定的数学变换而是在学习“为了帮助主Transformer模型更好地完成分类任务我应该生成什么样的补充特征图”。它是任务自适应的能够提取出对当前视觉任务最有用的增量信息。共享与效率为了减少开销多个IRET层共享同一个2D提升方案网络的大部分结构但每一层从该网络的不同阶段获取不同的子带作为输入。这样既保证了每层获得的信息是独特的又控制了参数量和计算成本。实操心得在设计类似的可学习采样或特征增强模块时一个重要的经验是必须将其与主模型的训练紧密结合。如果采样模块是预训练或固定的它很可能与主模型的学习目标脱节成为瓶颈。端到端的训练允许梯度从分类损失一直反向传播到采样器使其学会“投其所好”生成真正有助于决策的特征。3.2 多出口Multi-Exit架构实现“随时预测”为了进一步适应实时和低功耗场景IRET集成了早期退出Early Exit机制构成了一个多出口架构如图14所示。设计在Transformer编码器的中间层例如从第4层开始之后插入额外的、轻量级的分类头通常是MLP。这样模型在浅层就可以输出一个预测结果。动态推理在推理时系统会监控每一个出口分类头输出的预测置信度如softmax后的最大概率值。一旦某个中间层的预测置信度超过了预设的阈值推理过程就可以立即终止无需运行后续更深的网络层。与IRET的协同多出口机制与IRET的“遗忘-聚焦”机制是天作之合。对于简单的、背景干净的图像例如一张在纯色背景上的单一物体模型可能在浅层就已经形成了高置信度的判断同时“遗忘”机制可能已经剪除了大量token。此时早期退出可以极大地节省计算时间和能耗。对于复杂图像模型则需要运行到更深层并可能依赖“聚焦”机制增强的特征来做出准确判断。配置要点出口位置选择不宜过早。论文中选择从第4层开始因为前3层被认为是构建基础特征的阶段过早退出分类效果不佳。这需要根据具体模型和数据集进行验证。置信度阈值调优这是一个关键的权衡参数。阈值设得太低容易过早退出导致错误分类设得太高则退出的收益变小。通常需要在验证集上根据对准确率和延迟/能耗的要求进行网格搜索。分类头设计中间出口的分类头应该比最终分类头更轻量以避免引入过多额外计算。简单的单层或双层MLP是常见选择。表2和表3的实验数据清晰地展示了这种能力通过设置不同的置信度阈值IRET可以在不同的计算预算GFLOPS下运行实现精度与效率的动态适配。图20和图21则直观展示了在不同置信度和注意力阈值下图像在各个出口被分类的比例和正确率。4. 实验配置与关键参数解析要复现或理解IRET的实验有几个关键的实现细节和参数选择需要厘清。论文基于DeiT-small with hard distillation架构进行构建这是一个重要的起点因为DeiT本身就是一个经过蒸馏训练的、高效的ViT变体。4.1 模型结构参数详解输入与初始嵌入输入分辨率IRET的输入是112x112像素的图像这是对标准224x224输入的下采样。这是第一个也是最重要的计算节省来源因为序列长度N减少了4倍。初始嵌入维度对应地第一层的token嵌入维度从DeiT-small的384减少到192。这进一步大幅降低了前几层尤其是注意力计算的计算开销。IRET层插入位置论文将IRET编码器层插入到原Transformer的第4、5、6层。这个位置是经验性的选择。太早插入如前3层模型尚未建立可靠的注意力分布太晚插入则节省的计算量有限。这三层负责在初步特征基础上进行“精加工”是实施动态资源分配的合适阶段。嵌入维度增长计划这是一个精心设计的序列192 - 294 - 348 - 384。增长量递减第一次增加102维第二次54维第三次36维。这符合认知规律最初的“聚焦”带来的信息增益最大后续的增益逐渐减小。最终对齐最终增长到384维与原始DeiT-small的嵌入维度对齐确保后续的标准Transformer层可以无缝衔接。可学习2D提升方案其内部的CNN通常使用小核如1x33x1和简单的结构ConvBNReLU以确保其本身是轻量级的不会成为新的瓶颈。训练时除了主分类损失每个IRET层对应的[CLS] token也会接一个辅助分类头其损失会参与反向传播以加速2D提升方案和IRET层参数的学习。推理时这些辅助头会被移除。4.2 训练策略与超参数训练目标联合优化主分类损失和多个辅助分类损失。数据增强论文提到采用了随机丢弃omitting2D提升方案部分信息的方法这类似于一种针对性的Dropout旨在增强模型对不完整增量信息的鲁棒性模拟“聚焦”可能不完美的场景。注意力阈值这是一个在推理时设定的超参数而非训练中学习。模型在训练时通常以较低的阈值或甚至不剪枝进行以学习稳健的特征。在推理部署时根据设备算力或延迟要求动态调整此阈值来控制计算量。5. 结果分析与对比IRET的优势与启示论文中的图19是理解IRET价值的关键。它将IRET与ATS、DeiT、ResNet等模型在“精度-计算量FLOPs”的帕累托前沿Pareto Frontier上进行了对比。同架构动态调节IRET的所有数据点都来自同一个训练好的模型仅仅通过改变注意力阈值得到。这意味着部署者无需为不同的效率需求存储多个模型只需在运行时调节一个阈值即可极大地简化了模型管理和适配工作。更优的权衡曲线在低计算量区域低FLOPsIRET的精度显著高于ATS和动态剪枝的DeiT。这直接证明了“聚焦”机制的有效性——它通过对重要信息的增强补偿了因“遗忘”带来的信息损失从而在激进剪枝时仍能保持较好的精度。平滑的性能衰减随着阈值提高计算量降低IRET的精度下降曲线更为平缓。这表明其“遗忘”决策是精准的并且“聚焦”提供了有效的缓冲。对边缘计算的意义这种特性使得IRET非常适合边缘场景。在设备电量充足、任务不紧急时可以使用低阈值获得高精度当设备进入低电量模式或需要极低延迟响应时可以调高阈值以轻微的精度的代价换取更长的续航或更快的响应。这种动态适应性是静态模型或需要重训练不同尺寸模型的方案所无法比拟的。6. 潜在挑战与未来扩展方向尽管IRET展示了强大的潜力但在实际部署和进一步研究中仍需考虑以下几个问题阈值调优的自动化目前注意力阈值需要手动设置或根据经验设定。未来可以探索基于输入内容或系统资源状态如剩余电量、当前负载的自适应阈值调整机制。硬件友好性动态剪枝会导致每一层参与计算的token数量不规则这可能对GPU、NPU等擅长规则并行计算的硬件不友好可能引发负载不均衡和内存访问碎片化问题。需要设计专门的硬件加速器或高效的稀疏计算内核来充分发挥其优势。与其它技术的融合论文提到将IRET与ATS等token选择机制结合可能获得更好效果。此外还可以探索与更高效的注意力算法如线性注意力、模型量化、低秩分解等技术结合形成一套组合拳。扩展到密集预测任务目前工作主要集中在图像分类。在目标检测、语义分割等密集预测任务中如何定义“重要token”可能不是基于单一的[CLS]注意力以及如何进行“聚焦”是需要探索的新问题。个人实践思考IRET的思想其实超越了Vision Transformer本身。其核心——“根据重要性动态分配计算资源”——是一种通用的优化范式。在开发边缘AI应用时我们常常面临资源固定的硬件与多变的任务需求之间的矛盾。IRET提供了一种思路让模型本身具备“弹性”能够根据输入内容和外部约束动态调整其内部的“计算预算”。在设计模型时除了追求最高的绝对精度或许也应该将这种“可调节性”作为一个重要的设计指标。例如是否可以设计出计算量在10M到100M FLOPs之间平滑可调且精度也相应平滑变化的单一模型这对于构建真正自适应的边缘AI系统至关重要。IRET通过巧妙的“聚焦与遗忘”机制为Vision Transformer的高效化开辟了一条新路径。它不仅仅是一个更快的模型更是一个更智能、更适应环境的模型。随着边缘AI需求的爆炸式增长这种具备内在弹性和动态效率的模型设计将会变得越来越重要。