当前位置: 首页 > 科技观察

训练CV模型的新思路来了:用流行的NLPPrompt代替fine-tuning,性能全面提升

时间:2023-03-20 11:05:08 科技观察

Prompttuning作为NLP领域的“新宠”,甚至被被学者誉为NLP预训练的新范式。那么,它是否可以借鉴CV领域并产生相同的结果?现在,从康奈尔大学和MetaAI等机构,通过Prompt调整基于Transformer的视觉模型,发现:完全可以!与全面微调相比,Prompt的性能有明显提升。在24个案例中的20个案例中,无论模型和训练数据的大小如何,它都表现出色。同时,它大大降低了每个任务的存储成本。只使用不到1%的模型参数。大家一直使用的fullfine-tuning需要为每个下游任务单独存储和部署backbone参数的副本。成本太高,尤其是现在基于Transformer的模型越来越流行。越大,就已经超越了CNN架构。所谓Prompt,原本是指在输入文本中预编程语言指令,让预训练的语言模型可以直接理解下游的各种任务。它让GPT-3即使在很少或零样本的情况下也能表现出很强的泛化能力。最近的一些结果表明,Prompt具有与完全微调相当的性能,参数存储减少了1000倍。在NLP中的精湛表现,让很多人在CV领域探索Prompt的神奇之处,但都仅限于跨模态任务中文本编码器的输入。在本文中,作者将他们提出的VisualPromptTuning方法简称为VPT。这是第一次有人将Prompt应用到视觉模型的骨干上并做出结果。具体来说,与full-scalefine-tuning相比,VPT受到了最新的大规模NLP模型调优方法的启发,只引入了少量的参数(不到模型参数的1%)可以针对特定的目标进行训练输入空间中的任务。冻结预训练模型的骨干。在实践中,这些附加参数仅被添加到每个Transformer层的输入序列中,并在微调期间与线性头一起学习。他们探索了两种变体:VPT-Deep变体为Transformer编码器每一层的输入预先设置了一组可学习的参数;VPT-Shallow变体仅将提示参数插入到第一层的输入中。在下游任务的训练过程中,只有任务特定的提示和线性头的参数被更新,而整个Transformer编码器被冻结。接下来,是骡子还是马?拉出来~20/24胜率实验涉及ImageNet-21k上的两个预训练骨干,一个来自VisionTransformer,一个来自SwinTransformer。微调方法一共有3种,7小类,包括:(1)fullfine-tuning:更新所有backbone和classificationhead(分类头)参数(2)fine-tuningfocusingonclassificationheads,包括Linear,Partial-k和Mlp-k有3种;(3)以及在fine-tuning过程中更新backbone子集参数或向backbone中加入新的可训练参数的方法,分为三种:Sidetune、Bias和Adapter。实验数据集分为两组,共涉及24个不同领域的下游识别任务,包括:(1)由5个基准细粒度视觉分类任务组成的FGVC;(2)FGVC由19个不同的视觉分类集VTAB-1k组成,细分为使用标准相机拍摄的自然图像任务(Natural)、使用专用设备(如卫星图像)拍摄的图像任务(Specialized),以及需要几何理解的任务(结构化),例如对象计数。在测量了每个任务的平均精度后,主要结果如下:VPT-Deep在24个任务中的20个上优于完全微调,同时使用的总模型参数明显更少(1.18×vs.24.02×);要知道无论Prompt在NLP领域有多么强大,其性能也不会超过fullfine-tuning。这说明Prompt非常适合可视化的Transformer模型。与其他微调方法(b组和c组)相比,VPT-Deep的性能全部胜出。此外,选取不同骨干参数尺度和模型尺度的ViT(ViT-B、ViT-L、ViT-H)进行测试,发现VPT方法不会受到影响,依然基本保持领先性能.在SwinTransformer中,综合微调的方法虽然平均精度更高,但也付出了巨大的参数代价。其他微调方法都不如VPT。作者介绍了康奈尔大学信息科学博士生贾梦琳。主要研究方向为视觉和文本信息的细粒度识别。截至目前,他已经发表了4篇顶级会议。合作者是唐路明,他也是康奈尔大学计算机科学博士生。他毕业于清华大学,获得数学和物理学士学位。他的主要研究方向是机器学习和计算机视觉的交叉领域。论文地址:https://arxiv.org/abs/2203.12119