【多模态大模型】系列2:Transformer Encoder-Decoder——BLIP、CoCa、BEITv3

目录

  • 1 BLIP
  • 2 CoCa
  • 3 BEITv3

1 BLIP

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

BLIP是 ALBEF 原班人马做的,基本可以看做吸收了 VLMo 思想的 ALBEF。训练的 loss 和技巧都与 ALBEF一致,属于 ALBEF 的后续工作。

BLIP 的两个关键点都包含在标题内,一是bootstrapping,是数据方面的改进,指的是用含噪声的数据训练出模型后,再用某些方法得到更干净的数据,用这些干净的数据训练出更好的模型;二是unified,指的是 BLIP 作为一种encoder-decoder架构,不只能做 understanding 类的任务(如VLMo介绍的下游任务),也能做generation 类的任务,如图像字幕 image captioning。

BLIP 的模型总览图如下图所示,图中相同的颜色表示相同的参数。BLIP 模型共包含四个网络。图中左侧是一个标准的 ViT 模型,用于处理图像数据。右侧三个网络都用于处理文本数据:

  • Text Encoder,提取文本特征,用于与视觉特征计算 ITC 损失,Text Encoder 不与视觉特征计算交叉注意力。
  • Image-gounded Text Encoder,与视觉特征计算交叉注意力,提取文本特征用于计算 ITM 损失。
  • Image-gounded Text Decoder,与视觉特征计算交叉注意力,用于进行 LM 语言建模训练。为了进行语言建模训练,需要 mask 掉后面的单词,因此该网络的注意力层是 Causal SA,而非 Bi SA。

与 ALBEF 一样,BLIP同样采用动量模型为 ITC 生成伪标签;同样使用 ITC 为 ITM 进行难负例挖掘。BLIP 的整个模型称为MED(Mixture of Encoder and Decoder)。虽然看起来模型很多,但实际上大部分网络是共享参数的,因此实际模型参数增加并不多。和ALBEF的区别是 fusion的text是直接输入的,不是从文本的encoder获取的,因为参数共享,不用劈成两份了,第一个文本编码器和第二个文本编码器基本一样。

模型总览图
除了模型结构的创新之外,BLIP 的另一个贡献在数据清洗方面,其方法流程下图所示。图中 I 和 T分别表示图像数据和文本数据;红色、绿色字体分别表示噪声较大、较小的文本;下标 h , w , s 分别表示人工标注数据、网络数据和模型生成数据。

BLIP 先使用含噪声的数据训练一个 MED 模型,然后将该模型的 Image-grounded Text Encoder 和 Image-grounded Text Decoder 在人工标注的 COCO 数据集上进行微调,分别作为 Filter 和 Captioner。Captioner 为图像数据生成对应的文本,FIlter 对噪声较大的网络数据和生成数据进行过滤清洗,得到较为可靠的训练数据。再根据这些可靠的训练数据,训练更好地 MED 模型,从而实现 bootstraping 训练。

训练架构

2 CoCa

CoCa: Contrastive Captioners are Image-Text Foundation Models

CoCa(Contrastive Captioning),看方法名称就能猜测出它是使用对比损失和文本生成损失进行训练,实际上也的确如此,CoCa 的模型框架如下图所示。从结构上看来,CoCa 与 ALBEF 十分接近,都是左侧网络处理图像,右侧网络劈开,前半段处理文本,后半段进行多模态交互。与 ALBEF 最大的不同在于,CoCa 左侧处理文本和进行多模态交互的网络是一个文本解码器(Text Decoder)而非文本编码器。目标函数为 ITC 对比损失和文本解码器的语言建模损失 。使用文本解码器,模型能够处理生成式多模态任务(如 image captioning)。并且,CoCa 在图像编码器的最后使用可学习的 attention pooling 进行降采样。另外,CoCa 没有使用 ITM 损失,减少了模型参数每次迭代所需前向传播的次数,大大降低了训练时间。

模型结构

CoCa 的性能对比实验采用了一种十分新颖的多边形图的方式来展现,非常直观、非常震撼地展示了 CoCa 相对于现有工作的性能提升。图中各多边形的每个顶点是一个任务或一个数据集。绿色和蓝色多边形分别是 微软的 Florence 和谷歌自己的 SimVLM 模型的性能,棕色部分不是一个模型的性能,而是每个任务或数据集上现有所有方法的最佳性能。而 CoCa,在所有任务上,打败了所有的现有方法。多边形图的形式十分适合多模态表征学习预训练这种任务、数据集、指标众多的研究领域,能直观地展示出自己方法对于现有工作的全方位的提升。后续的 BEIT-3 等工作也采用了这种作图方式。

实验结果对比

3 BEITv3

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

BEiT v3的目标就是:做一个更大一统的一个框架。不论是从模型上还是训练的目标函数都要统一。用简单的一句话概括就是把图像也当成一种语言。最大的亮点:用统一的multi-way transformer (mixture of experts ) 架构和单个masked modeling loss,将任意模态看做是同一个模态来建。

BEiT-3

BEITv3 本文并没有提出特别新的技巧,主要是将本组的 VLMo、BEITv1v2、VL-BEIT 整合并做大做强,展示了多模态领域的统一框架能够达到怎样的性能。其模型结构和目标函数如图 13 所示。模型结构就是之前介绍过的 VLMo 中的 MoME,自注意力层权重共享,根据不同的输入来选择不同的 FFN 专家。与 VLMo 不同之处在于训练的目标函数,是大一统的 masked data modeling,即遮住部分数据,要求模型还原出被遮住的数据。

如下图 所示,BEiTv3 在单模态和多模态的数据上进行掩码数据建模(masked data modeling) 对 Multiway Transformers 进行预训练。预训练完成后,模型可以迁移到视觉任务和 VL 多模态任务上。

BEIT3

骨干网络 multiway transformer:BEiTv3 的骨干网络为 multiway transformer,实际上就是 VLMo 的模型 MoME。该网络的 transformer block 中的自注意力层是共享的,而 FFN 层(模态专家)则有三种,分别针对文本、图像、图文,当接收不同类型的输入数据时,数据会通过对应的 FFN 层进行计算。

预训练任务 masked data modeling:BEiTv3 在单模态、多模态数据上,通过一个统一的掩码数据建模任务进行训练。在训练时,随机掩码掉一定比例的 token,然后训练模型恢复出被掩码的 token。统一的掩码数据建模不仅能够学习数据的表示,还能学习对不同模态数据进行对齐。BEiTv3 中,使用 SentencePiece 对文本数据进行 tokenize,使用 BEiTv2 中使用 VQ-KD 训练得到的 tokenizer 对图像数据进行 tokenize(得到离散的视觉 token),作为重构目标。

大一统的 BEITv3 具有极高的灵活性,可以处理视觉、文本各自单模态以及视觉文本多模态的各种任务。BEITv3 用于各种下游任务的示意图如下图所示。(a)、(b) 中,仅使用视觉编码器或文本编码器,BEITv3 可以处理视觉文本各自领域的单模态任务;(c)中,使用视觉编码器和文本编码器提取特征之后,再经过多模态交互,相当于 Fusion Encoder 多模态模型,适合于处理推理类多模态任务;(d) 中,分别使用视觉编码器和文本编码器提取特征之后计算相似度,相当于 Dual Encoder 多模态模型,适合于处理检索类多模态任务;(e) 中,将输入文本 mask 掉,可用于 image captioning 这种生成类多模态任务。就像搭积木一样,大一统的 BEITv3 模型可处理视觉、文本领域各类任务。

模型总览图

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

算法——搜索算法:原理、类型与实战应用

搜索算法:开启高效信息检索的钥匙 在信息爆炸的时代,搜索算法无疑是计算机科学领域中熠熠生辉的存在,它就像一把神奇的钥匙,为我们打开了高效信息检索的大门。无论是在日常生活中,还是在专业的工作场景里,…

在vmd中如何渲染透明水分子

1.设置背景为白色 依次点击Graphics>>Colors... 2. 改变渲染模式 依次点击Display>>rendermode>>GLSL 3. 渲染水分子 选中水分子,显色方式改为ColorID, 编号10的颜色; 选择材质为GlassBubble; 绘图方式为QuickSurf. 若水盒子显示效…

【Cocos TypeScript 零基础 15.1】

目录 见缝插针UI脚本针脚本球脚本心得_旋转心得_更改父节点心得_缓动动画成品展示图 见缝插针 本人只是看了老师的大纲,中途不明白不会的时候再去看的视频 所以代码可能与老师代码有出入 SIKI_学院_点击跳转 UI脚本 import { _decorator, Camera, color, Component, directo…

Go+Wails+Vue 开发:添加停止按钮功能的实现

在本教程中,我将展示如何在一个使用 Wails 框架(后端 Go)和 Vue.js(前端)的彩票模拟器项目中添加一个“停止”按钮。由于现有的教程内容较为单一,我将通过具体的实现步骤进行详细说明。 项目初始化 首先&a…

微服务保护---Sentinel

1. 初始Sentinel 1.1. 雪崩问题及解决方案 1.1.1. 雪崩问题 微服务中,服务间调用关系错综复杂,一个微服务往往依赖于多个其它微服务。 如图,如果服务提供者I发生了故障,当前的应用的部分业务因为依赖于服务I,因此也会…

win32汇编环境,窗口程序使用跟踪条(滑块)控件示例一

;运行效果 ;win32汇编环境,窗口程序使用跟踪条(滑块)控件示例一 ;生成2条横的跟踪条,分别设置不同的数值范围,设置不同的进度副度的例子 ;直接抄进RadAsm可编译运行。重要部分加备注。 ;下面为asm文件 ;>>>>>>>>>>>>>>>>>…

pnpm的使用

pnpm的使用 1.安装和使用2.统一包管理工具下载依赖 1.安装和使用 pnpm:performant npm ,意味“高性能的npm”。 pnpm由npm/yarn衍生而来,解决了npm/yarn内部潜在的bug,极大的优化了性能,扩展了使用场景。被誉为“最先进的包管理工具”。 pnpm安装指令: npm i -g p…

音视频协议

1. 多媒体信息 1.1 多媒体信息的两个主要特点: 信息量很大 标准语音:64Kbits(8KHz采样,8位编码)高质量音频:3Mbps(100KHz采样,12位编码) 在传输多媒体数据时,对时延和时延抖动均有较高要求 1.2 处理时延…

DeepSeek应用——与word的配套使用

目录 一、效果展示 二、配置方法 三、使用方法 四、注意事项 1、永久化使用 2、宏被禁用 3、office的生成失败 记录自己学习应用DeepSeek的过程...... 这个是与WPS配套使用的过程,office的与这个类似: 一、效果展示 二、配置方法 1、在最上方的…

通过可重入锁ReentranLock弄懂AQS

部分文章来源:JavaGuide 什么是AQS AQS的全称是抽象队列同步器 用来构建锁和同步器的 能简单且高效地构造出大量的锁和同步器 AQS的核心思想是什么 AQS 核心思想: 如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的工作线程…

【编程实践】vscode+pyside6环境部署

1 PySide6简介 PySide6是Qt for Python的官方版本,支持Qt6,提供Python访问Qt框架的接口。优点包括官方支持、LGPL许可,便于商业应用,与Qt6同步更新,支持最新特性。缺点是相比PyQt5,社区资源较少。未来发展…

DeepSeek-R1本地搭建

1. 前言 现在deepseek火上天了,因为各种应用场景,加上DeepSeek一直网络异常,所以本地部署Deepseek成为大家的另一种选择。 目前网络上面关于DeepSeek的部署方式有很多,但是太麻烦了,本文是一篇极为简单的DeepSeek本地部署方式&…

《qt open3d网格拉普拉斯平滑》

qt open3d网格拉普拉斯平滑 效果展示二、流程三、代码效果展示 二、流程 创建动作,链接到槽函数,并把动作放置菜单栏 参照前文 三、代码 1、槽函数实现 void on_actionFilterLaplacian_triggered();void MainWindow::on_actionFil

DeepSeek-V3网络模型架构图解

DeepSeek-V3网络架构的创新主要在两次,分别是在前馈层的MOE(混合专家模型)和在注意力中的MHA(多头潜在注意力,一种注意力计算规模压缩技术)。 MOE(混合专家模型) 回顾最初的MOE GS…

.net6 mvc 获取网站(服务器端)的IP地址和端口号

注意:是网站的,服务端的 IP地址, 不是当前用户电脑的、本地的IP地址 两个图: 分析: var AbsolutePath HttpContext.Request.Url.AbsolutePath;//"/Meeting/GetLastMeetingOL"var AbsoluteUri HttpContext.…

无人机遥感图像拼接及处理实践技术:生态环境监测、农业、林业等领域,结合图像拼接与处理技术,能够帮助我们更高效地进行地表空间要素的动态监测与分析

近年来,无人机技术在遥感领域的应用越来越广泛,尤其是在生态环境监测、农业、林业等领域,无人机遥感图像的处理与分析成为了科研和业务化工作中的重要环节。通过无人机获取的高分辨率影像数据,结合图像拼接与处理技术,…

[Linux] 信号(singal)详解(二):信号管理的三张表、如何使用coredump文件、OS的用户态和内核态、如何理解系统调用?

标题:[Linux] 信号管理的三张表、如何使用coredump文件、OS的用户态和内核态、如何理解系统调用? 水墨不写bug (图片来源:文心一言) 正文开始: 目录 一、信号管理的三张表 (1)三张表…

Windows中使用Docker安装Anythingllm,基于deepseek构建自己的本地知识库问答大模型,可局域网内多用户访问、离线运行

文章目录 Windows中使用Docker安装Anythingllm,基于deepseek构建自己的知识库问答大模型1. 安装 Docker Desktop2. 使用Docker拉取Anythingllm镜像2. 设置 STORAGE_LOCATION 路径3. 创建存储目录和 .env 文件.env 文件的作用关键配置项 4. 运行 Docker 命令docker r…

w~自动驾驶~合集17

我自己的原文哦~ https://blog.51cto.com/whaosoft/13269720 #FastOcc 推理更快、部署友好Occ算法来啦! 在自动驾驶系统当中,感知任务是整个自驾系统中至关重要的组成部分。感知任务的主要目标是使自动驾驶车辆能够理解和感知周围的环境元素&#…

利用邮件合并将Excel的信息转为Word(单个测试用例转Word)

利用邮件合并将Excel的信息转为Word 效果一览效果前效果后 场景及问题解决方案 一、准备工作准备Excel数据源准备Word模板 二、邮件合并操作步骤连接Excel数据源插入合并域预览并生成合并文档 效果一览 效果前 效果后 场景及问题 在执行项目时的验收阶段,对于测试…