当前位置: 首页 > news >正文

OFA-PT:统一多模态预训练模型的Prompt微调

摘要

Prompt微调已成为模型微调的新范式,并在自然语言预训练甚至视觉预训练中取得了成功。参数高效的Prompt微调方法通过优化soft embedding并保持预训练模型冻结,在计算成本低和几乎无性能损失方面展现出优势。在本研究中,我们探索了Prompt微调在多模态预训练模型中的迁移。具体来说,我们通过在每一层添加一串可学习的embedding,并在下游任务中仅优化这些可学习embedding,从而在一个统一的序列到序列预训练模型上实现Prompt微调。针对一系列多模态理解与生成任务的实验结果表明,我们的方法OFA-PT能够在多模态生成与理解任务上取得与全参数微调相当的性能。此外,在与其他参数高效微调方法(例如Adapter、BitFit等)的对比中,也显著优于统一多模态预训练模型。同时,与全参数微调模型相比,Prompt微调模型在面对对抗攻击时展现出更强的鲁棒性。我们进一步发现,包括Prompt长度、Prompt深度和重参数化等实验因素对模型性能有显著影响,因此我们基于实证提出了Prompt微调设置的建议。代码和模型检查点可在:https://github.com/OFA-Sys/OFA 获取。

1 引言

近年来,在自然语言处理(NLP)(Radford et al., 2018;Devlin et al., 2019;Yang et al., 2019;Liu et al., 2019;Raffel et al., 2020;Brown et al., 2020)和计算机视觉(Chen et al., 2020b,a,c;Chen and He, 2021;Bao et al., 2021;He et al., 2021b)领域,基于大模型和大数据的大规模预训练取得了巨大成功。受BERT类模型(Devlin et al., 2019)成功的启发,研究者发现预训练可以显著提升跨模态表示学习算法在下游任务中的性能(Chen et al., 2020d;Lu et al., 2019;Su et al., 2020;Tan and Bansal, 2019;Wang et al., 2021)。

沿着这一研究路线,统一的多模态预训练模型逐渐受到广泛关注。最近,一系列基于序列到序列学习框架的模型已统一了跨模态理解和生成任务,并取得了当前最优性能(Li et al., 2022;Wang et al., 2022a;Yu et al., 2022;Alayrac et al., 2022;Wang et al., 2022b;Chen et al., 2022)。此外,需要注意的是,统一多模态预训练模型的规模正在迅速扩大,呈现出与大型语言模型(Raffel et al., 2020;Brown et al., 2020;Chowdhery et al., 2022)类似的发展趋势。

尽管大规模预训练模型在多个领域取得了巨大成功,但训练此类模型需要大量计算成本。传统的全参数微调虽然在提升性能方面有效,但在训练效率方面存在不足,尤其当预训练模型规模较大时尤为明显。因此,在大规模基础模型的应用中,迫切需要参数高效的迁移学习方法。在这一领域中最受欢迎的方法是Prompt微调(Liu et al., 2021a),其在自然语言处理(Li and Liang, 2021;Liu et al., 2021c;Lester et al., 2021;Liu et al., 2021b;He et al., 2021a;Gu et al., 2022)和计算机视觉(Jia et al., 2022;Du et al., 2022;Zhou et al., 2021, 2022)中均取得了成功。与全参数微调相比,Prompt微调仅需微调极少量参数(例如1%)。Prompt微调将大部分预训练模型参数保持冻结,仅调整若干Prompt embedding和必要的输出层。近期研究表明,Prompt微调可以帮助预训练模型在不同下游任务中取得与全参数微调相当的性能,包括自然语言理解与生成、图像分类等。然而,针对多模态预训练模型,尤其是统一多模态预训练模型的参数高效迁移方法研究仍较为稀缺。随着统一多模态预训练模型的规模不断扩大,如何以更低成本对其进行微调,成为多模态预训练领域的重要研究课题。

本研究填补了这一空白,率先探索统一多模态预训练模型的Prompt微调。我们提出OFA-PT,这是一种基于最近开源的统一多模态预训练模型OFA(Wang et al., 2022a)的Prompt微调实现。更具体地说,在下游迁移阶段,我们在encoder和decoder的每一层插入一串可学习的embedding,并仅调整这些embedding的参数,保持预训练模型的其他参数冻结不变。在其他设置方面,我们采用与全参数微调相同的流程,即将数据转换为序列到序列学习的格式,并通过最大似然估计对模型进行优化。与全参数微调相比,Prompt微调所需调整的参数量(约占总量的1%)显著减少,从而降低了计算成本(例如内存消耗)。

通过大量实验证明,参数高效的Prompt微调能够使预训练模型在4个多模态下游任务(涵盖理解与生成)上取得与全参数微调相当的性能。为了分析全参数微调与Prompt微调的差异,我们基于以下假设:Prompt微调在冻结大多数预训练模型参数的前提下应具备更强的模型鲁棒性。我们在对抗攻击场景下对多种微调方法进行了实验,观察到的现象验证了该假设。进一步地,我们深入探讨了Prompt微调的实现细节,并研究了实验因素(例如Prompt长度、Prompt深度和重参数化)是否显著影响下游性能。我们发现,一般来说,较长的Prompt长度(超过20个token)是更优的选择,而实验表明长度为64在大多数情况下效果最佳,因为更长的Prompt序列不仅会增加计算成本,还可能导致性能下降。此外,我们还表明,引入额外可训练参数的重参数化方式并不能显著提升下游任务的性能。

2 方法

本节介绍我们所提出方法的细节,提供了在统一的多模态预训练模型上进行prompt tuning的具体实现方法。整体框架如图1所示。

2.1 基础知识

我们选择统一的sequence-to-sequence框架,因为它统一了理解任务和生成任务,并且我们特别在最近开源的state-of-the-art模型OFA*(Wang et al., 2022a)上实现了prompt tuning。简而言之,该模型是基于Transformer(Vaswani et al., 2017)构建的encoder-decoder框架。

encoder和decoder均由多个Transformer层组成。具体而言,encoder层包括一个multi-head self attention和一个逐点Feed-Forward Network(FFN)。为了建立encoder与decoder之间的连接,Transformer的decoder层相比encoder层额外包含一个cross-attention模块。cross-attention本质上是multi-head attention,其中key K K K 和 value V V V 是由encoder输出状态变换得到的,而不是输入本身。这样的结构可以处理提供sequence-to-sequence格式输入的任务。

在本研究中,我们关注于用于多模态预训练模型迁移阶段的prompt tuning。我们将预训练阶段的prompt learning留作未来研究。

2.2 多模态预训练模型的提示调优

接下来,我们介绍在sequence-to-sequence多模态预训练模型上实现prompt tuning的具体细节。需要注意的是,我们的方法可以扩展到其他生成式多模态预训练模型,例如BERT-like模型。

在这里插入图片描述

Basic Implementation

我们重点实现的是prefix tuning(Li and Liang, 2021;Liu et al., 2021b),因为其在自然语言理解和生成任务中均表现出色。与其他prompt tuning方法(如P-Tuning(Liu et al., 2021c)、Prompt Tuning(Lester et al., 2021)、PPT(Gu et al., 2022))相比,将soft prompt embedding添加到每一层,在相对较小的模型上也展现出更强的训练稳定性和更优的下游任务性能。

具体来说,对于encoder和decoder,我们在每一层中添加可调的prompt embedding。形式上,我们将预训练模型表示为函数 M ( ⋅ ) M(\cdot) M(),prompt embedding的生成函数表示为 ${ \mathcal { G } } ( \cdot ) $。其公式如下所示:
y = M ( G ( L , l ) , x ) ( 1 ) \begin{array} { r } { y = \mathcal { M } ( \mathcal { G } ( L , l ) , x ) } \end{array}\quad(1) y=M(G(L,l),x)(1)
其中 x x x 表示多模态输入, L L L 表示层数, l l l 表示prompt长度,该长度应由超参数预定义。在每一层中,我们将soft prompt embedding p ( i ) p^{(i)} p(i) 前缀到输入的hidden states h ( i ) h^{(i)} h(i) 上。需要注意的是,我们仅在Transformer层前缀prompt embedding。在最简单的实现中,prompt生成器 G G G 是一个稀疏的embedding矩阵,其形状为 R L × l × h R^{L \times l \times h} RL×l×h,我们在第 i i i 层和第 j j j 个索引位置选择相应的embedding作为prompt embedding。以下我们还将提供一些更复杂实现的示意图,并在本研究中对这些方法进行对比。

在下游微调过程中,我们仅对每一层新添加的prompt embedding进行调优,而保持大型预训练模型的参数不变。因此,虽然只需更新极少量的参数(例如1%),但计算成本远低于全量微调的开销。

重参数化(Reparameterization)
除了在每一层添加稀疏embedding矩阵的最简单实现外,更复杂的实现方式是添加一个编码器(例如一个MLP层)对prompt embedding进行重参数化。在本研究中我们也考察了重参数化在该背景下的影响。

Prompt长度
与以往研究(Li and Liang, 2021;Liu et al., 2021b)类似,我们发现prompt embedding的长度对不同下游任务的性能表现有显著影响。在本研究中,我们进一步探讨了该因素对不同下游任务模型性能的影响。

Prompt深度
为了探究prompt embedding插入位置的影响,我们研究了prompt深度问题。具体而言,我们将其简化为三种设置:仅向encoder添加prompt embedding、仅向decoder添加prompt embedding,以及同时向两者添加。

3 实验

为了验证prompt tuning在多模态预训练模型上的有效性,我们在5个跨模态任务上进行了实验。具体而言,我们在跨模态生成任务上进行了实验,包括指代表达理解(referring expression comprehension)和图像描述生成(image captioning),以及跨模态理解任务,包括视觉蕴含(visual entailment)、图像描述和视觉问答(VQA)。我们在实验中采用了常用的base规模和large规模模型,参数规模分别约为180M和470M。更多实验设置的细节可参见附录A.1。

在这里插入图片描述
在这里插入图片描述

3.1 数据集与评估指标

指代表达理解(Referring Expression Comprehension)
我们在指代表达理解的三个子任务上进行了实验,分别是 RefCOCO、RefCOCO+ 和 RefCOCOg(Yu et al., 2016;Mao et al., 2016)。该任务要求模型在给定图像上,根据文本查询生成一个正确的边界框。我们使用 Acc@0.5 作为评估指标。

图像描述(Image Captioning)
我们在 Microsoft COCO 图像描述数据集(Chen et al., 2015)上评估方法的图像描述能力。在该任务中,模型应生成能够反映图像信息的描述性文本。我们采用 BLEU@4(Papineni et al., 2002)、METEOR(Lavie and Agarwal, 2007)、CIDEr(Vedantam et al., 2015)和 SPICE(Anderson et al., 2016)作为评估指标。

视觉蕴含(Visual Entailment)
为评估蕴含关系的表现,我们在 SNLI-VE(Xie et al., 2019)数据集上进行了实验。给定一张图像和一段文本,模型应判断它们之间的关系是蕴含(entailment)、矛盾(contradiction)还是中性(neutrality)。我们遵循 Wang et al.(2022a)中的设置,将给定前提(premise)加入输入中。评估指标为准确率(accuracy)。

视觉问答(VQA)
我们在 VQA 2.0(Antol et al., 2015;Goyal et al., 2017)数据集上进行了实验。该任务要求模型根据图像及其相关问题生成正确的答案。我们遵循 Wang et al.(2022a)的设置,采用全候选评估方法,即模型需要为3,129个最常见的答案中的每一个生成概率。评估指标为准确率(accuracy)。

3.2 实验结果

下文提供了详细的实验结果,包括 prompt tuning 与 finetuning 的对比,以及与其他参数高效调优方法的对比。

与 Finetuning 的对比
我们在表1和表2中展示了4个任务的实验结果。总体而言,对于base规模模型,OFA-PT 的表现显著低于原始finetuned的OFA;但对于large规模模型,OFA-PT 能够实现相当的性能。具体而言,在指代表达理解任务中,对于base模型,prompt tuning 在 RefCOCO、RefCOCO+ 和 RefCOCOg 三个子任务上平均落后finetuning达5.64,差距显著;但在large模型上,prompt tuning 仅略微低于finetuning,差距为0.59。在图像描述任务中,对于base模型,OFA-PT 落后于finetuned OFA 约4.0,但在large模型中,两者性能差距仅为0.8。

在视觉蕴含任务中,两种方法之间的差距较小,仅为0.17。在VQA任务中,base模型下,prompt tuning 与finetuning之间的性能差距为3.63;而在large模型的 test-std 集上,该差距为2.17。与其他任务不同,即使在large模型上,该任务中的性能差距仍较为显著。我们推测,这是由于 prompt tuning 对超参数较为敏感,因此该任务仍需要更好的超参数设置搜索策略。
在这里插入图片描述

温馨提示:
阅读全文请访问"AI深语解构" OFA-PT:统一多模态预训练模型的Prompt微调

http://www.dtcms.com/a/264767.html

相关文章:

  • 暴力破解漏洞与命令执行漏洞
  • PHP 命令行工具的常用选项详解
  • 图像二值化方法及 Python OpenCV 实现
  • 深度剖析NumPy核心函数reshape()
  • 香港券商交易系统开发与解决方案全景报告:云原生、跨境协同与高性能架构的创新实践
  • qt-- 学习笔记11(mingw编译,windeployqt生成执行文件exe,同一exe文件不同文件夹结果不同)
  • 分布式定时任务:Elastic-Job-Lite
  • P3842 [TJOI2007] 线段(动态规划)
  • RAC (ReactiveCocoa) 的实现机制与消息传递策略
  • XILINX Kintex 7系列FPGA的架构
  • ubentu服务器版本安装Dify
  • 【leetcode算法300】:哈希板块
  • 多项式带余除法——线性代数题目为例
  • 【.NET Framework 窗体应用程序项目结构介绍】
  • WHAT - React Native 中 Light and Dark mode 深色模式(黑暗模式)机制
  • 如何在Excel中每隔几行取一行
  • 【PMP】项目管理入门:从基础到环境的体系化拆解
  • 分布式定时任务:xxl-job
  • 苍穹外卖day12--Apache POI导出Excel报表
  • [MIA 2025]CLIP in medical imaging: A survey
  • 多云密钥统一管理实战:CKMS对接阿里云/华为云密钥服务
  • .npmrc和.yarnrc配置文件介绍:分别用于 Node.js 中的 npm(Node Package Manager)和 Yarn 包管理工具
  • oracle集合三嵌套表(Nested Table)学习
  • 【第三章:神经网络原理详解与Pytorch入门】01.神经网络算法理论详解与实践-(1)神经网络预备知识(线性代数、微积分、概率等)
  • 微控制器中的EXTI0(External Interrupt 0)中断是什么?
  • uniapp socket 封装 (可拿去直接用)
  • 可编辑33页PPT | 某材料制造企业工业互联网平台解决方案
  • 云原生环境下部署大语言模型服务:以 DeepSeek 为例的实战教程
  • 6种iOS开发中常用的设计模式
  • Qt designer坑-布局内子控件的顺序错乱