BLIP和BLIP2 论文讲解

文章目录

  • BLIP
    • Introduction
    • Method
      • 模型架构
      • 预训练目标
      • 字幕和过滤(Capfilt)
  • BLIP2
    • Introduction
    • Method
      • 模型结构
      • Q-Former预训练第一阶段
      • Q-Former预训练第二阶段

BLIP

论文: 《BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation》
代码:https://github.com/salesforce/BLIP

Introduction

视觉语言预训练(Vision-Language Pre-training, VLP)在各种多模态下游任务中取得了巨大的成功。然而,现有的VPL方法有两个主要的局限性:
(1)模型视角
现有的VLP模型要么基于encoder架构,要么基于encoder-decoder的架构。然而,基于encoder的模型不太容易直接转移到文本生成任务(例如图像字幕),而encoder-decoder模型尚未成功地用于图像-文本检索任务。
即大多数现有的预训练模型只擅长基于理解的任务或基于生成的任务。
(2)数据视角
大多数最先进的方法(例如CLIP,ALBEF,SimVLM )对从网络收集的图像-文本对进行预训练。尽管通过扩大数据集获得了性能提升,但噪声web text对于视觉语言学习来说是次优的。

因此本文提出了BLIP: Bootstrapping language-image Pre-training,从noise 图像文本对中学习,用于统一的视觉语言理解和生成

Method

模型架构

在这里插入图片描述
为了预训练具有理解和生成能力的统一模型,提出了编码器-解码器的多模态混合(multimodal mixture of encoder-decoder, MED),这是一种多任务模型,可以运行如下的三种功能
(1)Unimodal encoder : 分别对图像和文本进行编码。图像编码器就是ViT (上图左1), 文本编码器与BERT 相同(上图左二),其中在文本输入的开头附加一个[CLS]令牌以总结句子。
(2)Image-grounded text encoder: 通过为文本编码器的每个Transformer块在自注意(self-attention, SA)层和前馈网络(feed forward network, FFN)之间插入一个附加的交叉注意(Cross Attention,CA)层来注入可视信息。任务特定的[Encode]标记被附加到文本中,[Encode]的输出嵌入被用作图像-文本对的多模态表示。
(3)Image-grounded text decoder : 其用因果自注意层(casual Self-Attention)代替Image-grounded text encoder 中的Bi Self-Att。一个[Decode]标记用于表示序列的开始,一个序列结束标记用于表示其结束

预训练目标

在预训练中共同优化了三个目标,两个基于理解的目标和一个基于生成的目标。
每个图像-文本对只需要通过计算量较大的visual transformer进行一次前向传递,并通过文本转换器进行三次前向传递。
其中激活不同的功能以计算如下所述的三种损失:
(1)Image-Text Contrastive Loss (ITC) 用于激活Unimodal encoder。它的目的是通过鼓励positive的图像-文本具有相似的表示 (相反,使得negtive的图像文本队具有不同的表示) 来对齐视觉转换器和文本转换器的特征空间。 ( 这一步和CLIP模型非常类似,就是把文本和图像两种模态对齐到一个特征空间上)
遵循《Align before Fuse: Vision and Language Representation Learning with Momentum Distillation》 中提到的ITC loss ,其中引入动量编码器产生特征,并从动量编码器创建软标签作为训练目标。
(2)Image-Text Matching Loss (ITM) 用于激活 image-grounded text encoder。它旨在学习图像-文本多模态表示,以捕获视觉和语言之间的细粒度对齐。
ITM是一个二元分类任务,其中模型使用ITM头(线性层)来预测给定图像-文本对的多模态特征是正的(匹配的)还是负的(不匹配的)。
为了找到具有丰富信息的负样本,我们采用《Align before Fuse: Vision and Language Representation Learning with Momentum Distillation》 中提到hard negative mining strategy,其中batch中具有较高contrastive similarity 的负样本对更有可能被选择来计算损失。

(3)Language Modeling Loss (LM) 用于激活image-grounded text decoder。它旨在生成给定图像的文本描述。它优化了交叉熵损失,训练模型以自回归的方式最大化文本的可能性。在计算损失时,我们使用0.1的标签平滑。与广泛用于VLP的MLM损失相比,LM使具有泛化能力的模型能够将视觉信息转换为连贯的字幕。

  • Image-grounded Text Encoder 用于判断图像和文本是否匹配
    在这里插入图片描述
  • Image-grounded Text Decoder 用于根据输入图片生成字幕
    在这里插入图片描述
  • Image-grounded Question EncoderAnswer decoder联合起来用,可以用于视觉问答系统。
    在这里插入图片描述

为了在利用多任务学习的同时执行有效的预训练,文本编码器和文本解码器 共享除SA层之外的所有参数。(原因是编码和解码任务之间的差异最好由SA层捕获。)
特别是,编码器使用双向自注意(Bi Self-Attn)来构建当前输入标记的表示,而解码器使用因果自注意 (Casual Self-Attn) 来预测下一个标记。
另一方面,编码和解码任务之间的嵌入层、CA层和FFN的作用相似,因此共享这些层可以提高训练效率,同时受益于多任务学习。

字幕和过滤(Capfilt)

  • image-text pairs { ( I h , T h ) } \{(I_h, T_h)\} {(Ih,Th)}: 由于标注成本过高,高质量的人工标注图像-文本对数量有限。
  • alt-texts pairs { ( I w , T w ) } \{(I_w, T_w)\} {(Iw,Tw)} : 从网络上自动收集大量的图像文本对,通常不能准确地描述图像的视觉内容,是一个noisy的信号,对于学习视觉语言对齐来说是次优的。

因此,BLIP提出了一种提高文本语料库质量的新方法Captioning and Filtering (CapFilt), 下图给出了CapFilt的示例。
在这里插入图片描述

Capfilt引入了两个模块:一个用于生成给定web图像的标题的captioner,以及一个用于去除noisy 图像-文本对的filter。captioner和filter都是从相同的预训练MED模型初始化的,并在COCO数据集上分别进行微调。

  • captioner是一个Image-grounded text decoder。它与LM目标进行了微调,以解码给定图像的文本。给定web图像 I w I_w Iw, captioner生成合成字幕 T s T_s Ts,每个图像对应一个字幕。
  • Filter是一个Image-grounded text encoder。它与ITCITM目标进行了微调,学习文本是否与图像匹配。Filter去除原始web文本 T w T_w Tw和合成文本 T s T_s Ts中的噪声文本,如果ITM头预测文本与图像不匹配,则认为文本是噪声文本。最后,将过滤后的图像文本对与人工注释的图像文本对结合起来形成一个新的数据集,我们使用它来预训练一个新的模型。

BLIP2

论文: 《BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models》
代码: https://github.com/salesforce/LAVIS/tree/main/projects/blip2

Introduction

BLIP2 是一个通用的且高效的视觉语言预训练(Vision-language pre-training,VLP)模型 : 从现成的冻结的预训练图像编码器和冻结的预训练大型语言模型中引导视觉语言预训练,并使用轻量级查询转换器Q-Former 弥补了语言和视觉两种模态上的差距。

  • 预训练的视觉模型:可以提供高质量的视觉表示(visual representation)
  • 预训练的语言模型:尤其是大语言模型,可以提供强大的语言生成和zero-shot的迁移能力。

为了减少计算成本和解决灾难性遗忘问题,这两个unimodal 模型在预训练过程中保持冻结状态。

  • 为了实现与冻结unimodal 模型的有效视觉语言对齐,提出了一个使用新的两阶段预训练策略进行预训练Querying Transformer (QFormer)

Method

Q-Former是一种轻量级的Transformer,它使用一组可学习的查询向量从冻结图像编码器中提取视觉特征,它充当冻结图像编码器和冻结LLM之间的信息瓶颈,为LLM输出所需文本提供最有用的视觉特征。

Q-Former的两个预训练阶段:
(1) vision-language representation learning stage: 通过冻结的图像编码器执行视觉语言表征学习,强制Q-Former学习与文本最相关的视觉表征。
(2) vision-to-language generative learning stage: 通过将Q-Former的输出连接到一个冻结的LLM来执行视觉到语言的生成学习,并训练Q-Former,使其输出的视觉表示可以被LLM解释。

模型结构

不论图像分辨率是多少,Q-Former 从图像编码器中提取固定数量的输出特征。
如下图所示,Q-Former由两个Transformer子模块组成,它们共享相同的self-attention层:
(1) Image transformer: 与冻结图像编码器交互进行视觉特征提取 (Q-former中左边的框)
(2) Text Transformer: 既可以作为文本编码器又可以作为文本解码器 (Q-former中右边的框)
在这里插入图片描述
创建了一组可学习的query embeddings作为image transformer 的输入。

  • queries 通过self-attention 层实现不同query的相互交互
  • queries 通过cross -attention与冻结的图像特征交互。
  • queries 通过相同的self-attention 与文本交互。

Q-Former预训练第一阶段

在表示学习阶段( vision-language representation learning stage),将Q-Former连接到一个固定的图像编码器,并使用图像-文本对进行预训练。该阶段目标是训练Q-Former,这样查询就可以学习提取文本中信息量最大的视觉表示
受BLIP的启发,在该阶段共同优化了三个共享相同输入格式和模型参数的预训练目标。如下图所示,每个目标在查询和文本之间使用不同的注意力屏蔽策略来控制它们的交互。
在这里插入图片描述

  • Image-Text Contrastive Learning (ITC)
    通过对比正对和负对的图像-文本相似性,学习对齐图像表示和文本表示,最大化它们共同的信息。
    将来自image transformer 的输出查询表示Z与来自text transformer 的文本表示t对齐,其中t是[CLS]令牌的输出嵌入。
    由于Z包含多个输出嵌入(每个查询嵌入一个),我们首先计算每个查询输出与t之间的成对相似度,然后选择最高的一个作为图像-文本相似度。
    为了避免信息泄漏,我们采用unimodal self-attention mask (右图),其中查询和文本不允许彼此看到。
  • Image-grounded Text Generation (ITG)
    训练Q-Former在给定输入图像的条件下生成文本。
    由于Q-Former的体系结构不允许冻结图像编码器和文本标记之间的直接交互,因此生成文本所需的信息必须首先由查询提取,然后通过self-attention层传递给文本标记。因此,使得查询提取与文本信息相关的所有视觉特征。
    使用多模态因果自注意掩码 multimodal causal self-attention mask (中图) 来控制查询-文本交互。
    查询间可以相互交互,但不能处理文本交互。
    每个文本都可以处理所有查询及其前一个文本。还用一个新的[DEC]令牌替换[CLS]令牌,作为第一个文本令牌,向解码任务发出信号。
  • Image-Text Matching (ITM)
    旨在学习图像和文本表示之间的细粒度对齐
    这是一个二元分类任务,其中要求模型预测图像-文本对是正的(匹配)还是负的(不匹配)。
    我们使用双向自关注掩码 bi-directional self-attention mask (左图),所有查询和文本都可以相互关注。
    因此,输出查询嵌入Z捕获多模态信息。我们将每个输出查询嵌入到一个两类线性分类器中以获得logit,并将所有查询的logit平均值作为输出匹配分数。

Q-Former预训练第二阶段

vision-to-language generative learning stage,我们将QFormer (包括冻结图像编码器) 连接到冻结的LLM,以获取LLM的生成语言能力。
在这里插入图片描述
如上图所示,使用一个全连接(FC)层,用于将输出查询嵌入Z线性投影到与LLM的文本嵌入相同的维度。然后将投影后的查询嵌入添加到输入文本嵌入中。它们作为软视觉提示(soft visual prompts),对由Q-Former提取的视觉表示进行条件约束。

由于Q-Former已被预先训练以提取语言信息的视觉表示,因此它有效地充当信息瓶颈,为LLM提供最有用的信息,同时删除无关的视觉信息。这减少了LLM学习视觉语言一致性的负担,从而减轻了灾难性遗忘问题。

我们实验了两种类型的LLM:

  • 基于解码器的LLM
    使用语言建模损失(language modeling loss)进行预训练,其中冻结的LLM的任务是根据Q-Former的视觉表示生成文本。(上图)
  • 基于编码器-解码器的LLM
    使用前缀语言建模损失(prefix language modeling loss)进行预训练,我们将文本分成两部分。前缀文本与可视化表示相连接,作为LLM编码器的输入。后缀文本用作LLM解码器的生成目标。(下图)

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

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

相关文章

DiskCatalogMaker for Mac:高效管理磁盘文件助手

DiskCatalogMaker for Mac,助您高效管理磁盘文件,让文件整理变得轻而易举!这款软件以其出色的性能和人性化的设计,赢得了广大Mac用户的喜爱。 DiskCatalogMaker支持多种磁盘格式,让您轻松管理硬盘、U盘、光盘等存储设备…

景源畅信电商:抖音小店开店的步骤有哪些?

在移动互联网高速发展的今天,利用短视频平台进行商品营销已成为一种潮流。抖音作为其中的佼佼者,吸引了无数商家纷纷入驻,希望通过这个巨大的流量池实现产品推广和销售。然而,想要在抖音上开设一家小店并非想象中那么简单&#xf…

一文带你了解军用电源绝缘性能测试规范和标准

军用电源是指主要用于军事、航空航天等领域的电源模块,因其良好的稳定性和可靠性也在通信、交通、航空航海、加工工业等领域广泛应用。因此,对于军用电源的性能要求比较严格,性能测试是确保电源质量的关键环节。 那么,在测试军品电…

【前端基础】CSS样式+Vue中绘制时间轴

深度选择器 在 Vue.js 中,/deep/、>>>、:deep 和 ::v-deep 这些都是深度选择器,用于修改子组件的样式。它们主要用于解决作用域样式和组件样式之间的冲突问题。 1. /deep/ 或 >>> /deep/ 和 >>> 是相同的选择器,…

谈基于ATTCK框架的攻击链溯源

引言 网络安全在当今数字化时代变得尤为关键,而MITRE公司开发的ATT&CK框架则成为了安全专业人员的重要工具。ATT&CK是一种广泛使用的攻击行为分类和描述框架。其目的在于提供一个共同的语言,使安全专业人员能够更好地理解攻击者的行为和目标&…

并发问题系统学习(更新中)

进程、线程 进程:进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。可以理解为一个java应用。 线程:线程是进程的一个执行路径,一个进程中至少有一个线程,进程中的多个线程共享进程的资源。…

Qt三方库:QuaZIP介绍、编译和使用

前言 Qt使用一些压缩解压功能,探讨过libzip库,zlib库,libzip库比较原始,还有其他库,都比较基础,而在基础库之上,又有高级封装库,Qt中的QuaZIP是一个很好的选择。Quazip是一个用于压缩…

169.招式拆解 II(unordered_map)

刷算法题: 第一遍:1.看5分钟,没思路看题解 2.通过题解改进自己的解法,并且要写每行的注释以及自己的思路。 3.思考自己做到了题解的哪一步,下次怎么才能做对(总结方法) 4.整理到自己的自媒体平台。 5.再刷重复的类…

使用FFmpeg处理RTSP视频流并搭建RTMP服务器实现图片转直播全流程

目录 一、FFmpeg安装与配置教程二、搭建并配置Nginx RTMP服务器三、从RTSP视频流提取帧并保存为图片四、将图片序列转换为视频五、将视频推送为直播流六、将图片序列推送为直播流 在实时音视频领域,我们经常需要处理从各种源(如摄像头)获取的…

centos7.8 迁移为 TencentOS Server 2.4(TK4) 报错解决

文章目录 一 问题二 解决三 注意 一 问题 CentOS 官方计划停止维护 CentOS Linux 项目,公司某台腾讯云的centos7.8服务器计划迁移为 TencentOS Server 2.4(TK4) 。在下载rpm包执行迁移命令后报错,场景还原如下。 首先 安装 Python 3 yum install -y p…

【智能优化算法】白鲨智能优化算法(White Shark Optimizer,WSO)

白鲨智能优化算法(White Shark Optimizer,WSO)是期刊“KNOWLEDGE-BASED SYSTEMS”(中科院一区期刊 IF8.6)的2022年智能优化算法 01.引言 白鲨智能优化算法(White Shark Optimizer,WSO)的核心理念和基础灵感来自大白鲨的行为,包括它们在导航和…

react18【实战】tab切换,纯前端列表排序(含 lodash 和 classnames 的安装和使用)

技术要点 动态样式 className{tabItem ${currentType item.value && "active"}}安装 lodash npm i --save lodash使用 lodash 对对象数组排序(不会改变源数组) _.orderBy(dataList, "readNum", "desc")src\De…

自然资源-地质勘查工作的流程梳理

自然资源-地质勘查工作的流程梳理 地质勘查从广义上可理解为地质工作,地质队员就好像是国家宝藏的“寻宝人”,通过地质勘查,为国家找矿,以保障国家能源资源安全和服务国计民生,发挥着地质工作在国民经济建设中的基础性…

AI PC后时代:重新理解大模型的最佳载体

如果站在人机交互变革的角度来畅想,AI PC所带来的变革可以说是人机交互史上的又一次“颠覆”。元宇宙时代下,是苹果让AI装进了Vision Pro里;那么在如今的AI时代,又将会是谁将AI PC彻底照进现实?谁才是最终赢家&#xf…

代码随想录算法训练营第六十三天|84.柱状图中最大的矩形

代码随想录算法训练营第六十三天|84.柱状图中最大的矩形 84.柱状图中最大的矩形 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例 1: 输入&…

数据库开启远程连接

服务器端添加一个允许远程连接的root用户: mysql -u root -p create user root192.168.10.20 identified by admin; //创建一个192.168.10.20地址远程连接的root用户 grant all privileges on *.* to root192.168.10.20; //赋予远程root用户所有的权…

【算法入门赛】A.坐标变换(推荐学习)C++题解与代码

比赛链接:https://www.starrycoding.com/contest/8 题目描述 武汉市可以看做一个二维地图。 牢 e e e掌握了一项特异功能,他可以“瞬移”,每次瞬移需要分别设定 x x x和 y y y的偏移量 d x dx dx和 d y dy dy,瞬移完成后位置会…

leetcode刷题:对称二叉树

题目: 给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root [1,2,2,3,4,4,3] 输出:true 示例 2: 输入:root [1,2,2,null,3,null,3] 输出:false 提示&#xf…

echarts指标盘属性概括

echarts指标盘属性概括 代码 有模拟数据可以直接使用const options {animation: true,title: {top: "35%",left: "center",// text: "单元测试覆盖度", // 主标题itemGap: 15,textStyle: {// 主标题样式color: "#666666",fontSize:…

灰狼优化算法(Grey Wolf Optimizer)

注意:本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 ([www.aideeplearning.cn]) 算法引言 灰狼算法(Grey Wolf Optimizer, GWO)是一种受自然界灰狼行为启发的优化算法。它模拟了灰狼的社会层次和狩猎策…