多模态视觉语言模型:BLIP和BLIP2

embedded/2024/10/18 23:26:25/

1. BLIP

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

BLIP的总体结构如下所示,主要包括三部分:

  • 单模态编码器(Image encoder/Text encoder):分别进行图像和文本编码,文本编码器和BERT一样在输入中增加了[CLS]来表征整个句子
  • Image-grounded text encoder:通过在文本编码器的每个transformer块中的self-attention和FFN之间增加cross attention来注入视觉信息,在具体任务里在输入文本前增加特殊标识符[Encode],输出中该特殊标识符的表征代表图像文本对的表征
  • Image-grounded text decoder:将Image-grounded text encoder中的self attention层换成causal self-attention层,特殊标识符[Decode]表示序列解码的开始符号

总体包括三个损失:

  • 图像-文本对比损失 ITC(Image-Text Contrastive Loss):针对图像编码器和文本编码器,通过正负图文对的对比学习,来对齐图像和文本的潜在特征空间

  • 图像-文本匹配损失 ITM(Image-Text Matching Loss):针对以图像为基础的文本编码器,通过对图文匹配性进行二分类,建模图文多模态信息的相关性

  • 语言建模损失 LM(Language Modeling Loss ):针对以图像为基础的文本解码器,通过交叉熵损失进行优化,训练模型以自回归的方式生成目标caption

在这里插入图片描述

2. BLIP 2

BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models
BLIP-2通过利用预训练的视觉模型和语言模型来提升多模态效果和降低训练成本,预训练的视觉模型能够提供高质量的视觉表征,预训练的语言模型则提供了强大的语言生成能力.

BLIP-2 由预训练的Image Encoder,预训练的Large Language Model,和一个可学习的 Q-Former 组成,整体结构如下图所示

  • Image Encoder:负责从输入图片中提取视觉特征,本文试验了两种网络结构,CLIP 训练的 ViT-L/14和EVA-CLIP训练的 ViT-g/14。
  • Large Language Model:负责文本生成,本文试验了decoder-based LLM and encoder-decoder-based LLM。
  • Q-Former:负责弥合视觉和语言两种模态的差距,由Image Transformer和Text Transformer两个子模块构成,它们共享相同自注意力层

在这里插入图片描述
BLIP-2 在预训练时冻结预训练图像模型和语言模型,但是,简单地冻结预训练模型参数会导致视觉特征和文本特征难以对齐,为此BLIP-2提出两阶段预训练 Q-Former 来弥补模态差距:表示学习阶段和生成学习阶段,Q-Former的整体结构如下图所示
在这里插入图片描述
(1)表示学习阶段
在表示学习阶段,将 Q-Former 连接到冻结的 Image Encoder,训练集为图像-文本对,通过联合优化三个预训练目标,在Query和Text之间分别采用不同的注意力掩码策略,从而控制Image Transformer和Text Transformer的交互方式

  • ITC(Image-Text Contrastive Learning):ITC的优化目标是对齐图像嵌入和文本嵌入,将来自Image Transformer输出的Query嵌入与来自Text Transformer输出的文本嵌入对齐,为了避免信息泄漏,ITC采用了单模态自注意掩码,不允许Query和Text相互注意。具体来说,Text Transformer的文本嵌入是 [CLS] 标记的输出嵌入,而Query嵌入则包含多个输出嵌入,因此首先计算每个Query输嵌入与文本嵌入之间的相似度,然后选择最高的一个作为图像-文本相似度;注意该任务中Q-Former两部分输入分别为query和文本
  • ITG(Image-grounded Text Generation):ITG 是在给定输入图像作为条件的情况下,训练 Q-Former 生成文本,迫使Query提取包含文本信息的视觉特征。由于 Q-Former 的架构不允许冻结的图像编码器和文本标记之间的直接交互,因此生成文本所需的信息必须首先由Query提取,然后通过自注意力层传递给文本标记。ITG采用多模态Causal Attention掩码来控制Query和Text的交互,Query可以相互关注,但不能关注Text标记,每个Text标记都可以处理所有Query及其前面的Text标记。这里将 [CLS] 标记替换为新的 [DEC] 标记,作为第一个文本标记来指示解码任务
  • ITM( Image-Text Matching):ITM是一个二元分类任务,通过预测图像-文本对是正匹配还是负匹配,学习图像和文本表示之间的细粒度对齐。这里将Image Transformer输出的每个Query嵌入输入到一个二类线性分类器中以获得对应的logit,然后将所有的logit平均,再计算匹配分数。ITM使用双向自注意掩码,所有Query和Text都可以相互关注。(注意:使用Qformer左边部分结构,输入是query和文本embedding concat到一起,然后再通过self-attention及后续操作,在分类头之前只取query部分的向量在进行分类)

关于代码上实现的一些细节:

  • 输入embedding:Qformer.py line95在这里插入图片描述
  • ITM分类任务: blip2_qformer.py line239在这里插入图片描述

(2)生成学习阶段
在生成预训练阶段,将 Q-Former连接到冻结的 LLM,以利用 LLM 的语言生成能力。这里使用全连接层将输出的Query嵌入线性投影到与 LLM 的文本嵌入相同的维度然后将投影的Query嵌入添加到输入文本嵌入前面。由于 Q-Former 已经过预训练,可以提取包含语言信息的视觉表示,因此它可以有效地充当信息瓶颈,将最有用的信息提供给 LLM,同时删除不相关的视觉信息,减轻了 LLM 学习视觉语言对齐的负担

BLIP-2试验了两种类型的 LLM:基于解码器的 LLM 和基于编码器-解码器的 LLM,如下图所示
在这里插入图片描述

  • 对于基于decode only LLM,使用语言建模损失进行预训练,其中冻结的 LLM 的任务是根据 Q-Former 的视觉表示生成文本
  • 对于基于encoder-decoder LLM,使用前缀语言建模损失进行预训练,将文本分成两部分,前缀文本(instruction)与视觉表示连接起来作为 LLM 编码器的输入后缀文本(caption)用作 LLM 解码器的生成目标 blip2_t5.py line145在这里插入图片描述

3. 参考

一文读懂BLIP和BLIP-2多模态预训练
blip2 代码


http://www.ppmy.cn/embedded/6137.html

相关文章

【数据挖掘】实验8:分类与预测建模

实验8:分类与预测建模 一:实验目的与要求 1:学习和掌握回归分析、决策树、人工神经网络、KNN算法、朴素贝叶斯分类等机器学习算法在R语言中的应用。 2:了解其他分类与预测算法函数。 3:学习和掌握分类与预测算法的评…

Element——组件

element官网 https://element.eleme.cn/#/zh-CN/component/layout vscode格式化快捷键&#xff1a;shiftaltf table表格 <template><el-table:data"tableData"style"width: 100%"><el-table-columnprop"date"label"日期…

【嵌入式学习】ARM day04.17

一、主要逻辑 写入数据&#xff1a; 主机发送起始信号主机发送8bit从机地址1bit写标志&#xff08;0&#xff09;从机回应应答信号主机发送8bit从机的寄存器地址从机回应应答信号主机发送8bit数据从机回应应答主机发送8bit数据从机回应应答主机发起终止信号 读取数据&#x…

1.为什么选择Vue框架

参考&#xff1a;百战程序员 为什么选择Vue框架 Vue是什么&#xff1f; 渐进式 JavaScript 框架&#xff0c;易学易用&#xff0c;性能出色&#xff0c;适用场景丰富的 Web 前端框架 为什么要学习Vue Vue是目前前端最火的框架之一Vue是目前企业技术栈中要求的知识点Vue可以…

Eureka、Nacos、Zookeeper、Redis等应用是AP还是CP?

理解CAP是什么&#xff1f; C Consistency 一致性 有集群cluster&#xff0c;如果有客户端对cluster进行了写操作&#xff0c;改变了cluster中的数据&#xff0c;则后面的客户端请求再次访问请求时&#xff0c;cluster返回给客户端的是最新的数据。 也可以理解为cluster中&…

海报设计大赛活动策划方案

赛前准备&#xff1a; 各小组制作影视或动漫广告&#xff0c;在决赛日前上交&#xff08;长度介乎15-60秒之间&#xff09;。 各进入决赛小组需准备一个舞台广告秀&#xff0c;人数不限&#xff0c;主题为初赛的广告设计。 具体流程&#xff1a; 1.在会场展示自己作品&#xf…

浏览器原理之浏览器同源策略

一 什么是同源策略 同源策略&#xff08;Same-Origin Policy, SOP&#xff09;是一种重要的安全策略&#xff0c;用于Web浏览器中。它限制了一个源&#xff08;origin&#xff09;的文档或脚本如何与另一个源的资源进行交互。这有助于防止恶意文档窃取另一个文档的数据&#x…

【Django】学习笔记

文章目录 [toc]MVC与MTVMVC设计模式MTV设计模式 Django下载Django工程创建与运行创建工程运行工程 子应用创建与注册安装创建子应用注册安装子应用 数据模型ORM框架模型迁移 Admin站点修改语言和时区设置管理员账号密码模型注册显示对象名称模型显示中文App显示中文 视图函数与…