Transformer高效Finetune的技巧(多任务场景)


Transformer高效Finetune的技巧(多任务场景)

仅用于站内搜索,没有排版格式,具体信息请跳转上方微信公众号内链接

↑↑↑关注后”星标”kaggle竞赛宝典
kaggle竞赛宝典
作者:文章摘自圆圆的算法笔记
Transformer高效Finetune的技巧(多任务场景)
今天给大家介绍一篇CVPR2025的论文,这篇论文提出了一种预训练Transformer模型在多任务场景下的高效finetune方法,可以有效提取不同任务之间可以互相利用的信息,提升多任务finetune效果,并且finetune参数量相比多任务LoRA方法有明显下降。
论文标题:TADFormer:Task-AdaptiveDynamicTransFormerforEfficientMulti-TaskLearning
下载地址:https ://arxiv.org/pdf/2501.04293
1
研究背景
在图像领域,将预训练的模型应用到下游不同任务中是一个核心问题,一般都会基于下游不同任务进行finetune。随着Transformer大模型在图像领域的应用,全量参数finetune成本增加,给予LoRA的部分参数finetune方法显著提升了大模型finetune的效率。
在多任务finetune场景中,目前的SOTA方法是基于LoRA的MTLoRA方法。这种方法采用LoRA的矩阵分解思路,将原始参数拆解成两个总参数量更小的矩阵,只finetune矩阵分解部分参数。不同任务有一组自己的task-specific参数,所有任务共享一组share参数,三个部分的结果加到一起作为后续层的输入。
然而,这种方法一方面由于多任务独立的LoRA部分,增加了finetune的参数量;另一方面对于多任务之间可迁移的信息学习的太少,没有显示的学习各个任务的关系。本文提出的TADFormer,就为了解决这个问题。通过精细设计任务共享部分和任务独立部分的交互,实现更显示的迁移学习建模,并且相比MTLoRA也减少了参数量。从下图也可以看出,TADFormer相比MTLoRA需要finetune的参数更少,取得的效果也更好。
2
建模方法
下面展开介绍TADFormer的模型结构。主体结构沿用MTLoRA,多阶段Transformer提取图像不同粒度的表征,最后将各种粒度表征融合,经过Decoder生成各个任务的预测结果。每个阶段的Transformer由多组多任务共享Transformer模块以及多组多任务自适应Transformer组成。
TADFormer的核心组件有以下4个模块。首先是一个所有任务数据共享的Task-SharedModule(TS-Module),这个模块的结构如下图所示,就是一个基础的LoRA结构,任务无关的特征输入这个网络,同时过预训练参数冻结的参数和LoRA的矩阵分解参数,结果相加。

第三个核心模块是Task-AwareModule(TA-Module)。这个模块是本文的核心模块,用来实现不同任务的个性化建模。本文的思路是利用参数生成的方式,实现不同任务的个性化网络参数,实现个性化建模。然而,直接基于输入embedding生成网络参数,计算量非常大。为了解决这个问题,一方面将输入表征pooling减少输入维度,另一方面生成每个channel的卷积网络参数,减少输出参数量大小。通过输入参数、输出参数维度的降低,形成了一个轻量级的个性化参数生成网络。这个参数会作用于LoRA中Down的输出,其输出作为LoRA中Up的输入。

3
实验效果
下表对比了在Swin-T上采用不同方法进行finetune,各个任务上的效果。通过对比可以发现,TADFormer在各项任务上都取得了更优的finetune效果。
下图问本文中各个任务prompt和图像patch的attention打分分布,对于不同任务,模型能够正确关注图像中对应patch的信息。
END
如果觉得有帮助麻烦分享在看点赞~


文章作者: ZejunCao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ZejunCao !
  目录