演进逐层标量函数实现硬件感知Transformer适配
提出一种基于遗传编程的高效框架,从预训练权重生成异构逐层标量函数,替代层归一化,避免全局归约瓶颈,仅需20个epoch即可恢复84.25%的Top-1 ImageNet-1K精度,显著降低计算复杂度和片外内存流量,推动ViT在边缘设备上的高效部署。
视觉Transformer(ViT)在图像分类、目标检测等挑战性视觉任务中取得了最先进的性能,但其在边缘设备(如手机、IoT传感器)上的部署面临两大障碍:高昂的计算复杂度和层归一化(Layer Normalization)引入的全局归约瓶颈。层归一化需要在每个Transformer层中对所有token进行统计量计算,导致片外内存访问频繁,严重拖慢推理速度。
近年来,研究人员尝试用硬件友好的标量近似替换层归一化,例如使用简单的缩放或移位操作。但这些方法对所有层采用统一的替换方案,无法适应不同层的行为差异,并且通常需要耗时的模型重新训练。
针对这一问题,来自Kieran Carrigg等人的团队提出了一种高效的硬件感知框架。该框架利用遗传编程(Genetic Programming, GP)直接从预训练权重中为每一层自动演进出一个独特的标量函数,替代原有的层归一化。演进过程不需要人工设计,GP算法通过变异和交叉操作搜索最优函数形式,目标是最小化与原始归一化行为的差异。
为了进一步降低部署成本,研究者设计了一种新颖的训练后重新对齐策略。该策略在演进完成后,仅通过少量样本对模型的输出分布进行微调,无需从头训练整个模型。实验表明,演进得到的表达式能够准确捕捉原始归一化的行为,在ImageNet-1K数据集上,其方差解释度(R²)高达91.6%,而统一的基线方法仅为70.2%。采用这种逐层标量函数后,修改后的ViT架构仅需20个训练epoch就能恢复84.25%的Top-1准确率,同时完全消除了全局归约操作。
更重要的是,该方法在保持性能的同时,大幅降低了算术复杂度和片外内存流量。由于不再需要跨token的统计量计算,模型可以在边缘加速器上高效运行,这为ViT在资源受限设备上的实际应用扫清了关键障碍。该研究为硬件感知的Transformer适配提供了新思路,有望推动视觉基础模型在边缘计算场景中的广泛采用。