摘要

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.pswp.cn/news/912807.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/912807.shtml
英文地址,请注明出处:http://en.pswp.cn/news/912807.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【硬核数学】2.5 “价值标尺”-损失函数:信息论如何设计深度学习的损失函数《从零构建机器学习、深度学习到LLM的数学认知》

欢迎来到本系列硬核数学之旅的第十篇,也是我们对经典数学领域进行深度学习“升级”的最后一站。我们已经拥有了强大的模型架构(基于张量)、高效的学习引擎(反向传播)和智能的优化策略(Adam等)。…

雷卯针对灵眸科技EASY EAI nano RV1126 开发板防雷防静电方案

一、应用场景 1. 人脸检测 2. 人脸识别 3. 安全帽检测 4. 人员检测 5. OCR文字识别 6. 人头检测 7. 表情神态识别 8. 人体骨骼点识别 9. 火焰检测 10. 人脸姿态估计 11. 人手检测 12. 车辆检测 13. 二维码识别 二、 功能概述 1 CPU 四核ARM Cortex-A71.5GHz 2 …

【记录】Ubuntu|Ubuntu服务器挂载新的硬盘的流程(开机自动挂载)

简而言之,看这张图片就好(可以存一下,注意挂载点/data可以自定义,挂载硬盘的位置/dev/sdb要改成步骤1中检查的时候查到的那个位置,不过这个图的自动挂载漏了UUID,可以通过blkid指令查找)&#x…

六、软件操作手册

建议在飞书平台阅读此文。 我将沿着初来乍到的用户的浏览路径介绍“诤略参谋”应用。 目录 一、用户信息1.1 注册、登录、自动登录、忘记密码、修改用户名、修改密码、退出登录与个性化设置1.2 认识主界面与任务系统1.3 语义审查、Knowledge Cutoff 审查1.4 重要内容未保存提醒…

电脑键盘不能打字了怎么解决 查看恢复方法

电脑键盘打不了字,这是我们电脑使用过程中,偶尔会遇到的电脑故障问题。一般来说,电脑键盘打不出字,可能是硬件故障、驱动问题或系统设置错误等多种原因引起。本文将详细介绍一些常见的原因和解决方法,帮助用户恢复正常…

基于STM32的土豆种植自动化灌溉系统设计与实现

📌 项目简介 随着农业现代化发展及水资源短缺问题日益突出,传统土豆种植方式在浇灌效率与用水科学性方面暴露出诸多问题。本文基于STM32F103C8T6微控制器,设计并实现了一种智能化的土豆种植自动灌溉系统,集成多种环境传感器(温湿度、土壤湿度、光照)、控制设备(水泵、…

第8篇:Gin错误处理——让你的应用更健壮

作者:GO兔 博客:https://luckxgo.cn 分享大家都看得懂的博客 引言 在Web应用开发中,错误处理是保证系统稳定性和用户体验的关键环节。Gin作为高性能的Go Web框架,提供了灵活的错误处理机制,但许多开发者在实际项目中仍会遇到错误处理混乱、异…

【PyCharm】Python安装路径查找

PyCharm应用笔记 第一章 Python安装路径查找 文章目录 PyCharm应用笔记前言一、电脑设置查找二、资源管理器查找 前言 本文主要介绍几种Python安装路径查找的方法。 一、电脑设置查找 简述过程:设置》应用》安装的应用》搜索框输入Python。 注:电脑使用…

数据结构:递归:汉诺塔问题(Tower of Hanoi)

目录 问题描述 第一性原理分析 代码实现 第一步:明确函数要干什么 第二步:写好递归的“结束条件” 第三步:写递归步骤 🌳 递归调用树 🔍复杂度分析 时间复杂度:T(n) 2^n - 1 空间复杂度分析 问题描…

synetworkflowopenrestydpdk

一.skynet 1. Skynet 的核心架构是什么?简述其进程与服务模型。 Skynet 采用多进程多服务架构。主进程负责管理和监控,多个工作进程(worker)负责实际服务运行。每个服务(service)是一个独立的 Lua 虚拟机&…

【甲方安全视角】安全防御体系建设

文章目录 前言一、云安全防护能力第一阶段:搭建安全防护设施第二阶段:安全防护设施的精细化运营第三阶段:安全运营周报输出二、IT安全防护能力(一)办公网安全设施建设(二)办公网安全运营三、基础安全防护能力(一)物理安全(二)运维安全(三)安全应急响应四、总结前言…

计算机组成原理与体系结构-实验一 进位加法器(Proteus 8.15)

目录 一、实验目的 二、实验内容 三、实验器件 四、实验原理 4.1 行波进位加法器 4.2 先行进位加法器 4.3 选择进位加法器(尝试猜测原理) 五、实验步骤与思考题 一、实验目的 1、了解半加器和全加器的电路结构。 2、掌握串行进位加法器和并行进…

react+antd Table实现列拖拽,列拉宽,自定义拉宽列

主要插件Resizable,dnd-kit/core,dnd-kit/sortable,dnd-kit/modifiers 其中官网有列拖拽,主要结合Resizable 实现列拉宽,isResizingRef 很重要防止拖拽相互影响 1.修改TableHeaderCell const isResizingRef useRef(…

光照解耦和重照明

项目地址: GitHub - NJU-3DV/Relightable3DGaussian: [ECCV2024] 可重新照明的 3D 高斯:使用 BRDF 分解和光线追踪的实时点云重新照明 可优化参数 gaussians.training_setup(opt) if is_pbr:: direct_env_light.training_setup…

Kafka 运维与调优篇:构建高可用生产环境的实战指南

🛠️ Kafka 运维与调优篇:构建高可用生产环境的实战指南 导语:在生产环境中,Kafka集群的稳定运行和高性能表现是业务成功的关键。本篇将深入探讨Kafka运维与调优的核心技术,从监控管理到性能优化,再到故障排…

AR 地产互动沙盘:为地产沙盘带来变革​

在科技飞速发展的今天,AR(增强现实)技术应运而生,为解决传统地产沙盘的困境提供了全新的思路和方法。AR 技术,简单来说,是一种将计算机生成的虚拟信息与真实环境相融合的技术。它通过摄像头、传感器等设备获…

端到端自动驾驶系统关键技术

一、感知决策一体化模型架构 单一神经网络整合全流程 端到端神经网络能够直接将传感器输入映射为控制输出,消除了传统模块化架构中感知、规划、控制等独立模块之间的割裂。传统架构中,感知模块负责识别环境信息,决策模块根据感知结果进行路…

Vue Vue-route (2)

Vue 渐进式JavaScript 框架 基于Vue2的学习笔记 - Vue-route重定向和声明式导航 目录 Vue-route路由 重定向 首页默认访问 不存在匹配 声明式导航 路由原理 使用示例 自定义class类 Tag设置 版本4路由 改变 示例 总结 Vue-route路由 重定向 首页默认访问 希望访…

Mabl 基于云端的智能化自动化测试平台

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 </

Linux/Dog

Dog Enumeration nmap 第一次扫描发现系统对外开放了22、80端口&#xff0c;端口详细信息如下 ┌──(kali㉿kali)-[~/Desktop/vegetable/HTB] └─$ nmap -sC -sV -p 22,80 -oA nmap 10.10.11.58 Starting Nmap 7.95 ( https://nmap.org ) at 2025-06-26 03:36 EDT Nmap s…