多模态大模型总结1(2021和2022年)

常用损失函数

ITC (image-text contrasctive loss)

CLIP中采用的对比损失,最大化配对文本对的余弦相似度,最小化非配对文本对的余弦相似度,采用交叉熵损失实现

MLM (masked language modeling)

BERT中采用的掩码语言建模任务,也是对每一个[MASK]进行分类

ITM(image-text matching)

二分类损失,预测输入的(图像-文本)对是配对的还是非配对的

CLIP(2021)

ViLT(2021)

ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision

首次提出,在图像编码器中不需要采用目标检测器,直接采用图像的patch embedding。

但只采用图像的embedding导致图像编码器网络容量较小,因此该方法的性能不是太高

整体架构:将图像的patch embedding和word embedding拼接起来,一起输入encoder中。

 根据作者总结的多模态网络结构,总结出最优网络结构应该是:

(1)图像编码器网络容量大于文本编码器,

(2)多模态交互模块应该复杂一点,不只是采用对比损失ITC。

ALBEF(2021)

Align before Fuse: Vision and Language Representation Learning with Momentum Distillation

主要由三大部分组成

  1. Image Encoder:作者采用 12 层的 ViT-B/16,用于从图像中提取 image embedding。

  2. Text Encoder:作者采用 6 层的 Transformer encoder,从 Bert-Base 的前六层初始化,用于提取 text embedding。

  3. Multimodal Encoder:也是 6 层的 Transformer encoder,从 Bert-Base 的后六层初始化,并在 Self Attention 后添加 Cross Attention,实现 image embedding 和 text embedding 的交互,提取多模态 embedding。从这里也可以看出,Albef 没有使用 decoder,所以不具备序列文本生成能力,如果需要执行 VQA 等任务,需要额外添加 decoder。

VLMO(2022)

Unified Vision-Language Pre-Training with Mixture-of-Modality-Experts

        作者指出当前的视觉-语言多模态模型可以分成2种类型

  • 使用两个dual encoder来分别编码图像和文本,然后使用余弦相似度或者线性投影层来建模图像和文本两种模态之间的交互。这种方式优点是对于视觉-文本检索任务非常适合,因为可以提前将大量图像或者文件的编码计算出来并存储下来,应用时只需要计算余弦相似度即可。但缺点是模态之间交互太简单,因此在视觉推理和视觉问答等复杂任务上性能一般。
  • 使用带有cross-attention的deep fusion encoder来建模图像和文本两种模态之间的交互。Image-text matching, masked language modeling, word-region/patch alignment, masked region classification and feature regression are widely used to train fusion-encoder-based models. 这种方式在视觉-语言理解任务上性能较好,但是应用于检索任务时推理速度很慢,因为需要对所有的图文对进行joint encoding。

        因此作者提出针对不同的模态,采用不同的expert的网络结构,具体做法如下图:不同模态采用不同的FFN层,共享self-attention层。这样一个网络结构同时适合图文检索和图文推理两种任务。

        也是采用三种预训练任务。

作者提出的分阶段预训练策略

  • 使用图像数据和BEiT中训练方法,预训练V-FFN和自注意力层
  • 冻结V-FFN和自注意力层,使用文本数据和MLM任务训练L-FFN
  • 采用图像-文本数据,训练整个模型网络。

注意:先训文本,再训图像,效果好像不好

         作者挖的坑自己后面都填了

BLIP(2022)

BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation
ALBEF团队出品,可以看作是ALBEF和VLMO的结合
作者指出只采用encoder的网络不适合文本生成任务,采用encoder-decoder的网络不适合图文检索任务,因此提出BLIP结构,图像还是采用一个ViT,文本有三种结构:
  • Text Encoder:用ITC损失训练,比较常规(采用[CLS])
  • Image-grounded Text Encoder:用ITM训练,也比较常规(采用[Encoder], 算ITM时也和ALBEF一样用到了ITC计算出的困难负样本)
  • Image-grounded Text Decoder:用标准语言建模任务LM训练解码器,这样网络就可以适用于文本生成任务(如image caption)。只替换了self-attention层,cross-attention和FFN层参数是共享的。是主要创新点。采用[Decoder])

训练一次,图像只需要前向一次,但文本需要前向三次,因为采用三种不同的网络结构,因此训练比较费时,也比较难训练

         提出一种新的数据采样方法,用于从含有噪声的图像-文本对数据中学习:

  • 先用原始数据训练一个BLIP模型,然后分别用不同的小量人类标注数据集微调BLIP得到captioner和filter。
  • 采用captioner(Image-grounded Text Decoder),对图像生成一个合成的描述;
  • 采用过滤器filter(Image-grounded Text Encoder),过滤掉质量低的captioner生成的合成描述或者爬取的原始网页上的描述 
  • 最后用高质量的最新数据集,重新训练一个BLIP模型

CoCa(2022)

CoCa: Contrastive Captioners are Image-Text Foundation Models

         CoCa的网络结构和ALBEF非常相似,但是更加简单,训练效率更高(ALBEF在文本采用的是编码器,CoCa采用解码器,因此可以不做适配修改直接生成文字)

        只采用图像-文本对数据进行训练

 BeiTv3(2022)

Image as a Foreign Language_BEiT Pretraining for All Vision and Vision-Language Tasks

核心思想:把图像也看成语言,patch embedding之后就是tokens,和语言没有区别。这样训练任务都可以用masked data modeling来做了,不再需要ITC, ITM等图像文本对损失了。采用了统一的Multiway Transformers网络架构,可同时适用于图像和图像-文本两种任务

 网络整体架构如下:each layer contains a vision expert and a language expert. Moreover, the top three layers have vision-language experts designed for fusion encoders. Refer to Figure 3 (a)(b)(c) for more detailed modeling layouts.

适用于多种视觉和视觉语言多模态下游任务 :

预训练任务采用masked data modeling,其中图像采用BEiTv2中的tokenizer, 并masked掉40%的patch block。

网络总参数量1.9B。预训练数据采用图像,文本,图像文本对三种

将BeiTv3应用于 Image Captioning做法:设计了特殊的self-attention mask。即在图像token中注意力是双向的,但在文本token中注意力只能看到左侧的。推理的时候以autoregressive方式每次生成一个token。

将BeiTv3应用于目标检测和实例分割下游任务的方法:将BeiTv3作为backbone,采用和ViTDet一样的做法,包括特征金字塔和window attention,推理时候采用Soft-NMS。最终在COCO测试集上取得了63.7 box AP和54.8 mask AP

总结:这些算法之间的关系

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

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

相关文章

重生奇迹mu召唤师攻略

一、技能系统 1、技能大类:召唤师主要有火焰职业技能和水元素技能。 2、火焰职业技能:主要是使用火焰元素进行攻击,可以攻击单个目标,也可以同时攻击多个目标。 3、水元素技能:主要是对多个敌方单位使用水元素&…

ZFPlayer 播放视频的时候的视图层级

未播放的时候 首先看正常展示的时候,还没又开始播放 这个时候我们打开图层看一下,发现视频时长和播放按钮都是放在 视频封面图上的 播放的时候 我们看到的播放视频的画面 我们发现,我们之前在未播放状态看到的视图,仍然还在…

Linux入门

什么是Linux? Linux是一种免费、开源的操作系统内核 最初由芬兰计算机科学家 李纳斯托瓦兹 (Linus Torvalds)在1991年创建 Linux内核最初是为个人电脑设计的,如今已普及到服务器、超级计算机、移动设备等各种硬件平台 由于Linux是自由软件(自…

logcat日志的使用——Qt For Android

前言 最近一直用qt开发安卓app,一直无法用真机调试,可能是缺什么东西。但是如果通过Qt Creator在真机上运行,可以在电脑控制台看打印(安卓本身的日志、qDebug之类的打印),所以我是通过打印猜测问题所在&am…

在零信任架构下的API安全与滥用防护(上)

引言 在当今数字化的浪潮中,应用程序编程接口(API)的战略重要性愈发凸显。API不仅仅是现代软件和互联网服务之间沟通的桥梁,更是企业价值创造的核心。随着API的快速发展和广泛应用,安全问题随之而来,其中A…

连锁零售企业如何提高异地组网的稳定性?

随着数字化时代的到来,连锁零售企业面临着日益复杂和多样化的网络挑战。连锁零售企业是在不同地理位置拥有分支机构和零售店,可能同城或异地,需要确保各个地点之间的网络连接稳定和可靠。但由于不同地区的网络基础设施差异、网络延迟和带宽限…

【洛谷算法题】P5716-月份天数【入门2分支结构】

👨‍💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5716-月份天数【入门2分支结构】🌏题目描述🌏输入格式&a…

云时空社会化商业 ERP 系统 gpy 文件上传漏洞复现

0x01 产品简介 时空云社会化商业ERP(简称时空云ERP) ,该产品采用JAVA语言和Oracle数据库, 融合用友软件的先进管理理念,汇集各医药企业特色管理需求,通过规范各个流通环节从而提高企业竞争力、降低人员成本…

Day45力扣打卡

打卡记录 无矛盾的最佳球队(线性DP) class Solution:def bestTeamScore(self, scores: List[int], ages: List[int]) -> int:n len(scores) nums sorted(zip(scores, ages))f sorted(scores)for i in range(n):for j in range(0, i):if nu…

无人机覆盖路径规划综述

摘要:覆盖路径规划包括找到覆盖某个目标区域的每个点的路线。近年来,无人机已被应用于涉及地形覆盖的多个应用领域,如监视、智能农业、摄影测量、灾害管理、民事安全和野火跟踪等。本文旨在探索和分析文献中与覆盖路径规划问题中使用的不同方…

好用的chatgpt工具用过这个比较快

chatgpthttps://www.askchat.ai?r237422 chatGPT能做什么 1. 对话和聊天:我可以与您进行对话和聊天,回答您的问题、提供信息和建议。 2. 问题回答:无论是关于事实、历史、科学、文化、地理还是其他领域的问题,我都可以尽力回答…

关于前端学习的思考-内边距、边框和外边距

从最简单的盒子开始思考 先把实际应用摆出来: margin:居中,控制边距。 padding:控制边距。 border:制作三角形。 盒子分为内容盒子,内边距盒子,边框和外边距。 如果想让块级元素居中&#…

【排序】希尔排序(C语言实现)

文章目录 前言1. 希尔排序的思想2. 希尔排序的一些小优化 前言 本章将详细介绍希尔排序的思想及实现,由于希尔排序是在插入排序的思想上进行升华,所以如果不知道插入排序或者不熟悉的可以先看看这篇文章:《简单排序》中的直接插入排序。 1. 希…

《golang设计模式》第三部分·行为型模式-09-策略模式(Strategy)

文章目录 1. 概述1.1 作用1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1. 概述 1.1 作用 策略(Strategy)是用于封装一组算法中单个算法的对象,这些策略可以相互替换,使得单个算法的变化不影响使用它的客户端。 1.1 …

软件设计师——程序设计语言基础(一)

📑前言 本文主要是【程序设计语言基础】——程序设计语言基础的相关题目,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 &#…

TA-Lib学习研究笔记——Overlap Studies(二)上

TA-Lib学习研究笔记——Overlap Studies(二) 1. Overlap Studies 指标 [BBANDS, DEMA, EMA, HT_TRENDLINE, KAMA, MA, MAMA, MAVP, MIDPOINT, MIDPRICE, SAR, SAREXT, SMA, T3, TEMA, TRIMA, WMA]2.数据准备 get_data函数参数(代码&#x…

UI自动化测试的正确姿势 —— Airtest设备连接API详解第一篇

一、背景 Airtest作为一款优秀的自动化测试工具,有着强大的API功能,处理日常自动化测试过程中需要的各类操作。今天就给大家逐一介绍关于设备连接和常用API部分,结合自动化测试中的各类需求,看看如何通过使用Airtest来快速实现。…

leetcode 15. 三数之和(优质解法)

代码&#xff1a; class Solution {public static List<List<Integer>> threeSum(int[] nums) {Arrays.sort(nums);List<List<Integer>> listsnew ArrayList<>();int lengthnums.length;for(int i0;i<length-3;){int lefti1;int rightlength…

【星火大模型】api使用

讯飞星火官方首页 准备工作 注册讯飞星火账号申请开发者api试用 从一个demo开始 讯飞星火官方的程序员为我们提供了非常优秀的demo&#xff0c;基本涵盖了大多数常用语言。 demo下载链接 这里我选用Java带上下文调用示例 下载后可以看到这是一个idea项目&#xff0c;直接…

Python实现学生信息管理系统(详解版)

Python实现学生信息管理系统-详解版 个人简介实验名称&#xff1a;学生信息管理系统系统功能实验步骤详讲添加入住学生信息删除学生的住宿信息修改学生的住宿信息查询学生的住宿信息显示所有学生住宿信息显示所有请假学生的信息 运行截图展示1.主界面2.添加新的入住学生信息3.显…