论文阅读 BLIP-2

Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models
使用冻结的图像编码器和大型语言模型进行语言-图像预训练的引导

BLIP-2 通过一个轻量级的查询变换器弥合了模态之间的差距。
Querying Transformer
第一阶段通过冻结的图像编码器引导视觉-语言表示学习。
第二阶段通过一个冻结的语言模型启动从视觉到语言的生成学习。

在这里插入图片描述

在这里插入图片描述

3.1 模型结构

Q-Former:从图像编码器中提取固定数量的输出特征,与输入图像的分辨率无关。

两个共享相同自注意力层的Transformer子模块。
一个与冻结的图像编码器交互的图像transformer、用于图像特征抽取;
一个文本transformer、可以兼作文本编码器和文本解码器。

我们在图像变换器中创建一组固定数量的可学习查询嵌入作为输入。
查询通过自注意力层相互作用,并通过交叉注意力层(每隔一个变换器块插入)与冻结的图像特征交互。
查询还可以通过相同的自注意力层与文本交互。
根据预训练任务的不同,我们应用不同的自注意力掩码来控制查询文本的交互。

我们将QFormer初始化为预训练的BERTbase(Devlin等,2019)权重,而交叉注意力层则随机初始化。Q-Former总共有1.88亿个参数(188M)。请注意,查询被视为模型参数。【对比qwenvl中的 VL adaptor 参数量是 0.08B = 80M

在我们的实验中,我们使用了32个查询,每个查询的维度为768(与Q-Former的隐藏维度相同)。

我们用Z表示输出的查询表示。Z的大小(32×768)远小于冻结的图像特征的大小(例如,ViT-L/14的大小为257×1024)。这种瓶颈架构与我们的预训练目标相结合,迫使查询提取与文本最相关的视觉信息。

3.2 第一阶段通过 冻结的图像编码器 引导 视觉-语言表示学习

在表征学习阶段,我们把Q-Former连接到一个冻结的图像编码器,并使用 图像-文本对 进行预训练。

我们的目标是训练Q-Former,使查询能够学会提取对文本最具信息性的视觉表示。灵感来自BLIP。

我们联合优化了三个预训练目标,它们共享相同的输入格式和模型参数。

每个目标使用不同的注意力掩蔽策略来控制查询与文本之间的交互。

image text contrastive learning (ITC)

该方法学习使图像表示和文本表示对齐,以最大程度地提高它们之间的互信息。

它通过 对比 正向对的图像-文本相似度 和 负向对的相似度来实现这一点。

由于Z包含多个输出嵌入(每个查询一个),我们首先计算每个查询输出与t之间的pairwise相似性,然后选择最高的一作为图像-文本相似度

为了避免信息泄露,我们使用了单模态自注意力掩码,其中查询和文本不允许相互可见

由于使用了冻结的图像编码器,与端到端方法相比,我们可以在每个GPU上适应更多的样本。 因此,我们使用批次内负样本,而不是BLIP中的动量队列。(增加比较次数)

Image-grounded text generation (ITG)

这个损失函数训练Q-Former生成文本,给定输入图像作为条件。

由于Q-Former的架构不允许冻结的图像编码器和文本令牌之间有直接的交互,因此必须先由查询提取生成文本所需的信息,然后通过自注意力层将这些信息传递给文本令牌。因此,查询必须提取能够捕获文本所有信息的视觉特征。

我们使用多模态因果自注意力掩码来控制查询文本交互,类似于UniLM中使用的那种。查询可以互相关注,但不能关注文本标记。每个文本令牌可以关注所有查询及其之前的文本令牌。我们还将[CLS]标记替换为新的[DEC]标记,作为第一个文本标记,以指示解码任务。

Image-Text Matching(ITM)

目标是学习图像和文本表示之间的细粒度对齐。这是一个二分类任务,模型需要预测一个图像-文本对是否为正(匹配)或负(不匹配)。

我们使用双向自注意力掩码,其中所有查询和文本可以相互关注。

输出查询嵌入Z因此捕获了多模态信息。

我们将每个输出查询嵌入输入到一个二元线性分类器中,以获取logit,并将所有查询的logit平均作为输出匹配分数。

我们采用了 前者的研究方法 的困难负样本挖掘策略来生成有意义的负对。

3.3 第二阶段通过一个冻结的语言模型启动从视觉到语言的生成学习

在生成预训练阶段,我们将QFormer(附带冻结的图像编码器)连接到一个冻结的LLM,以获取LLM的生成语言能力。

我们使用全连接(FC)层将输出查询嵌入Z线性投影到与LLM文本嵌入相同的维度。

将预测的查询嵌入添加到输入文本嵌入的前面。它们作为软视觉提示,条件化LLM(大语言模型)依赖于Q-Former提取的视觉表示。

在这里插入图片描述

由于Q-Former已经预训练为提取富含语言信息的视觉表示,它有效地充当了一个信息瓶颈,向LLM提供最有用的信息,同时去除不相关的视觉信息。

这减轻了LLM学习视觉-语言对齐的负担,从而缓解了灾难性遗忘问题。

我们使用两种类型的LLMs进行实验:基于解码器的LLMs和基于编码器-解码器的LLMs。

对于基于解码器的LLMs,我们使用语言建模损失进行预训练,其中冷冻的LLM的任务是根据Q-Former的视觉表示生成文本。

对于基于编码器-解码器的LLMs,我们使用前缀语言建模损失进行预训练,将文本拆分为两部分。

前缀文本与视觉表示连接作为LLM编码器的输入。后缀文本用作LLM解码器的生成目标。

3.4 模型与训练

4. 实验

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

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

相关文章

Word排版 | 如何文字部分固定行距、图片(嵌入型)单倍行距

问题描述 在写一个要求比较高的项目报告,总共有109页 89张图片,而且必须用word写 因此: 文字部分需要固定行距23磅图片部分需要单倍行距(不然无法使用嵌入式) 难点 文字和图片难以有效分离,无法分别设…

3D渲图软件推荐:打造高质量渲染效果

在现代设计领域,3D渲图已经成为展示设计方案和产品外观的重要手段。无论是建筑设计、产品设计还是影视动画,都需要借助专业的3D渲染图软件来实现逼真的视觉效果。 本文将为您介绍几款备受好评的3D渲染图软件,帮助您在项目中选择合适的工具。…

筛选因数快速法+map

前言:老是忘记怎么快速筛选因数,我们只需要枚举小于sqrt( num ) 的数,这样可以降低很多复杂度,而且我们的因数一定是成对出现的,所以我们遇到一个因数的时候x,判断 x 2 x^2 x2 是否…

【华为】配置RIP协议

RIP(Routing Information Protocol)是一种内部网关协议(IGP),主要用于小型网络中的动态路由。RIP有两个主要版本:‌RIPv1和‌RIPv2,它们之间存在一些关键区别: ‌分类支持‌&#xf…

STM32之CAN外设

相信大家在学习STM32系列的单片机时,在翻阅芯片的数据手册时,都会看到这么一个寄存器外设——CAN外设寄存器。那么,大家知道这个外设的工作原理以及该如何使用吗?这节的内容将会详细介绍STM32上的CAN外设,文章结尾附有…

树的中心——dfs

题目 代码 #include <bits/stdc.h> using namespace std; const int N 1e510, M N*2; int h[N], e[M], ne[M], idx; int n; int ans 2e9; bool st[N]; void add(int a, int b) // 添加一条边a->b {e[idx] b, ne[idx] h[a], h[a] idx ; } int dfs(int u) {int…

系统移植一

使用设备是fs4412开发板 一、系统移植 系统移植是将一个操作系统或软件从一个硬件平台或处理器架构转移到另一个平台的过程。系统移植的主要目标是使软件在新的硬件环境下能够正常运行。在系统移植过程中&#xff0c;主要的改动集中在硬件相关的底层部分以及操作系统的核心模…

低代码工单管理app评测,功能与效率解析

预计到2030年&#xff0c;低代码平台市场将达1870亿美元。ZohoCreator助力企业构建定制化软件应用&#xff0c;以建筑行业工作订单管理app为例&#xff0c;简化流程&#xff0c;提升管理效率&#xff0c;降低成本。其用户友好界面、自动化管理、跨平台使用及全面报告功能受企业…

【高频SQL基础50题】31-35

又到SQL。 目录 1.查询结果的质量和占比 2.求关注者的数量 3.指定日期的产品价格 4.好友申请 II &#xff1a;谁有最多的好友 5.按日期分组销售产品 1.查询结果的质量和占比 聚合题。 # Write your MySQL query statement below SELECT t1.query_name,ROUND((SUM(t1.r…

【Linux探索学习】第四弹——Linux权限管理详解:理解用户、组和权限之间的关系

前言&#xff1a; 在前面我们已经学习了Linux的基础指令&#xff0c;相信大家对Linux已经有了一定的认识&#xff0c;今天我们来学习Linux权限的相关知识点&#xff0c;Linux权限是Linux初学者必须要掌握的内容 目录 一、Linux下用户类型 二、权限基本概念 三、权限的表示 四…

WebGoat JAVA反序列化漏洞源码分析

目录 InsecureDeserializationTask.java 代码分析 反序列化漏洞知识补充 VulnerableTaskHolder类分析 poc 编写 WebGoat 靶场地址&#xff1a;GitHub - WebGoat/WebGoat: WebGoat is a deliberately insecure application 这里就不介绍怎么搭建了&#xff0c;可以参考其他…

数据结构修炼——树?二叉树?堆?从入门到代码实现,第一弹!!!

目录 一、树的概念与结构1.1 树的概念1.2 树的相关概念1.3 树的表示及实际应用 二、二叉树概念及结构2.1 二叉树的概念2.2 特殊的二叉树2.2.1 满二叉树2.2.2 完全二叉树 2.3 二叉树的存储结构 三、二叉树的顺序结构与实现3.1 堆的概念及结构3.2 堆的实现3.2.1 堆的创建与销毁3.…

安卓13禁止用户打开开发者选项 android13禁止用户打开开发者选项

总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码分析4.代码修改5.编译6.彩蛋1.前言 设置 =》关于平板电脑 =》版本号,一般的话,在这里连续点击就可以打开我们的开发者选项了。但是有些系统要进行保密,因此要禁止用户进入。 2.问题分析 这里我们是通过点…

Android Framework AMS(02)AMS启动及相关初始化5-8

该系列文章总纲链接&#xff1a;专题总纲目录 Android Framework 总纲 本章关键点总结 & 说明&#xff1a; 说明&#xff1a;本章节主要涉及systemserver启动AMS及初始化AMS相关操作。同时由于该部分内容过多&#xff0c;因此拆成2个章节&#xff0c;本章节是第二章节&…

【技术】Jaskson的序列化与反序列化

文章目录 概念解释1.Jasksona.JSONJSON 的基本特点JSON 的基本结构JSON 示例 b.ObjectMapper类 2.序列化与反序列化a.序列化对象序列化集合序列化ListSetMap b.反序列化反序列化单个对象反序列化集合对象 概念解释 1.Jaskson Jackson 是一个用于处理 JSON 数据的 Java 库,所以…

vue-插槽作用域实用场景

vue-插槽作用域实用场景 1.插槽1.1 自定义列表渲染1.2 数据表格组件1.3 树形组件1.4 表单验证组件1.5 无限滚动组件 1.插槽 插槽感觉知道有这个东西&#xff0c;但是挺少用过的&#xff0c;每次看到基本都会再去看一遍用法和概念。但是在项目里&#xff0c;自己还是没有用到过…

基于SpringBoot+Vue的疫情物资管理系统(带1w+文档)

基于SpringBootVue的疫情物资管理系统(带1w文档) 基于SpringBootVue的疫情物资管理系统(带1w文档) 本课题研究和开发疫情物资管理系统管理系统&#xff0c;让安装在计算机上的该系统变成管理人员的小帮手&#xff0c;提高疫情物资管理系统信息处理速度&#xff0c;规范疫情物资…

C++入门基础知识107—【关于C++continue 语句】

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///C爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于C continue 语句的相关内容&#xff01;…

关于Java部署项目,文件上传路径问题 、Windows是\ linux是/

Windows是\ linux是/ &#xff0c;踩坑。报错如下&#xff1a;

SpringBootWeb快速入门!详解如何创建一个简单的SpringBoot项目?

在现代Web开发中&#xff0c;SpringBoot以其简化的配置和快速的开发效率而受到广大开发者的青睐。本篇文章将带领你从零开始&#xff0c;搭建一个基于SpringBoot的简单Web应用~ 一、前提准备 想要创建一个SpringBoot项目&#xff0c;需要做如下准备&#xff1a; idea集成开发…