探索多模态预训练:MAnTiS、ActionCLIP、CPT与CoOp的Prompt技巧

news/2024/7/24 9:33:47 标签: prompt

上一篇博文整理了
预训练新范式(Prompt-tuning,Prefix-tuning,P-tuning)
,主要是围绕NLP上的成果,具体的概念本文也不做过多赘述。本篇文章将主要整理几篇有代表性的Prompt方法在多模态领域中的应用。

Multimodal Conditionality for Natural Language Generation

Prompt用于Natural Language Generation多模态NLG任务。

先从NLG任务过渡到Vision-language的应用吧,这篇文章主要是利用图片信息来增强文本的生成。如上图,在生成商品介绍文案时,如果能结合商品的图片,必然能够得到更贴切的文案。然后本文使用了一个十分直观的Prompt方法,将多模态序列作为前缀Prompt放到decoder输入序列的前面,进而中解码过程中分享多模态信息即可。具体操作如下图:

输入由multimodal conditioning data和generation组成。左边的multimodal的输入是image和text(即商品title),分别用ResNet-152和embedding映射到语言模型的同一个空间中。同时作为条件的文本输入和生成序列一同进行编码。最后再经过Transformer Decoder得到输出的描述。

paper:https://arxiv.org/pdf/2109.01229.pdf

ActionCLIP: A New Paradigm for Video Action Recognition

Prompt用于Action Recognition动作识别问题。

  • 动作识别问题是一个很CV的任务了,一般的方式是采用上图(a)所示的单模态框架,即先理解视频内容,再预测一组固定的预定义类别。但但但其完全忽略了标签label所包含的语义信息(人类做识别的时候会很自然的对比脑海中的相关语言概念),只将标签映射到一个固定维数的空间中,无迁移/预测能力。
  • 因此作者提出图(b)所示的Prompt新框架,即在输入端就纳入label信息,将其与对应的视频特征进行关联。这样做不仅可以增强视频表征的语义性,同时能够具备很强的zero-shot的迁移能力。另一个优势是,这种多模态输入完全可以利用现在已经做了大量工作的多模态预训练模型。关于
    多模态预训练
    模型博主过往文章做过整理,不再赘述。

作者提出的新范式的具体做法大概可以分为 “pre-train, prompt, and fine-tune”,模型图如下。pre-train指利用现有的多模态预训练模型,然后改装我们的任务适应模型,最后再在自己的数据集上进行fine-tune。这样的做法,通过prompt保持住pre-trained模型的强大表征性能,又节省了很多的计算资源。

具体的框架图不太容易看,主要先看图a是主框架部分。主框架分别对视频和文本做两种Prompt。分别是textual prompt和visual prompt

  • textual prompt。这是我们比较熟悉的模式,不过作者提供了三种模式:prefix prompt, cloze prompt and suffix prompt。这个在之前的
    综述博文
    中都有提到过了。比如label是“watering plants”,那么输入的句子将被改装成“play a human action of [watering planrts]”。具体可以看图b的示意。然后通过encoder得到表示。
  • visual prompt。为了充分理解视频,它分为三个大部分:pre-network prompt, in-network prompt and post-network prompt。pre-network(图c)主要对输入部分进行改动,对所有的输入帧的所有patch都进行时间+空间的位置编码,进行attention计算。in-network(图d)在相邻层间插入temporal shift模块便于相邻帧间的特征交换。post-network(图e-g)是四种对不同时间片段的tokens进行交互建模的模块,MeanP指时间维度上的Mean pooling,Conv1D/LSTM是应用于时间维度上的一维卷积或LSTM,Transf是vision transformer encoder。

然后拿到这两部分的特征之后,再做相似度的计算得到最后的动作识别结果。

paper:https://arxiv.org/abs/2109.08472

code:https://arxiv.org/abs/2109.08472

CPT:Colorful Prompt Tuning for Pre-Training Vision-Language Models

Prompt用于Visual Grounding视觉定位问题。

这篇文章提出的Prompt方法是Colorful Prompt Tuning(彩色提示调优),它主要的思路是在图像和文本中使用共同的颜色来标识,以将视觉定位问题变成填空问题来解决跨模态差异。与以往路线的不同如上图所示:

  • 图a和图b是传统的视觉定位方法。a是指先用大量的数据来预训练,即使用[mask]机制来盖住token,然后还原信息以提升表示的质量。
  • 图b是fnetune,图中画的路线是使用[CLS]做二分类来判断定位的问题。
  • 图c是本文的CPT方法咯。很直观的可以看到它用不同颜色来区分不同的实体模块,然后构建一个Prompt模版为: xxx is in [mask] color,然后在[mask]上预测对应的该是哪个颜色即可。

同时由于Prompt这种范式自身拥有的生成能力,使得CPT改装一下也可以在其他视觉任务上进行应用,如下图所示。如果做目标检测是 xxx is a [mask]等等。

paper:https://arxiv.org/pdf/2109.11797.pdf

CLIP

在整理CoOp前还是放一下经典的CLIP,更完整的整理在
传送门
,CLIP中用到Prompt的地方也是它处理句子-图像对的方式,如下图所示,dog 这一label会被改造成 “A photo of a dog”,然后被mask,再尝试通过模型算内积相似度来预测出这个词,也就能做好分类了,由于是生成句子的感觉,所以其实CLIP是十分适合做zero-shot 的分类的。

Learning to Prompt for Vision-Language Models

CLIP实际上就是prompt在visual-language model中的一个应用,所以CoOp实际是在CLIP的基础上进一步进行的改进。不过它受到了AutoPrompt的启发会更多一些,前面的一些工作的Prompt方式都是基于人工模版(如xxx is [label]),连续型自动模版的Prompt会是更加不错的选择。所以CoOp的结构可以如下图所示,前面是一个learnable context,而不是人工模版。

然后这个[class]信息(即label)可以放到生成的虚拟模板的中间,前面和后面都可以,因为后续的一些连续型自动模版Prompt的研究都证明了模型是不一定需要符合自然语言的连贯性的。learnable context将和不同类别的word embedding拼接之后再进行后面的过程。然后其他地方,image encoder和text encoder和CLIP都比较类似,优化的目标也是使得和图片对应的prompt预测分数最大。

另外还有两种有意思的变体:

  • 在class的前后都插入learnable context,以增加prompt的灵活性。
  • 设计class-specific context(CSC),让所有类别的prompt参数独立(目前是所有参数都是共享的),实验结果证明这种做法在一些细粒度分类任务中效果更好。

下一篇继续更新其他文章:

  • 多模态预训练中的Prompt(ALPRO,Frozen)

http://www.niftyadmin.cn/n/5547000.html

相关文章

【chatgpt】 PyTorch中reshape和view

在 PyTorch 中,reshape 和 view 都用于改变张量的形状,但它们在实现和使用上有一些重要的区别。理解这些区别对于在复杂的张量操作中选择合适的方法非常关键。 view 方法 连续性要求:view 方法要求原始张量在内存中是连续的。如果张量不是连…

Sql 导入到 Excel 工具

Sql 导入到 Excel 工具 这个VBA宏的步骤如下: 通过文件对话框选择SQL文件。读取文件内容。解析文件中的每一行,如果包含“insert into”,则提取表名。检查是否已经存在以表名命名的工作表,如果不存在则创建新的工作表。将数据插…

基于java+ssm+jsp实现的网上购物系统(文末源码+lw+ppt)23-45

1 摘 要 本文首先实现了网上购物系统设计与实现管理技术的发展随后依照传统的软件开发流程,最先为系统挑选适用的言语和软件开发平台,依据需求分析开展控制模块制做和数据库查询构造设计,随后依据系统整体功能模块的设计,制作系…

认识同源策略

同源策略是一种浏览器安全机制,用于限制一个源的文档或脚本如何与另一个源的资源进行交互。源由协议(如HTTP或HTTPS)、域名和端口号组成。如果两个URL的协议、域名和端口都相同,则它们具有相同的源。 同源策略主要影响以下几个方…

2024全网最全面及最新且最为详细的网络安全技巧五 之 SSRF 漏洞EXP技巧,典例分析以及 如何修复 (下册)———— 作者:LJS

五.SSRF 漏洞EXP技巧,典例分析以及 如何修复 (下册) 目录 五.SSRF 漏洞EXP技巧,典例分析以及 如何修复 (下册) 5.4gopher 协议初探 0x01 Gopher协议 0x02 协议访问学习 复现环境 centos7 kali 2018 发送http get请求 发送http post请求 5.5 SSRF…

CTF php RCE (一)

0x01 引言 首先进入题目 应该是大部分都是一段白盒PHP审计,然后我们为了命令执行,绕过或者是钻空子等等操作,来拿到flag 0x02 基础 0x01 传参方式 这里有两个工具,hackbar和burpsuite,这两个工具非常实用 大家可以自己Googl…

如何理解http与https协议,他们有什么区别?

写在前面的话,关于 HTTP 和 HTTPS 的问题,常常会被很多学习者忽略,HTTP、HTTPS 不就是网址的开头吗,有啥好了解的,浏览器的引擎实现了这个协议,在开发关系不大,但想要深入一些理解数据传输原理&…

【js面试题】深入理解DOM操作:创建、查询、更新、添加和删除节点

面试题:DOM常见的操作有哪些 引言: 在前端开发中,DOM(文档对象模型)操作是日常工作中不可或缺的一部分。DOM提供了一种以编程方式访问和更新文档内容、结构和样式的接口。 任何html或 xml 文档都可以用dom表示为一个由…