BLIP-2模型的详解与思考

ops/2024/11/23 23:30:16/

大模型学习笔记------BLIP-2.html" title=BLIP-2>BLIP-2模型的详解与思考


     上一篇文章上文中讲解了 BLIP(Bootstrapping Language-Image Pretraining)模型的一些思考,本文将讲述一个BLIP的升级版 BLIP-2.html" title=BLIP-2>BLIP-2,讲述BLIP-2.html" title=BLIP-2>BLIP-2模型的模型结构与自己的一些见解。

BLIP2_2">1、BLIP-2.html" title=BLIP-2>BLIP-2框架概述

    BLIP-2.html" title=BLIP-2>BLIP-2模型的整个框架与BLIP比较来看相对抽象,具体如下所示:
在这里插入图片描述
    从BLIP-2.html" title=BLIP-2>BLIP-2模型的整个框架爱上看,BLIP-2.html" title=BLIP-2>BLIP-2由这么几个部分组成,图像输入了图像编码器(Image Encoder),得到的结果与文本(Text)在Q-Former(BERT初始化)里进行融合,最后送入LLM模型,进行文本的生成。

  • Image Encoder:负责从输入图片中提取视觉特征,文章中试验了CLIP 训练的 ViT-L/14和EVA-CLIP训练的 ViT-g/14。
  • Q-Former:负责弥合视觉和语言两种模态的差距,Queries是训练的参数。
  • Large Language Model(LLM:负责文本生成,文章中试验了decoder-based LLM 和encoder-decoder-based LLM

    从上述的网络框架可以看出,BLIP-2.html" title=BLIP-2>BLIP-2模型的主要训练任务其实是在训练Q-Former模块。当然,BLIP-2.html" title=BLIP-2>BLIP-2的最大创新点也是基于Q-Former模块。其次,比较重要的部分就是如何将Q-Former模块输出与LLM模型进行结合。

BLIP2_12">2、BLIP-2.html" title=BLIP-2>BLIP-2网络结构详解

    BLIP-2.html" title=BLIP-2>BLIP-2模型的整个框架与BLIP比较来看相对抽象,但是拆开来看并不复杂。我们从Q-Former模块入手。

2.1 表征学习阶段

    BLIP-2.html" title=BLIP-2>BLIP-2中Q-Former模块第一个阶段的训练过程可以称为表征学习阶段。具体如下所示:
在这里插入图片描述
    很显然,BLIP-2.html" title=BLIP-2>BLIP-2延续了BLIP的思想,联合优化3个具有相同输入格式和模型参数的预训练目标,每个目标函数使用不同的 mask Attention 来控制注意力的交互。

2.1.1 图文匹配任务 (Image-Text Matching, ITM)

    ITM 是个二分类任务,要求模型预测图像-文本对是正样本 (匹配) 还是负样本 (不匹配)。ITM可以更加细粒度地对齐图像和文本的表征,使其互信息最大化。实现过程:将Image Transformer输出的每个Query嵌入输入到一个二类线性分类器中以获得对应的logit,然后将所有的logit平均,再计算匹配分数。ITM 的 Attention Mask 方法如上图中绿色框中所示,采用 Bi-directional Self-Attention Mask,允许 Queries 和 Text 相互关注。

2.1.2 图文对比学习 (Image-Text Contrastive Learning, ITC)

    ITC是通过计算图像与文本的对比度来提高图文信息提取的能力。 Q-Former模块中, 作者实现 ITC 的方法是计算 Queries 的输出和 Text Transformer 的 [CLS] token 输出的对比学习损失。因为有多个 Queries 的输出,因此作者首先计算每个 Queries 的输出和[CLS] token 输出之间的成对相似度,然后选择最高的一个作为最终的图文相似度。ITC 的 Attention Mask 方法采用上图中红色框部分,采用Uni-modal Self-Attention Mask的方式,不允许 Queries 和 Text 相互关注。

2.1.3 基于图像的文本生成 (Image-Grounded Text Generation, ITG)

    ITG 是在给定输入图像作为条件的情况下,训练 Q-Former 生成文本,迫使Query提取包含文本信息的视觉特征。由于 Q-Former 的架构不允许冻结的图像编码器和文本标记之间的直接交互,因此生成文本所需的信息必须首先由Query提取,然后通过自注意力层传递给文本标记。Queries 应该具备提取捕获了所有文本信息的视觉特征的能力
    ITG采用Multi-modal Causal Self-Attention Mask来控制Query和Text的交互,Query可以相互关注,但不能关注Text标记,每个Text标记都可以处理所有Query及其前面的Text标记。这里将 [CLS] 标记替换为新的 [DEC] 标记,作为第一个文本标记来指示解码任务。

2.2 生成学习阶段

    在生成预训练的阶段,作者把 Q-Former 和冻结参数的 LLM 连接起来,以利用 LLM 的文本生成能力。图像的表征和 Queries 输入 Q-Former后得到 Queries 的输出 ,经过一个全连接层与 Text token 的维度对齐之后输入给 LLM Decoder或是LLM Encoder。其中, Queries 的输出就蕴含了视觉信息。整个Q-Former从本质上就是增强模型理图像和文本之间的交互的表现能力,输出作为LLM模型的Soft Visual Prompt。
在这里插入图片描述

    BLIP-2.html" title=BLIP-2>BLIP-2试验了两种类型的 LLM,分别是基于纯 Decoder 架构的和基于 Encoder-Decoder 架构的。对于基于纯 Decoder 架构的模型(黄色框部分),使用语言建模目标函数进行训练。冻结参数的 LLM 的任务是根据 Q-Former 提供的视觉表征来生成文本。对于基于 Encoder-Decoder 架构的模型(红色框部分),把文本分成两段,前缀文本与Queries 的输出作为LLM中Encoder的输入,Decoder输出后缀文本。

    BLIP-2.html" title=BLIP-2>BLIP-2中的视觉模型使用CLIP训练的 ViT-L/14和EVA-CLIP训练的 ViT-g/14,LLM模型采用的是OPT(纯Decoder 架构)和FlanT5(Encoder-Decoder 架构)。

BLIP2_43">3、BLIP-2.html" title=BLIP-2>BLIP-2的几点思考

1)Q-Former 的主要作用

    Q-Former经过预训练后,可以提取包含语言信息的视觉表示,因此它可以有效地充当信息瓶颈,将最有用的信息提供给 LLM,同时删除不相关的视觉信息,减轻了 LLM 学习视觉语言对齐的负担。

2)BLIPBLIP-2.html" title=BLIP-2>BLIP-2 在图文信息融合方面有哪些不同的思路

  • BLIP主要是通过视觉-文本编码器中的Cross Attention直接进行图像与文本的融合;
  • BLIP-2.html" title=BLIP-2>BLIP-2分为两步,第一步是Queries与文本通过Self Attention进行特征融合,将融合的结果与图像进行Cross Attention的特征融合。

    我们可以认为BLIP是图像与文本的强制性融合,而BLIP-2.html" title=BLIP-2>BLIP-2通过可学习的Queries作为“润滑剂”间接完成图像与文本的融合。

3)BLIP-2.html" title=BLIP-2>BLIP-2 如何节约计算成本

    其实这个问题非常容易理解。BLIP-2.html" title=BLIP-2>BLIP-2在训练模型过程中使用已经预训练好的图像编码器与LLM模型,借助现成的冻结参数的预训练视觉模型和大型语言模型进行模型的训练。这个方法大大降低了训练的成本。


http://www.ppmy.cn/ops/135847.html

相关文章

基于Qt/C++/Opencv实现的一个视频中二维码解析软件

本文详细讲解了如何利用 Qt 和 OpenCV 实现一个可从视频和图片中检测二维码的软件。代码实现了视频解码、多线程处理和界面更新等功能,是一个典型的跨线程图像处理项目。以下分模块对代码进行解析。 一、项目的整体结构 项目分为以下几部分: 主窗口 (M…

华纳云:多IP服务器在网站SEO中的作用是什么

搜索引擎优化(SEO)已成为网站运营不可或缺的一部分。它不仅能够提升网站在搜索引擎结果页面(SERP)中的排名,还能有效增加网站的曝光度和流量。而多IP服务器作为一种高级的网络技术,在SEO策略中扮演着越来越重要的角色。多IP服务器是指一台物理服务器上配…

Scala案例:全文单词统计

2.txt内容如下 Thank you very much.Well I want to thank you all very much this is great, these are our friends, we have thousands of friends in this incredible movement.This was a movement like no nobodys ever seen before, and frankly this was I believe the…

ZYNQ-7020嵌入式系统学习笔记(1)——使用ARM核配置UART发送Helloworld

本工程实现调用ZYNQ-7000的内部ARM处理器,通过UART给电脑发送字符串。 硬件:正点原子领航者-7020 开发平台:Vivado 2018、 SDK 1 Vivado部分操作 1.1 新建工程 设置工程名,选择芯片型号。 1.2 添加和配置PS IP 点击IP INTEGR…

开源 - Ideal库 - 枚举扩展设计思路及实现难点(三)

今天想和大家分享关于枚举扩展设计思路和在实现过程中遇到的难点。 01、设计思路 设计思路说起来其实也很简单,就是通过枚举相关信息:枚举值、枚举名、枚举描述、枚举项、枚举类型,进行各种转换,通过一个信息获取其他信息。比如通…

fio检测硬盘的读写是都正常

有时候发现访问磁盘上文件很慢,但是不知道到底是不是硬盘的问题,此时可以使用该工具进行检测以方便排查问题 一、下载 https://github.com/axboe/fio/releases 注:(1)官网地址无法下载(https://bsdio.com/fio/、https://brick.kernel.dk/snaps/) 二、安装 1、Windo…

服务器被隔离导致无法登录

现象描述 云服务器可能会因安全违规(内容或行为违规)或因 DDoS 攻击被封堵隔离,被隔离的云服务器在控制台显示为 “BANNING” 状态。 云服务器被隔离可能由于该台服务器违反了当前法律法规的要求。您可以通过以下方式查看该台服务器是否处于…

Java List 集合

怀旧网个人博客网站地址:怀旧网,博客详情:Java List 集合 List 集合的特点 List 集合的特有方法 因为List是Collection 的子类,所以List也直接继承了所有的Collection 的方法。 List 集合方法代码测试 创建集合对象 因为List也…