图-文多模态,大模型,预训练

news2024/9/30 23:36:08

参考老师的无敌课程
多模态任务是指需要同时处理两种或多种不同类型的数据(如图像、文本、音频等)的任务。例如,图像描述(image captioning)就是一种典型的多模态任务,它需要根据给定的图像生成相应的文本描述。多模态任务在人工智能领域具有重要的意义和应用价值,因为它们可以模拟人类在日常生活中处理多种信息源的能力。

近年来,随着深度学习技术的发展,多模态任务取得了显著的进步。特别是VIT(Vision Transformer)和CLIP(Contrastive Language–Image Pre-training)这两种基于Transformer模型的方法,极大地推动了多模态研究的发展。相比于传统的基于CNN(Convolutional Neural Network)的方法,Transformer能够对不同模态的数据进行统一建模,包括参数共享和特征融合。这极大地降低了多模态任务的复杂性和计算成本。

图-文任务是指需要同时处理图像和文本数据的任务,如图像描述、图像检索(image retrieval)、视觉问答(visual question answering)等。就图-文任务而言,ViLT首先使用Transformer移除了任务中目标检测模块,参照VIT将多模态任务更加优雅地解决。随后学术界就如何解决多模态任务,进行了不断地探究。网络结构也进行一系列变化,其中,单塔模型使用一个Transformer对图像,文本进行特征抽取;双塔模型则使用两个对应网络进行特征抽取;最近也逐步展现出统一的模型结构,即网络参数共享,可根据任务不同选择合适的模块进行解决。

在这里插入图片描述
参考: ViLT,多模态串讲上, 多模态串讲下,albef与blip的高集成库(LAVIS)

ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision (ICML 2021)

突出贡献: 在Image-Text对齐过程中,移除了目标检测。

算法流程:

  1. 首先使用Word Embedding对文本编码得到 E t E_t Et,使用Linear Projection对图像块进行编码得到 E i E_{i} Ei。并且在两个头部分别加入分类token。
  2. 随后向文本编码与图像编码中,加入位置编码 E p E_p Ep与模块编码 E m E_m Em,分别提供位置信息与属于哪个模态信息。
  3. E t E_t Et E i E_i Ei拼接,得到最终输入序列 E i n E_{in} Ein
    (4) E i n E_{in} Ein输入到Transformer Encoder中进行信息计算交互。

损失函数:

  • Image Text Matching: 训练中,会人为创造一些不匹配的image和text,然后选取序列头部的token来判断图文是否匹配。
  • Masked Language Model: BERT的目标函数,随机mask一些单词,然后使用多模态信息进行预测。
  • Word Patch Aligment:保证word的特征分布与image的特征分布一致。

Align before Fuse: Vision and Language Representation Learning with Momentum Distillation (NeurIPS 2021)

突出贡献: (1)将Language model劈成两半,并且在多模态融合前首先进行image-text对齐。(2)使用Momentum Model作为‘老师网络’来缓解噪声数据的影响 (one-hot可能存在偏差,Momentum Model可以引入soft-label)

算法流程:

  1. 模型包括一个image encoder与一个BERT,并且将BERT对半劈开,分别进行文本特征提取(text encoder)与多模态融合(multimodal encoder)。
  2. image输入到image encoder(12层)提取特征,文本输入text encoder(6层)提取特征。
  3. 得到的文本与图像特征输入到multimodal encoder进行多模态融合。

损失函数:

  • Image-Text Contrastive loss: 使用对比损失来约束image与text的特征,positive靠近,negative远离。
  • Image-Text Matching(ITM): 选取对比计算中的hard negative,要求网络计算其是否匹配,赋予网络具有挑战的任务。
  • Masked Language Modeling(MLM): BERT的预训练函数。
  • Momentum Model(参考MOCO): 拷贝自原有模型,其参数移动平均更新的很慢: P m o m e n t u m = m ∗ P m o m e n t u m + ( 1 − m ) ∗ P o r i g i n a l P_{momentum}=m * P_{momentum} + (1-m) * P_{original} Pmomentum=mPmomentum+(1m)Poriginal,模型会使用KL损失来约束原有网络与Momentum Model的输出。

VLMo - General-purpose Multimodal Pre-training (NeurIPS 2022)

突出贡献: 灵活!既不是单塔模型(擅长图文推理),也不是双塔模型(擅长图文检索),而是使用共享参数提取图像文本特征,然后训练几个专家,这样选择不同的专家就能解决不同的任务,专家就是网络中的不同Feed Forward。

算法流程:

  1. 首先预训练vision。具体来说mask调图像块,然后使用BEiT进行重建,训练V-FFN作为视觉专家。
  2. 其次训练language。冻结V-FFN与共享self-attention参数,使用文本训练语言专家L-FFN。(视觉参数直接在文本上使用)
  3. 训练vision-language专家VF-FFN。将网络都打开,输入图像-文本对来训练所有专家。

损失函数:

  • Image-Text Contrast: 打开V-FFN与L-FFN,模型转化为CLIP,擅长处理图文检索的任务
  • Image-Text Matching:打开V-FFN与L-FFN,VL-FFN,模型转化为ALBEF,变为双塔结构,擅长处理图文推理任务。
  • Masked LM: 打开V-FFN与L-FFN,VL-FFN是,使用BERT的的预训练函数(完形填空)训练模型。

BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation (ICML22)

突出贡献: (ALBEF的后续) 灵活!出发点与VLMo一致,都是着重解决image-text任务中模型复杂的问题。另外对存在噪声的数据进行了caption filter筛选,得到了更好的数据对。

算法流程:

  1. 模型中Text Encoder;Image-grounded Text Encoder 与 Image-grounded Text decoder共享参数,与VLMo一致。
  2. 图像使用一个标准的Image Encoder来提取特征,text部分使用针对不同的任务来打开或关闭模型组件参数。

损失函数:

  • 与ALBEF损失函数类似,知识MLM换成了LM(预测下一个词)。

Caption Filter模块

  • 收集网络上噪声数据( I w I_w Iw, T w T_w Tw),以及人工标注的数据( I h I_h Ih, T h T_h Th
  • 使用( I h I_h Ih, T h T_h Th)数据以及IT,ITM,LM损失函数训练Filter
  • 使用Filter过滤( I w I_w Iw, T w T_w Tw),并且使用Caption生成新数据( I w I_w Iw, T s T_s Ts)。
  • 最终将人工标注数据+过滤后的网络数据+生成的caption数据共同训练模型。

CoCa: Contrastive Captioners are Image-Text Foundation Models

突出贡献: (ALBEF的后续) 大力出奇迹!!!

Image as a Foreign Language: BEIT Pretraining for All Vision and Vision-Language Tasks (CVPR 2023)

突出贡献: 大一统!!!损失函数统一为mask loss; 网络统一为Multiway Transformer(开关可控)。

将图像作为单词(image as a foreign language),所有都是NLP!!!,VLMo负责框架统一,Mask model负责损失统一。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/429026.html

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

相关文章

XO08R2 1SBP260109R1001接地系统能够为dcs提供屏蔽层,消除电子噪声干扰

​ XO08R2 1SBP260109R1001接地系统能够为dcs提供屏蔽层,消除电子噪声干扰 dcs合理、可靠的系统接地,是dcs系统非常重要的内容。为了保证dcs系统的监测控制精度和安全、可靠运行,必须对系统接地方式、接地要求、信号屏蔽、接地线截面选择、接…

【C++学习】map和set的封装

🐱作者:一只大喵咪1201 🐱专栏:《C学习》 🔥格言:你只管努力,剩下的交给时间! map和set的封装🍉map和set中的红黑树🍌set中的键值和map中的键值&#x1f349…

CTF杂项提纲

CTF的杂项是涉及编码,图片隐写,音频隐写,压缩包分析的方向,本文对MISC的知识点做了一个简单列举 常见编码 ASCII 0-9,48-57 A-Z 65-90 a-z 97-122 URL url编码又叫百分号编码,是统一资源定位的编码方式 base16/…

ModStartCMS v6.2.0 VIP权益配置功能,界面UI优化升级

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议,免费且不限制商业使用。 功能特性 丰富的模块市…

【初识数据库】数据库简介及MySQL安装

目录 数据库基本概念: 主流的关系型数据库: 下载并安装数据库 我们选择的是:MySQL Community Server 8.0.26 卸载老版本MySQL 数据库基本概念: 数据库:是数据的仓库,存储数据的地方 数据库管理系统&am…

RK3568平台开发系列讲解(调试篇)debugfs 分析手段

🚀返回专栏总目录 文章目录 一、enable debugfs二、debugfs API三、使用示例沉淀、分享、成长,让自己和他人都能有所收获!😄 📢Linux 上有一些典型的问题分析手段,从这些基本的分析方法入手,你可以一步步判断出问题根因。这些分析手段,可以简单地归纳为下图: 从这…

进程虚拟地址空间的划分

进程虚拟地址空间划分是操作系统中的一个核心概念,它决定了进程可以访问的内存范围和方式。在本文中,我们将介绍进程虚拟地址空间的划分方法和各个部分的作用。 进程虚拟地址空间的划分方法 在操作系统中,每个进程都有自己的虚拟地址空间&am…

到底还是留不住!库克“中国行”后火速变脸,3000亿产能转向印度?

以国家的层面来制衡一家科技企业,这种事或许只有老美干得出来。当看到华为即将崛起之时,美一意孤行,修改了大量关乎芯片和商贸的政策。层层围堵之下,华为如今的市场份额大幅缩水,腾出来的高端市场基本被苹果占据。相关…

2023年数据挖掘与知识发现国际会议(DMKD 2023) | IOP JPCS独立出版

会议简介 Brief Introduction 2023年数据挖掘与知识发现国际会议(DMKD 2023) 会议时间:2023年6月24日-26日 召开地点:中国重庆 大会官网:DMKD 2023-2023 International Conference on Data Mining and Knowledge Discovery 由重庆邮电大学、重…

找工作吗?50道Python面试题集锦【附答案】

嗨害大家好鸭!我是爱摸鱼的芝士~ 希望能够帮助你在今年的求职面试中脱颖而出, 找到一份高薪工作~ 这些面试题涉及Python基础知识、Python编程、数据分析以及Python函数库等多个方面。 提前预祝给这篇文章点赞收藏的友友们~ 拿到心中最满意的那一份OF…

PHP快速入门13-MySQL数据库与Redis操作

文章目录前言一、PHP连接MySQL1.1 建立数据库链接1.2 插入数据1.3 更新数据1.4 删除数据1.5 查询数据并输出结果1.6 查询数据并返回结果1.7 获取查询结果的行数1.8 获取查询结果的列数1.9 获取查询结果的字段名1.10 获取查询结果的字段类型1.11 获取上一次操作影响的行数1.12 开…

PsExec流量分析

PsExec远程连接服务器 psexec是sysinternals提供的众多windows工具中的一个,这款工具的初衷是帮助管理员管理大量的机器的,后来被攻击者用来做横向渗透。 下载地址: https://docs.microsoft.com/en-us/sysinternals/downloads/psexec使用Ps…

d2l 里面GRU与Lstm实现

此二者的本质都是对rnn进行改良:关注当前多还是关注之前多。 在此详细讲一下。 目录 1.GRU门循环控制单元 1.1理论: 1.2初始化参数 1.3定义网络 1.4训练命令行 1.5简洁实现 2.Lstm长短期记忆网络 2.1理论 2.2加载参数 2.3定义lstm计算 2.4定义…

iTOP4412开发板Qt程序打包和部署

因为我们要把写好的程序发给用户来用,写好的源码也不方便给别人看,所以要把程序进行打包部署。 步骤一:点击左下角的电脑图标将 Debug 模式切换到 Release 模式。 release 模式:发布版本,不对源代码进行调试&#xff…

微信小程序:表格中更改输入框的值,实时获取表格全部数据,点击按钮更改数据库指定项数据

样例: 样式展示 数据库中原始第一条数据 修改表格第一行的数量: 数据库结果 核心代码 wxml ①wx:for:执行循环将数组数据展示出来 ②在某一单元格加上input样式 ③在input中绑定:文本框改变事件,并且绑定data-index便于知道…

网络编程,IO流

网络编程 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。 1.网络通信的要素 通信…

程序环境和预处理(下)——“C”

各位CSDN的uu们你们好呀,今天小雅兰的内容是程序环境和预处理的下篇知识点,那么,这篇博客写完后,C语言的知识点就到这里就结束啦,后续会专注于刷题和读书,也是关于C语言的,会写一些数据结构和C的…

本地Linux服务器安装宝塔面板,并内网穿透实现公网远程登录

文章目录前言1. 安装宝塔2. 安装cpolar内网穿透3. 远程访问宝塔4. 固定http地址5. 配置二级子域名6. 测试访问二级子域名转发自CSDN远程穿透的文章:Linux安装宝塔,并实现公网远程登录宝塔面板【内网穿透】 前言 宝塔面板作为建站运维工具,它…

尚融宝17-用户身份认证的三种模式

目录 1、单一服务器模式 2、SSO(Single Sign On)模式 3、Token模式 1、单一服务器模式 即只有一个服务器,用户通过输入账户和密码,提交表单后服务器拿到前端发送过来的数据查询数据库是否存在该用户,其一般流程如下…

【分享】体验微软Bing在线绘图功能

哈喽,大家好,我是木易巷~ 木易巷体验了一下子微软Bing在线绘图功能,快来看看吧~ 简单介绍 New Bing 不了解或者没有注册New Bing的小伙伴可以看看这一篇: 【教程】你现在还不知道微软的New Bing?你out了&#xff0…