训练CV模型新思路来了:用NLP大火的Prompt替代微调,性能全面提升

本文涉及的产品
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_高级版,每接口累计50万次
NLP自然语言处理_基础版,每接口每天50万次
简介: 训练CV模型新思路来了:用NLP大火的Prompt替代微调,性能全面提升

大家好,我是对白。


Prompt tuning,作为NLP领域中的一个“新宠”,甚至曾被学者誉为NLP预训练新范式。


那么,它能否借鉴到CV领域并产生同样的成绩呢?


现在,来自康奈尔大学和Meta AI等机构,通过Prompt来调整基于Transformer的视觉模型,结果发现:


完全可以!


比起全面微调,Prompt性能提升显著。无论模型的规模和训练数据怎么变,24种情况中有20种都完全胜出。


47f1febc470a7613051493cf94973b15.png


与此同时,它还能大幅降低每项任务所需的存储成本。


442a90120600fae630655d4d91ec223f.png


只使用不到1%的模型参数


大家一贯使用的全面微调(full fine-tuning),需要为每个下游任务存储和部署单独的主干参数副本,成本太高,尤其是现在基于Transformer的模型越来越大,已经超过CNN架构。


所谓Prompt,最初指的是在输入文本中预编语言指令,以便预培训的语言模型后续可以直接理解各种下游任务。


它曾让GPT-3即使在少样本或零样本的情况下表现出很强的泛化能力。


最近一些成果则表明,Prompt与完全微调的性能相当,参数存储量还减少了1000倍。


NLP中的高超性能让不少人开始在CV领域中探索Prompt的魔力,不过都只局限于跨模态任务中文本编码器的输入。


在本文中,作者将他们所提出的Visual Prompt Tuning方法,简称为VPT。这是首次有人将Prompt应用到视觉模型主干(backbone),并做出成果。


具体来说,比起全面微调,VPT受最新大型NLP模型调整方法的启发,只在输入空间中引入少量可特定某任务训练的参数(不到模型参数的1%),同时在训练下游任务期间冻结(freeze)预训练模型的主干。


393ed1d1f27d2e6f3814a00b673a12d0.png


在实操中,这些附加参数只用预先加入到每个Transformer层的输入序列中,并在微调期间与线性head一起学习。


他们一共探索出两种变体:


VPT-Deep变体为Transformer编码器每层的输入预先设置一组可学习的参数;


VPT-Shallow变体则仅将提示参数插入第一层的输入。


两者在下游任务的训练过程中,只有特定于任务的提示和线性头的参数会更新,而整个Transformer编码器被冻结。


8accbe3888a308af325596dc853a4ed1.png


接下来,是骡子是马?拉出来溜溜~


20/24的优胜率



实验涉及两种在ImageNet-21k上预训练好的主干,一个来自Vision Transformer,一个来自Swin Transformer。


进行对比的微调方法有三大种,7小种,包括:


(1)完全微调:更新所有主干和分类头(classification head)参数


(2)以分类头为重点的微调,包括Linear、Partial-k和Mlp-k三种;


(3)以及在微调过程中更新一个主干子集参数或向主干添加新的可训练参数的方法,分为Sidetune、Bias和Adapter三种。


66d9d75819f8499baae8e221c01f3766.png


实验的数据集有两组,一共涉及24个跨不同领域的下游识别任务,包括:


(1)由5个基准细粒度视觉分类任务组成的FGVC;


(2)由19个不同视觉分类集合组成的VTAB-1k,细分为使用标准相机拍摄的自然图像任务(Natural)、用专用设备(如卫星图像)捕获的图像任务(Specialized)以及需要几何理解的任务(Structured),比如物体计数。


测得每项任务上的平均准确度后,得出的主要结果如下:


VPT-Deep在24个任务中有20个的表现都优于全面微调,同时使用的总模型参数显著减少(1.18× vs. 24.02×);


要知道,在NLP领域中Prompt再厉害,性能也不会超过全面微调。这说明Prompt很适用于视觉Transformer模型。


和其他微调方法相比(b、c组),VPT-Deep的性能则全部胜出。


7874e2ea8f97647ae78659c5e5c5ca84.png


此外,选择不同主干参数规模和模型规模的ViT(ViT-B、ViT-L和ViT-H)进行测试还发现,VPT方法不会受影响,依然基本保持性能领先。


ef33d6aa18e05ad61cf0672107022f98.png


而在Swin Transformer中,全面微调法的平均准确度虽然更高,但也付出了巨大的参数代价。


其他微调方法则全部不敌VPT。


d493ac6e609e74d59d3a909bb878a4c0.png


作者介绍



一作贾梦霖,康奈尔大学信息科学(Information Science)博士生,主要研究方向为视觉和文本信息的细粒度识别,截至目前共发表过4篇顶会。


77ff897abea8d2fafa649e940871c4df.png


共同一作为唐路明,也是康奈尔大学的一位计算机博士在读学生,本科毕业于清华大学数学与物理专业。


他的主要研究方向为机器学习和计算机视觉的交叉领域。


e81251bb65adf6812a8ab57fda3535ef.png


论文地址:https://arxiv.org/abs/2203.12119


相关文章
|
1月前
|
数据采集 自然语言处理 机器人
如何使用生成器来提高自然语言处理任务的性能?
如何使用生成器来提高自然语言处理任务的性能?
|
19天前
|
机器学习/深度学习 自然语言处理 PyTorch
从零开始构建nlp情感分析模型!
本教程介绍了如何使用PyTorch和Hugging Face的Transformers库构建一个情感分析模型。主要内容包括导入所需库、读取训练数据集、加载预训练的BERT模型和分词器、定义情感数据集类、划分训练集和验证集、创建数据加载器、设置训练参数、训练模型、评估模型性能以及定义和测试预测函数。通过这些步骤,可以实现一个简单而有效的情感分析模型。
49 2
|
1月前
|
自然语言处理 PyTorch 算法框架/工具
掌握从零到一的进阶攻略:让你轻松成为BERT微调高手——详解模型微调全流程,含实战代码与最佳实践秘籍,助你应对各类NLP挑战!
【10月更文挑战第1天】随着深度学习技术的进步,预训练模型已成为自然语言处理(NLP)领域的常见实践。这些模型通过大规模数据集训练获得通用语言表示,但需进一步微调以适应特定任务。本文通过简化流程和示例代码,介绍了如何选择预训练模型(如BERT),并利用Python库(如Transformers和PyTorch)进行微调。文章详细说明了数据准备、模型初始化、损失函数定义及训练循环等关键步骤,并提供了评估模型性能的方法。希望本文能帮助读者更好地理解和实现模型微调。
71 2
掌握从零到一的进阶攻略:让你轻松成为BERT微调高手——详解模型微调全流程,含实战代码与最佳实践秘籍,助你应对各类NLP挑战!
|
1月前
|
机器学习/深度学习 自然语言处理 并行计算
探索深度学习中的Transformer模型及其在自然语言处理中的应用
【10月更文挑战第6天】探索深度学习中的Transformer模型及其在自然语言处理中的应用
104 0
|
1月前
|
机器学习/深度学习 自然语言处理 异构计算
【NLP自然语言处理】初识深度学习模型Transformer
【NLP自然语言处理】初识深度学习模型Transformer
|
1月前
|
机器学习/深度学习 自然语言处理 算法
【NPL自然语言处理】带你迅速了解传统RNN模型
【NPL自然语言处理】带你迅速了解传统RNN模型
|
3月前
|
机器学习/深度学习 自然语言处理 PyTorch
PyTorch与Hugging Face Transformers:快速构建先进的NLP模型
【8月更文第27天】随着自然语言处理(NLP)技术的快速发展,深度学习模型已经成为了构建高质量NLP应用程序的关键。PyTorch 作为一种强大的深度学习框架,提供了灵活的 API 和高效的性能,非常适合于构建复杂的 NLP 模型。Hugging Face Transformers 库则是目前最流行的预训练模型库之一,它为 PyTorch 提供了大量的预训练模型和工具,极大地简化了模型训练和部署的过程。
192 2
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
【深度学习】探讨最新的深度学习算法、模型创新以及在图像识别、自然语言处理等领域的应用进展
深度学习作为人工智能领域的重要分支,近年来在算法、模型以及应用领域都取得了显著的进展。以下将探讨最新的深度学习算法与模型创新,以及它们在图像识别、自然语言处理(NLP)等领域的应用进展。
128 6
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术在自然语言处理中的应用与挑战
【10月更文挑战第3天】本文将探讨AI技术在自然语言处理(NLP)领域的应用及其面临的挑战。我们将分析NLP的基本原理,介绍AI技术如何推动NLP的发展,并讨论当前的挑战和未来的趋势。通过本文,读者将了解AI技术在NLP中的重要性,以及如何利用这些技术解决实际问题。
|
2月前
|
机器学习/深度学习 数据采集 自然语言处理
深度学习在自然语言处理中的应用与挑战
本文探讨了深度学习技术在自然语言处理(NLP)领域的应用,包括机器翻译、情感分析和文本生成等方面。同时,讨论了数据质量、模型复杂性和伦理问题等挑战,并提出了未来的研究方向和解决方案。通过综合分析,本文旨在为NLP领域的研究人员和从业者提供有价值的参考。
下一篇
无影云桌面