BLIP2-图像文本预训练

news/2024/4/20 10:10:00/文章来源:https://blog.csdn.net/qq_41994006/article/details/129221701

文章目录

  • 摘要
  • 解决问题
  • 算法
    • 模型结构
    • 通过frozen图像编码器学习视觉语言表征
      • 图像文本对比学习(ITC)
      • 基于图像文本生成(ITG)
      • 图文匹配(ITM)
    • 从大规模语言模型学习视觉到语言生成
    • 模型预训练
      • 预训练数据
      • 预训练图像编码器与LLM
      • 预训练设置
  • 实验
    • 引导零样本图像到文本生成
      • 零样本VQA
    • 图像描述
    • 视觉问答
    • 图像文本检索
  • 限制
  • 结论

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

摘要

训练大尺度视觉语言预训练模型成本比较高,BLIP-2,基于现有的图像编码器预训练模型,大规模语言模型进行预训练视觉语言模型;BLIP-2通过轻量级两阶段预训练模型Querying Transformer缩小模态之间gap,第一阶段从冻结图像编码器学习视觉语言表征,第二阶段基于冻结语言模型,进行视觉到语言生成学习;BLIP-2在各种视觉-语言模型达到SOTA。比如在zero-shot VQAv2上超越Flamingo80B 8.7%,也证明该模型可以根据自然语言指引进行zero-shot图像到文本生成。

解决问题

端到端训练视觉语言模型需要大尺度模型及大规模数据,该过程成本大,本文提出方法基于现有高质量视觉模型及语言大模型进行联合训练,为减少计算量及防止遗忘,作者对预训练模型进行frozen,为了将两任务对齐,作者提出Querying Transformer (Q- Former) 预训练,如图1,其将有用视觉特征传递至LLM输出目标文本。
在这里插入图片描述
BLIP-2优势如下:
1、高效利用frozen预训练视觉及语言模型;
2、由于大规模语言模型能力,BLIP-2可以根据提示进行zero-shot图像到文本生成;
3、由于使用frozen单模态预训练模型,BLIP-2与现有SOTA方案相比,计算更加高效;

算法

为了对齐视觉特征到LLM文本空间,作者提出Q-Former,进行两阶段预训练:
1、图像编码器frozen进行学习视觉语言表征;
2、使用frozen LLM进行学习视觉到文本生成;

模型结构

如图2,Q-Former包括两个贡共享self-attention层的transformer子模块:图像transformer(Q-Former左半部分)与frozen image encoder相互作用提取视觉特征;文本transformer(Q-Former右半部分)可作为文本编码器,也可作为文本解码器。
可学习query embedding作为图像transformer输入,通过self-attention层相互作用,通过cross-attention层与frozen图像特征相互作用,query同时通过self-attention层与文本相互作用。根据预训练任务,作者使用不同self-attention mask控制query-text之间交互;作者使用BERTbaseBERT_{base}BERTbase初始化Q-Former,cross-attention层进行随机初始化;
在这里插入图片描述

通过frozen图像编码器学习视觉语言表征

query通过学习提升与text相关视觉表征,受BLIP启发,作者通过3个目标函数,共享相同输入格式及模型参数,每个目标函数通过不同attention mask策略控制query与text之间相互影响,如图2所示;

图像文本对比学习(ITC)

ITC学习对齐图像表征与文本表征,通过比较成对与非成对的图像-文本相似度实现;计算过程如下:
计算image transformer输出query表征ZZZ(与可学习query长度相同)与text transformer输出文本表征 ttt 中【CLS】token相似性,选取最大值作为图像文本对相似度,为防止信息泄露,作者使用单模态self-attention mask,query与text不能互相可见;由于image encoder进行frozen,显存释放,可以使用batch负样本而不用像BLIP中使用队列。

基于图像文本生成(ITG)

ITG根据输入图像训练Q-Former生成文本,由于Q-Former不允许image encoder与text token直接交互,文本生成所需信息通过query进行提取,通过self-attention进行传递至text token,因此query需要捕获文本相关所有信息,作者使用多模态因果self-attention mask控制query-text交互,query无法获取text token,当前text token 可获取所有query及其之前text token。作者将【CLS】token替换为【DEC】token 作为解码任务标记;

图文匹配(ITM)

ITM为了学习精细化图像文本匹配,作者使用bi-dirention self-atttention mask,所有query与text相互可见,因此输出的query embedding Z捕获多模态信息,Z通过二类线性分类器获取logit,logit均值为匹配得分,作者使用《Align before Fuse》中难例负样本挖掘策略创建负样本对。
难例负样本挖掘策略:
当负样本的图像文本对有相同的语义但在细粒度细节上不同,那么该样本是难样本。作者通过对比相似度寻找batch内的 hard negatives。对于一个batch中的每一幅图像,作者根据对比相似性分布从相同的batch中抽取一个负文本,其中与图像更相似的文本有更高的可能被采样。同样的,作者还为每个文本采样一个hard negative图像。

从大规模语言模型学习视觉到语言生成

作者将Q-Former与LLM相连,后去LLM的语言生成能力。如图3,FC层映射输出的query embedding Z至LLM的text embedding;基于LLM Q-Former提取到的视觉表征作为soft visual prompt,由于Q-Former已经预训练用于提取对文本有用的视觉表征,减轻LLM学习视觉-文本对齐的负担。
在这里插入图片描述
作者实验两种LLM,decoder-based LLM以及encoder-decoder-based LLM。
对于decoder-based LLM,作者使用language modeling loss进行预训练,frozen LLM进行文本生成;
对于encoder-decoder-based LLM,使用prefix language modeling loss预训练,将text分为两部分,text前半部分与视觉表征concat输入LLM编码器,后半部分作为LLM解码器的生成目标。

模型预训练

预训练数据

BLIP-2使用与BLIP相同数据,129M图片,包括COCO、Visual Genome、CC3M、CC12M、SBU,其中115M来自 LAION400M,使用CapFilt对网图进行生成caption,具体步骤如下:
1、使用BLIPlargeBLIP_{large}BLIPlarge生成10个caption;
2、生成10个caption+原始web caption通过CLIP ViT-L/14模型与对应图像进行相似度排序;
3、选取top2作为该图的caption,以此作为训练数据;

预训练图像编码器与LLM

两个SOTA视觉transformer预训练模型:
ViT-L/14 from CLIP、ViT-G/14 from EVA-CLIP
移除ViT最后一层,使用倒数第二层特征。
LLM模型:
无监督训练的OPT作为decoder-based LLM
基于指令训练的FlanT5作为encoder-decoder-based LLM

预训练设置

第一阶段训练250k step,第二阶段训练80k step;ViT和LLM 转为FP16,FlanT5转为BFloat16,作者发现相对于32-bit,性能无下降;由于使用frozen模型,作者预训练比现在大规模VLP方法计算量都小,在16个A100(40G)上,对于ViT-G和FlanT5-XXL第一阶段训练耗时6天,第二阶段少于3天。

实验

表1展示BLIP-2在各种零样本视觉语言任务上表现,与之前SOTA方法相比,性能得到改善,而且训练参数大量减少;
在这里插入图片描述

引导零样本图像到文本生成

BLIP-2使得LLM具有图像理解能力,同时保留遵循文本提示的能力;作者在视觉promt后增加简单文本promt,图4展示BLIP-2零样本图像文本生成能力,包括:视觉知识推理、视觉共鸣推理、视觉对话、个性化图像到文本生成等。
在这里插入图片描述

零样本VQA

表2表明,BLIP-2在VQAv2及GQA数据集达到SOTA。
表2得到一个有希望的发现:一个更好的图像编码器或LLM模型都将使得BLIP-2性能更好;
基于OPT或FlanT5,BLIP-2使用ViT-G性能超越使用VIT-L;
图像编码器固定,BLIP-2使用大LLM模型性能超越使用小模型;
在VQA上,基于指令训练的的FlanT5性能优于无监督训练的OPT;
在这里插入图片描述
第一阶段预训练使得Q-Former学习与文本相关视觉表征,图5展示表征学习对生成式学习有效性,不进行表征学习,两种LLM模型在零样本VQA任务上性能大幅下降。
在这里插入图片描述

图像描述

表3表明,BLIP-2在NoCaps性能达到SOTA,证明对out-domain图像具有很强生成能力。
在这里插入图片描述

视觉问答

Q-Former的输出以及question作为LLM的输入,LLM生成对应answer,为了提取与问题相关图像特征,作者将question输入Q-Former,通过self-attention层与query进行交互,引导Q-Former的cross-attention层更加关注图中有效区域。表4表明BLIP-2在开放式生成模型中达到SOTA。
在这里插入图片描述

图像文本检索

图文检索不需要语言模型,作者在COCO数据集将图像编码器与Q-Former一起进行finetune,在COCO及Flickr30K数据集进行图像文本检索以及文本图像检索,作者首先根据图文特征相似度挑选128个样本,而后根据ITM score进行排序。
如表5,BLIP-2在零样本图文检索达到SOTA,相对现有方法,得到显著提升。
在这里插入图片描述
表6表明ITG损失对图文检索也有帮助,由于ITG损失版主query提取与文本相关视觉特征。
在这里插入图片描述

限制

当LLM模型使用上下文VQA样本时,BLIP-2并未在VQA任务上提升性能,作者归因于预训练数据集为仅有一对图像文本样本,无法学习一个序列中多个图像文本对之间相关性。
BLIP-2在图像文本生成任务仍存在一些不足:LLM不准确知识,不正确推理路径、对于一些新图像缺少相关信息,如图6所示。
在这里插入图片描述

结论

BLIP-2是一种通用且计算高效的视觉语言预训练方案,使用frozen 预训练图像编码器及LLM,在多个视觉语言任务达到SOTA,也证明了其在零样本instructed image-to-text生成能力。

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

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

相关文章

Gehpi的网络布局

Gehpi的网络布局1. 力引导布局2. 辅助布局布局是网络可视化中的重要概念,指将点和边通过某种策略进行排布,应尽可能满足以下4个原则: 节点均匀分布在有限的区域内避免边的交叉和弯曲保持边的长度一致整体布局能反映图内在的特性 Gephi的布局…

Vision Transformer学习了什么-WHAT DO VISION TRANSFORMERS LEARN? A VISUAL EXPLORATION

WHAT DO VISION TRANSFORMERS LEARN? A VISUAL EXPLORATION 文章地址 代码地址 摘要 视觉转换器( Vision Transformers,ViTs )正在迅速成为计算机视觉的事实上的架构,但我们对它们为什么工作和学习什么知之甚少。虽然现有研究对卷积神经网络的机制进…

Bunifu.UI.WinForms 6.0.2 Crack

Bunifu.UI.WinForms为 WinForms创建令人惊叹的UI Bunifu.UI.WinForms我们为您提供了现代化的快速用户界面控件。用于 WinForms C# 和 VB.NET 应用程序开发的完美 UI 工具 简单 Bunifu.UI.WinForms没有臃肿的特征。正是您构建令人惊叹的 WinForms 应用程序所需要的。只需拖放然…

JavaSe第3次笔记

1.String str "hello";字符串类型。 2.两个字符串类型相加意思是拼接,类似于c语言里面的strcat函数。 3.整型变成字符串类型: int a 10; String str String. valueOf(a); 4.当字符串和其他类型进行相加的时候,结果就是字符串。(不完全…

MS9132是一款USB 3 0投屏芯片,内部集成USB 3 0 Device控制器、数据收发模块、音视频处理模块

MS9132是一款USB 3.0投屏芯片,内部集成USB 3.0 Device控制器、数据收发模块、音视频处理模块。MS9132可以通过USB 3.0接口将PC、智能手机、平板电脑上的信息显示或扩展到更大尺寸的显示设备,支持HDMI视频接口输出。 主要功能特征 HDMI 1.4b兼容 支持EDI…

RK3568编译Android11和目录讲解

文章目录 前言一、下载android11源码二、环境搭建1.增加交换内存三、编译瑞芯微原厂源码四、目录讲解总结前言 本文记录在Ubuntu18.04中编译Android11,只有编译了源码,后面才能进行驱动的开发,有兴趣的小伙伴可以和我一起学习吧! 提示:以下是本篇文章正文内容,下面案例可…

【华为OD机试模拟题】用 C++ 实现 - 剩余可用字符集 or @分割可用字符集(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 获得完美走位(2023.Q1) 文章目录 最近更新的博客使用说明剩余可用字符集 or @分割可用字符集题目输入输出示例一输入输出说明Code使用说明 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才…

烙铁使用方法

烙铁使用 烙铁是硬件工程师最经常使用的工具之一,一把性能保持良好的烙铁能帮助我们快速进行电路调试。烙铁第一次加热时采用焊锡均匀涂覆在烙铁头上,以便去除包在烙铁头上面的氧化物。在工作中我们需要根据情况选择合适的烙铁头类型,合适的温度进行操作。完成焊接后要在烙铁…

华为OD机试用Python实现 -【贪心的商人 or 最大利润】(2023-Q1 新题)

华为OD机试题 华为OD机试300题大纲贪心的商人 or 最大利润题目描述输入描述输出描述说明示例一输入输出示例二输入输出Python 代码实现华为OD机试300题大纲 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:blog.c…

基于SpringCloud的可靠消息最终一致性01:定理、解决方案和框架

在互联网发展的早期,单体架构是主流的开发模式。因为访问的用户不多,所以整个系统的结构比较简单,就像一口竖井,从上到下,一通到底,如下图所示: 图一:单体应用 随着业务复杂度的不断提升,以及用户需求的不断增加,原来单个的业务系统已经不堪重负了。就好像一个窗口前…

MS9123是一款单芯片USB投屏器,内部集成了USB2 0控制器和数据收发模块、视频DAC和音视频处理模块,MS9123可以通过USB接口显示或者扩展PC、

MS9123是一款单芯片USB投屏器,内部集成了USB2.0控制器和数据收发模块、视频DAC和音视频处理模块,MS9123可以通过USB接口显示或者扩展PC、智能手机、平板电脑的显示信息到更大尺寸的显示设备上,支持CVBS、S-Video视频接口。 主要功能特征 C…

ChatGPT的互补工具Perplexity的详细使用方法(持续更新)

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,科大讯飞比赛第三名,CCF比赛第四名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

华为OD机试用Python实现 -【云短信平台优惠活动】(2023-Q1 新题)

华为OD机试题 华为OD机试300题大纲云短信平台优惠活动题目描述输入描述输出描述示例一输入输出说明示例二输入输出说明Python 代码实现代码编写思路华为OD机试300题大纲 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看…

华为OD机试题,用 Java 解【图片整理】问题

最近更新的博客 华为OD机试 - 猴子爬山 | 机试题算法思路 【2023】华为OD机试 - 分糖果(Java) | 机试题算法思路 【2023】华为OD机试 - 非严格递增连续数字序列 | 机试题算法思路 【2023】华为OD机试 - 消消乐游戏(Java) | 机试题算法思路 【2023】华为OD机试 - 组成最大数…

【华为OD机试模拟题】用 C++ 实现 - 求解连续数列+和最大子矩阵(2023.Q1 双倍快乐)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 获得完美走位(2023.Q1) 文章目录 最近更新的博客使用说明求解连续数列题目输入输出描述示例一输入输出Code和最大子矩阵题目输入输出示例一输入输出说明

key作用与原理

for循环遍历的时候,如果打乱数组的顺序,最好不要用index作为key,用 id唯一标识作为key diff 算法:相同的复用,不同的生成 key的内部原理 1、虚拟dom中key的作用: key是虚拟dom对象的标识,当数…

【华为OD机试模拟题】用 C++ 实现 - 相对开音节(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 获得完美走位(2023.Q1) 文章目录 最近更新的博客使用说明相对开音节题目输入输出示例一输入输出说明示例二输入输出说明Code使用说明 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高…

超简单 华为OD机试用Python实现 -【无向图染色问题 or 红黑图】(2023-Q1 新题)

华为OD机试题 华为OD机试300题大纲无向图染色问题 or 红黑图题目描述输入描述输出描述说明示例一输入输出示例二输入输出Python 代码实现华为OD机试300题大纲 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:blog…

带你了解IP报警柱的特点

IP可视报警柱是一款室外防水紧急求助可视对讲终端。安装在学校、广场、道路人流密集和案件高发区域,当发生紧急情况或需要咨询求助时按下呼叫按钮立即可与监控中心值班人员通话,值班人员也可通过前置摄像头了解现场情况并广播喊话。IP可视报警柱的使用特…

2023年安徽省职业院校技能大赛“网络空间安全” 比赛任务书

2023年安徽省职业院校技能大赛“网络空间安全” 比赛任务书 一、竞赛时间 总计:360分钟 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A模块 A-1 登录安全加固 180分钟 200分 A-2 Nginx安全策略 A-3 日志监控 A-4 中间件服务加固 A-5 本地安全策略 A-6 防火墙策…