探索多模态预训练:MAnTiS、ActionCLIP、CPT与CoOp的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.mzph.cn/news/868225.shtml

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

相关文章

【ARMv8/v9 GIC 系列 1.7 -- GIC PPI | SPI | SGI | LPI 中断使能配置介绍】

请阅读【ARM GICv3/v4 实战学习 】 文章目录 GIC 各种中断使能配置PPIs(每个处理器私有中断)SPIs(共享外设中断)SGIs(软件生成的中断)LPIs(局部中断)GIC 各种中断使能配置 在ARM GICv3和GICv4架构中,不同类型的中断(如PPIs、SPIs、SGIs和LPIs)可以通过不同的方式进…

RabbitMQ(集群相关部署)

RabbitMQ 集群部署 环境准备:阿里云centos8 服务器,3台服务器,分别进行安装; 下载Erlang Erlang和RabbitMQ版本对照:https://www.rabbitmq.com/which-erlang.html 创建yum库配置文件 vim /etc/yum.repos.d/rabbi…

生物墨水:3D组织生物打印的基石

生物墨水是3D组织生物打印技术的核心组成部分。生物墨水通常由生物材料(如水凝胶聚合物)与所需的细胞和/或其他生物大分子(例如生长因子)混合而成。为了成功地进行组织生物打印,生物墨水必须满足以下要求: …

为什么要设计DTO类

为什么要使用DTO类,下面以新增员工接口为例来介绍。 新增员工 1.1 需求分析和设计 1.1.1 产品原型 一般在做需求分析时,往往都是对照着产品原型进行分析,因为产品原型比较直观,便于我们理解业务。 后台系统中可以管理员工信息…

Bug记录:【com.fasterxml.jackson.databind.exc.InvalidDefinitionException】

bug记录 序列化错误 异常com.fasterxml.jackson.databind.exc.InvalidDefinitionException: 完整错误(主要是FAIL_ON_EMPTY_BEANS) 00:15:20.250 [http-nio-3000-exec-1] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet] - S…

数据驱动的内容优化:Kompas.ai如何提升内容表现

在数字化营销时代,内容是企业与用户沟通的重要桥梁。然而,随着信息量的爆炸性增长,如何让内容在激烈的竞争中脱颖而出,成为每个营销人员面临的问题。数据驱动的内容优化策略,通过精准分析和科学决策,帮助品…

线程安全(一)Java锁(锁分类、锁升级、锁优化)

目录 一、乐观锁二、悲观锁三、自旋锁3.1 自旋锁的优缺点:3.2 自旋锁的时间阈值:3.3 自旋锁的开启:四、Synchronized 同步锁4.1 Synchronized 作用范围:4.2 Synchronized 核心组件:4.3 Synchronized 实现:4.4 Synchronize 补充:五、ReentractLock 锁5.1 Lock 接口的主要…

业务发展中 10 个最佳的 OKR 示例

业务发展是推动组织增长、培养合作伙伴关系和扩大市场覆盖范围的重要职能。目标和关键结果 (OKR) 可以作为推动业务发展工作和实现战略目标的强大工具。在这里,我们展示了业务发展中的十个最佳 OKR 示例,为旨在在该领域脱颖而出并实现其增长目标的组织提…

产品体验周刊第2期(2024-7-8)

产品体验 阿里系产品的营销活动 无论是支付宝,饿了么,咸鱼等,产品的营销活动频次过高,且几乎任何一个活动页都让人无法理解想要表达什么,只有满屏的红包、优惠等字眼,开始对这类活动脱敏也是基于这些产品…

【漏洞复现】方正全媒体采编系统——SQL注入

声明:本文档或演示材料仅供教育和教学目的使用,任何个人或组织使用本文档中的信息进行非法活动,均与本文档的作者或发布者无关。 文章目录 漏洞描述漏洞复现测试工具 漏洞描述 方正全媒体采编系统(FZMediaEditor)是一…

在pycharm中使用jupyter

在pycharm中使用jupyter 前置条件:你的环境中应该有juptyer ,没有的话 pip install jupyter 点击项目目录,右键->new->jupyter notebook 打开file settings 找到 jupyter server (按照默认的用代理服务器就行) P…

大连外贸建站公司wordpress主题模板

Robonaut萝卜纳特WP外贸站模板 适合用于工业机器人公司出口做外贸搭建公司官方网站使用的WordPress模板。 https://www.jianzhanpress.com/?p7091 优衣裳WordPress外贸建站模板 简洁的wordpress外贸独立站模板,适合服装、衣服、制衣外贸公司搭建公司官方网站使用…

python- Flask模块 demo

文章目录 前言python- Flask模块 demo1. 主要特点2. demo 准备工作3. demo 实例4. 测试 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&#xff0c…

前端JS特效第21集:HTML5响应式多种切换效果轮播大图切换js特效代码

HTML5响应式多种切换效果轮播大图切换js特效代码&#xff0c;先来看看效果&#xff1a; 部分核心的代码如下(全部代码在文章末尾)&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-t…

分别通过LS和RML进行模型参数辨识matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 最小二乘法(LS)参数辨识 4.2 递归最大似然估计(RML)参数辨识 5.完整程序 1.程序功能描述 分别通过LS和RML进行模型参数辨识matlab仿真&#xff0c;仿真输出参数辨识的误差&#xff0c…

InvalidVersionSpecError: Invalid version spec: =2.7解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

微软Edge浏览器全解析:从速度到安全性的全面体验

微软Edge浏览器&#xff0c;自2015年首次亮相以来&#xff0c;已经成为了浏览器市场上不可忽视的一股力量。它不仅集成了Windows 10的许多原生功能&#xff0c;还在速度和安全性上进行了大量的优化。本文将全面解析微软Edge浏览器的各项特性&#xff0c;带您领略这款浏览器的魅…

idea 默认路径修改

1.查看 idea 的安装路径&#xff08;右键点击 idea 图标&#xff0c;查看路径 &#xff09; “C:\Program Files\JetBrains\IntelliJ IDEA 2021.3.1\bin\idea64.exe” 在 bin 目录查看 idea.properties 文件&#xff0c;修改以下四个路径文件 # idea.config.path${user.home}/…

超高精电容传感器PCAP01调试+LABVIEW数据可视化调试手记

PCAP01超高精电容传感芯片STM32LabView可视化 文章目录 PCAP01超高精电容传感芯片STM32LabView可视化一、PCAP01介绍1.1、PCAP01引脚定义1.2、电容测量1.3、温度测量1.4、PCAP典型测试电路 二、PCAP01的STM32驱动2.1、SPI协议配置2.2、PCAP01浮空电容测量内部温度测量操作流程 …

Java Swing 5种布局管理器基本示例

在Java Swing中&#xff0c;常用的布局管理器有BorderLayout、FlowLayout、GridLayout、BoxLayout和GridBagLayout。最灵活的是GridBagLayout。 基本使用如下&#xff0c; borderlayout&#xff0c; import javax.swing.*; import java.awt.*;public class borderlay {publi…