论文阅读 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. 实验

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

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

相关文章

构建流媒体管道:利用 Docker 部署 Nginx-RTMP 从 FFmpeg RTMP 推流到 HLS 播放的完整流程

最近要实现一个类似导播台的功能,于是我先用 FFmpeg 实现一个参考对照的 Demo,我将其整理为一篇文章,方便后续大家或者和自己参考! 1、软件工具介绍 本次部署相关软件 / 工具如下: FFmpeg:全称是 Fast Fo…

YOLO11改进 | 注意力机制| 对小目标友好的BiFormer【CVPR2023】

秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 本文介绍了一种新颖的动态稀疏注意力机制…

【多线程】多线程(12):多线程环境下使用哈希表

【多线程环境下使用哈希表(重点掌握)】 可以使用类:“ConcurrentHashMap” ★ConcurrentHashMap对比HashMap和Hashtable的优化点 1.优化了锁的粒度【最核心】 //Hashtable的加锁,就是直接给put,get等方法加上synch…

LLM | Tokenization 从原理与代码了解GPT的分词器

声明:以上内容全是学习Andrej Karpathy油管教学视频的总结。 --------------------------------------------------------------------------------------------------------------------------------- 大家好。在今天我们学习llm中的Tokenization,即分…

【Golang】关于Go语言中的IO操作

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

day01-Qt5入门

day01-Qt5入门 1.下载Qtcreate 官网地址:http://qt-project.org/downloads 2.配置环境变量 将类似于 D:\Qt\Qt5.1.1\5.1.1\mingw48_32\bin 的目录添加到环境变量中 3.创建一个新项目 输入自己的项目名称,后面默认下一部 4.运行第一个项目 在窗口…

[红队apt]自解压文件攻击

免责声明:本文用于了解攻击者攻击手法使用,请勿用于非法用途 前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文整理黑客利用自解压文件进行攻击的流程原理 自解压文件概念 后缀格式:exe 用途: 早期windows系统有些时候没有安装压缩程序&#xf…

GitLab Runner 通过 Pipeline 流水线实现持续集成 CI

文章目录 1、基础环境2、安装 Docker3、安装 GitLab4、安装 JDK5、安装 Maven6、安装 GitLab Runner7、注册 GitLab Runner8、上传 GitLab9、配置 Pipeline 1、基础环境 本次演示搭建,我使用的是阿里云服务器,配置如下: 服务器1:…

微服务swagger解析部署使用全流程

1、介绍 swagger是一个在线接口说明文档&#xff0c;在代码中通过注解的方式将说明问题集成到项目&#xff0c;代码发生修改&#xff0c;说明文档同步修改&#xff0c;前后台联调可以快速同步数据。 2、应用 1、引入依赖 <dependency><groupId>io.springfox<…

ProxyPin 抓包,原来可以这么简单!

你是否还在为网络请求的抓包发愁&#xff1f;其实&#xff0c;ProxyPin 可以让抓包操作变得异常简单&#xff01;不需要复杂的设置&#xff0c;也不用繁琐的配置&#xff0c;轻松几步就能实现。让我们一起来看看吧&#xff01; 抓包操作常用于测试网络请求、分析接口响应&#…

前端编程艺术(3)---JavaScript

目录 1.JavaScript 1.输出 2.变量和数据类型 3.运算符 4.数组 5.函数 6.面向对象 7.ES6面向对象 2.BOM 1.document对象 3.DOM 4.JSON 1.JavaScript JavaScript是一种脚本编程语言&#xff0c;通常用于为网页增加交互性和动态效果。它是一种高级语言&#xff…

【网络协议】TCP协议常用机制——延迟应答、捎带应答、面向字节流、异常处理,保姆级详解,建议收藏

&#x1f490;个人主页&#xff1a;初晴~ &#x1f4da;相关专栏&#xff1a;计算机网络那些事 前几篇文章&#xff0c;博主带大家梳理了一下TCP协议的几个核心机制&#xff0c;比如保证可靠性的 确认应答、超时重传 机制&#xff0c;和提高传输效率的 滑动窗口及其相关优化机…

node.js服务器基础

node.js的事件循环 node.js是基于事件驱动的&#xff0c;通常在代码中注册想要等待的事件&#xff0c;设定好回调函数&#xff0c;当事件触发的时候就会调用回调函数。如果node.js没有要处理的事件了&#xff0c;那整个就结束了;事件里面可以继续插入事件&#xff0c;如果有事…

华为 静态路由和bfd 侦测的实验

实验要求 sw1 上业务地址192.168.1.1/24 SW3 业务地址192.168.2.1/24 正常情况下走主链路&#xff0c;不正常的情况下走备份链路 2 配置 这是基本地址配置 开启了bfd 本端地址为 10.1.1.1 对端地址是10.1.1.2 关键是discrimination 分辨参数 …

塔吊识别数据集 yolo格式 共5076张图片 已划分好训练验证 txt格式 yolo可直接使用

塔吊识别数据集 yolo格式 共5076张图片 已划分好训练验证 txt格式 yolo可直接使用。 类别&#xff1a;塔吊(Tower-crane) 一种 训练数据已划分&#xff0c;配置文件稍做路径改动即可训练。 训练集&#xff1a; 4724 &#xff08;正面3224 负面1500&#xff09; 验证集&#xf…

纠删码参数自适应匹配问题ECP-AMP实验方案(中)

6.方法设计 6.1.数据获取 为了收集不同的文件大小和纠删码参数对性能指标的影响&#xff0c;本文在Hadoop平台上进行了模拟实验。Hadoop是一种开源的分布式存储和计算框架&#xff0c;它可以支持不同类型的纠删码&#xff0c;并提供了一些应用程序接口和工具来测试和评估纠删…

Nginx基础详解5(nginx集群、四七层的负载均衡、Jmeter工具的使用、实验验证集群的性能与单节点的性能)

续Nginx基础详解4&#xff08;location模块、nginx跨域问题的解决、nginx防盗链的设计原理及应用、nginx模块化解剖&#xff09;-CSDN博客 目录 14.nginx集群&#xff08;前传&#xff09; 14.1如何理解单节点和集群的概念 14.2单节点和集群的比较 14.3Nginx中的负载均衡…

选GB28181还是RTSP?

好多开发者&#xff0c;搞不清楚什么时候用GB28181&#xff0c;什么时候用RTSP&#xff0c;本文就二者使用场景和区别&#xff0c;做个大概的探讨&#xff1a; 定义与性质&#xff1a; GB28181&#xff1a;是中国国家标准&#xff0c;全称为《公共安全视频监控联网系统信息传输…

AcWing 905:区间选点 ← 贪心算法

【题目来源】https://www.acwing.com/problem/content/907/【题目描述】 给定 N 个闭区间 [ai,bi]&#xff0c;请你在数轴上选择尽量少的点&#xff0c;使得每个区间内至少包含一个选出的点。 输出选择的点的最小数量。 位于区间端点上的点也算作区间内。【输入格式】 第一行包…

Hopfield神经网络求解旅行商问题(Traveling Salesman Problem,TSP),提供完整MATLAB代码,复制粘贴即可运行

Hopfield神经网络是以美国物理学家约翰霍普菲尔德&#xff08;John Hopfield&#xff09;的名字命名的。他在1982年提出了这种类型的神经网络模型&#xff0c;因此通常被称为Hopfield网络。Hopfield网络是一种早期的人工神经网络&#xff0c;具有以下特点&#xff1a; 递归连接…