CV君 2025-10-29 13:08 江苏
SNELLA,一种更高效、更强大的视觉模型参数高效微调新方法。
当我们在谈论微调巨大的预训练视觉模型时,计算资源和内存总是绕不开的话题。为了让这些“大块头”能更轻巧地适应下游任务,参数高效微调(PEFT)技术应运而生。而在众多PEFT方法中,稀疏微调(只调整模型中最关键的一部分权重)因其出色的性能备受关注。不过,传统方法通常采用“两步走”策略:先定位、再更新,这不仅过程繁琐,还特别耗内存。
今天,我们介绍一项来自中国科学院和中国科学院大学的最新研究,他们提出了一种名为 SNELLA 的全新方法,彻底改变了这一现状。它将稀疏微调变成了一个优雅的“一步式”端到端过程,不仅性能达到了新的SOTA,还实现了高达 31.1%-39.9% 的内存节省。
论文标题: Kernelized Sparse Fine-Tuning with Bi-level Parameter Competition for Vision Models
作者: Shufan Shen, Junshu Sun, Shuhui Wang, Qingming Huang
机构: 中国科学院, 中国科学院大学
现有方法的局限
让我们先看看老路子是怎么走的。传统的稀疏微调方法通常分两步:
定位权重:首先根据梯度信息,找出与下游任务最相关的那些权重。但这个过程忽略了微调过程中参数本身的变化,有点“刻舟求剑”的意思,限制了最终的性能。
更新权重:找到权重后,通过一个稀疏掩码(sparse mask)只更新这些被选中的权重。问题在于,优化器为了计算梯度,仍然需要存储整个模型的全量权重矩阵,导致内存开销居高不下。
上图直观展示了传统两阶段范式与SNELLA一体化方法的区别。
SNELLA:一步到位的优雅解决方案
SNELLA巧妙地将权重的定位和更新融合在一个端到端的框架中,既省内存,又提性能。它的核心思想可以分解为两大创新点。
核化低秩适应(Kernelized Low-Rank Adaptation)
为了降低内存,SNELLA并没有直接更新庞大的权重矩阵,而是通过加上一个稀疏的“增量矩阵”来实现。这个增量矩阵本身不是直接学习的,而是由两个更小的低秩矩阵通过一个非线性核函数(non-linear kernel function)合成的。
这有点像LoRA的升级版。传统的LoRA用两个低秩矩阵的乘积来近似权重的更新,但表达能力有限。SNELLA引入的核函数,相当于将低秩矩阵映射到更高维的空间再做运算,极大地增强了模型的表达能力,让权重的更新更加灵活和强大,从而更好地适应下游任务。
上图展示了不同核函数的表达能力,可以看出非线性核(如Mix-K)能够更好地拟合复杂的稀疏矩阵。
自适应双层稀疏分配(Adaptive Bi-level Sparsity Allocation)
那么,模型如何智能地决定哪些权重“值得”更新呢?SNELLA设计了一套精妙的“竞争上岗”机制。
层间竞争:首先,模型中的不同层会根据各自的“重要性”来竞争可调整的参数预算。这个重要性分数综合了该层对任务损失的敏感性(sensitivity)和不确定性(uncertainty),越重要的层能分到越多的更新名额。
层内竞争:在每一层内部,所有权重更新的重要性也会被评估,只有那些得分最高的“优胜者”才会被保留,其余的则被置为零。
这套双层竞争机制是完全自适应的,并且贯穿整个训练过程,确保了最宝贵的计算资源总是花在最关键的参数上。
实验效果:性能与效率的双重胜利
SNELLA在图像分类、息肉分割和文生图等多种任务上都进行了广泛验证,并与多种主流PEFT方法进行了对比。
在标准的FGVC和VTAB-1k分类基准测试中,SNELLA全面超越了之前的方法。特别是在细粒度视觉分类(FGVC)任务上,相比强大的SPT-LoRA,SNELLA的Top-1准确率提升了整整 1.8%(从90.1%提升到91.9%),这是一个非常显著的进步。
更令人印象深刻的是它的内存效率。实验表明,随着模型参数规模从86M增长到632M,SNELLA相比全量微调等方法,能够节省 31.1%到39.9% 的内存。这意味着我们可以在消费级硬件上微调更大、更强的模型。
在下游任务的定性评估中,SNELLA同样表现出色。例如,在医疗影像的息肉分割任务中,它能更准确地识别和分割出病变区域。
在个性化的文生图任务中,SNELLA也能更好地学习和还原特定概念的视觉特征,生成与文本描述更一致的图像。
总结
CV君认为,SNELLA提出的这种将核方法与动态稀疏性结合的思路非常新颖,它不仅解决了现有稀疏微调方法的痛点,也为未来如何更高效地利用大模型提供了宝贵的启发。作者已经开源了代码,强烈推荐感兴趣的同学去尝试和探索。
大家对这种端到端的稀疏微调方法怎么看?欢迎在评论区一起交流!