【AIGC】9、BLIP-2 | 使用 Q-Former 连接冻结的图像和语言模型 实现高效图文预训练

这篇具有很好参考价值的文章主要介绍了【AIGC】9、BLIP-2 | 使用 Q-Former 连接冻结的图像和语言模型 实现高效图文预训练。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【AIGC】9、BLIP-2 | 使用 Q-Former 连接冻结的图像和语言模型 实现高效图文预训练

论文:BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models

代码:https://github.com/salesforce/LAVIS/tree/main/projects/blip2

在线体验:https://huggingface.co/Salesforce/blip2-opt-2.7b

出处:Salesforce Research | 和 BLIP 是同一团队

时间:2023.01

线上体验示例:将图拖拽至此即可生成对图像的描述

【AIGC】9、BLIP-2 | 使用 Q-Former 连接冻结的图像和语言模型 实现高效图文预训练
贡献:

  • 提出了 BLIP-2: Bootstrapping Language-Image Pre-training,能够借助训练好的视觉模型和语言模型来实现高效的 vision-language pre-training
  • 提出了轻量级的 Q-Former,使用两阶段训练 Q-Former 的方式,在冻结 image model 和 LLM 进行预训练的同时在它们之间建立一个桥梁。第一阶段是 representation learning,让 Q-Former 学习和文本更相关的视觉特征,第二阶段是 generative learning,实现使用 LLM 来解释 Q-Former 输出的视觉特征
  • BLIP-2 可以实现零样本的 image-to-text 生成

一、背景

Vision-Language Pre-training(VPL)在最近几年取得了很大的进展,也为很多下游任务带了了更多的提升。

但现有的 SOTA VPL 模型的 pre-training 依赖于超大模型和超大数据集,非常耗时

Vision-Language 的相关研究主要集中于 vision 和 language 的交叉点上,所以人们很自然的期望该模型能够从现有的单模态视觉或单模态语言模型上获得一些提升

本文中,作者提出了一种通用且高效的 VLP 方法,能够从现成的预训练好的视觉和语言模型中得到提升

为了降低计算量且避免再重新训练时单模态模型遗忘之前学习到的东西,所以在预训练的时候会冻结预训练好的单模态模型

一个很关键的地方就在于促进不同模态之间的校准,但由于大语言模型 LLM 在训练的时候并没有见过图像,简单的冻结参数可能无法达到预期的效果,现有的方法是通过使用 image-to-text 生成 loss 来解决的,但本文证明这种方法难以很好的弥补其中的 gap

为了在冻结单模态模型的同时实现高效的 vision-language 对齐,作者提出了 Querying Transformer(Q-Former),并且使用 two-stage pre-training 的方式来训练 Q-Former

如图 1 所示,Q-Former 非常轻量,且能够使用一系列可学习的 query vectors 来从冻结的 image encoder 中提取和文本更相关的视觉特征

Q-Former 可以看做是 frozen image encoder 和 frozen LLM 之间的信息传输模块

【AIGC】9、BLIP-2 | 使用 Q-Former 连接冻结的图像和语言模型 实现高效图文预训练

二、方法

2.1 模型结构

为了实现在冻结单模态模型参数的情况下进行模型的多模态训练,作者提出了 Q-Former 来弥补两种不同的模态之间的 gap

Q-Former 能够从 image encoder 中提取出固定数量的输出特征(与输入图像的分辨率无关)

如何两阶段训练 Q-Former:

  • 第一阶段: vision-language representation learning stage with a frozen image encoder

    能够强制让 Q-Former 学习更和文本相关的视觉表达信息

  • 第二阶段: vision-to-language generative learning stage with a frozen LLM

    通过将 Q-Former 的输出和 frozen LLM 连接起来实现 vision-to-language 生成式学习,所要实现的目标是能用 LLM 来解释 Q-Former 的输出视觉表达特征

【AIGC】9、BLIP-2 | 使用 Q-Former 连接冻结的图像和语言模型 实现高效图文预训练

如图 2 所示,Q-Former 由两个 transformer 子模型组成,且两个子模型共享 self-attention layers:

  • image transformer:和 frozen image encoder 进行交互,来抽取视觉特征
  • text transformer:同时有 text encoder 和 text decoder 的作用

Q-Former 如何工作:

  • 首先建立一组可学习的 query embedding 作为 image transformer 的输入
  • queries 之间会通过 self-attention 来进行交互,也能通过 cross-attention 和 frozen image feature 进行交互
  • queries 可以通过 self-attention layer 和 text 进行交互
  • 基于不同的预训练任务, 作者会使用不同的 self-attention mask 来控制 query-text 之间的交互
  • Q-Former 使用 BERT_base 进行初始化,cross-attention layers 的参数是随机初始化的
  • Q-Former 共包含 188M 参数
  • 在实验中,作者使用了 32 queries,每个 query 有 768 维,使用 Z 来定义输出 query representation, Z ( 32 × 768 ) Z(32 \times 768) Z(32×768) 的尺寸远远小于 frozen image feature 的尺寸(ViT-L/14 是 256x1024)
  • 该结构能够和目标函数一起促进 query 来提取更和 text 相关的视觉信息

2.2 从 frozen image encoder 中自主学习 Vision-Language Representation

在 representation 学习阶段的训练方法:

  • 作者将 Q-Former 和 frozen image encoder 结合起来
  • 并且使用 image-text pairs 来进行预训练

为了训练 Q-Former 来实现 queries 能够抽取出包含对应文本信息的 visual representation,参考 BLIP,作者同时优化了三个目标函数,每个 objective 在 queries 和 text 之间使用不同的 attention mask strategy,用于控制其交互,如图 2 所示

1、Image-Text Contrastive Learning (ITC):学习将 image 特征和 text 特征进行对齐,使他们的交互信息最大化

  • 实现方式:使用对比学习,学习 image-text 的相似度,positive pairs 的相似性大于 negative pairs 的相似性

  • t t t :text transformer 的 [CLS] token 的输出 representation,包含多个输出编码(一个 query 对应一个编码)

  • Z Z Z:image transformer 的 输出 query representation

  • 计算每个 query output 和 t 的 相似度,选择相似度最高的作为 image-text similarity,为了避免信息泄露,作者还使用了单模态 self-attention mask,queries 和 text 不能看到对方

  • 由于 image encoder 是被冻结的,所以相比于端到端训练,冻结的方式能够在每个 GPU 上放更多的样本,所以本方法使用的 in-batch negatives 而非 momentum queue(BLIP)

2、Image-grounded Text Generation (ITG):训练 Q-Former 来生成 text,输入的图像作为条件

  • 由于 Q-Former 不允许 frozen image encoder 和 text image encoder 的直接交互
  • 但生成 text 的基础信息是来源于 query 抽取到的图像信息
  • 所以,query 需要能够抽取关于 text 内容的所有的图像信息
  • 作者使用多模态 causal self-attention mask 来控制 query-text 的交互,类似于 UniLM,query 可以和其他 query 以及出现在它前面的 text token 进行交换,同时也是要 [DEC] token 替换了 [CLS] token 作为第一个 text toden 来标记 decoding 任务

3、Image-Text Matching (ITM):用于学习 image-text 之间更细粒度的对齐

  • 该任务时一个二值分类任务,用于预测一个 image-text pairs 是 positive(matched)还是 negative(unmatched)
  • 作者使用 bi-directional self-attention mask,该 mask 的形式允许所有 query 和 text 进行交互
  • 输出 query embedding Z Z Z 能够捕捉多模态信息
  • 将每个输出 query embedding 输入二分类的线性分类器,来获得一个 logit,并且将 logit 平均后作为输出的 matching score
  • 此外,作者也使用了负难例挖掘,来提取出难的 negative pairs

2.3 使用 Frozen LLM 来自主学习 Vision-to-Language 生成

【AIGC】9、BLIP-2 | 使用 Q-Former 连接冻结的图像和语言模型 实现高效图文预训练

在生成任务的预训练阶段,作者将 Q-Former(已经基于 frozen image encoder 预训练过的)和 frozen LLM 进行结合,来获得 LLM 的语言生成能力

如图 3 所示:

  • 首先,使用全连接层来对 output query embedding Z Z Z 进行线性映射,将其映射为何 LLM 的text embedding 相同的维度
  • 映射后的 query embedding 放到 text embedding 的前面
  • 将其作为 soft visual prompts 的功能,使用 Q-Former 提取出的视觉信息来过滤 LLM

2.4 Model pre-training

1、预训练数据

使用和 BLIP 相同的 129M 预训练数据,包括 COCO、Visual Genome、CC3M、 CC12M、SBU、 LAION400M 中的 115M 数据

并且使用了 CapFilt 方法来对 web images 合成的描述

使用 BLIP_large 模型生成了 10 个描述,并且根据由 CLIP 产生的 image-text 相似度来对这 10 个描述进行排序,给每个 image 保留前两个描述,然后随机选择一个来进行预训练

2、预训练 image encoder 和 LLM

作者使用两个 SOTA 预训练 vision transformer:

  • ViT-L/14 from CLIP
  • ViT-G/14 from EVA-CLIP
  • 移除了 ViT 的最后一层,使用倒数第二层的特征作为输出特征,这会获得更好的效果

对 frozen language model,使用无监督训练的 OPT 来训练 decoder-based LLM ,使用 FlanT5 来训练 encoder-decoder-based LLM

3、设置

224x224 图像大小

三、效果

1、带指令零样本 image-to-text 生成

BLIP-2 能够高效的使用 LLM 理解图像的同时,且保留 text prompt 的能力,就能够使用指令来指导 image-to-text 的生成

如图 4 所示,展示了一些例子

【AIGC】9、BLIP-2 | 使用 Q-Former 连接冻结的图像和语言模型 实现高效图文预训练

零样本 VQA:

【AIGC】9、BLIP-2 | 使用 Q-Former 连接冻结的图像和语言模型 实现高效图文预训练

【AIGC】9、BLIP-2 | 使用 Q-Former 连接冻结的图像和语言模型 实现高效图文预训练

Vision-Language 特征表达的学习效率:

【AIGC】9、BLIP-2 | 使用 Q-Former 连接冻结的图像和语言模型 实现高效图文预训练

2、为图像产生文本描述,Image Captioning:

【AIGC】9、BLIP-2 | 使用 Q-Former 连接冻结的图像和语言模型 实现高效图文预训练

3、visual question answering

【AIGC】9、BLIP-2 | 使用 Q-Former 连接冻结的图像和语言模型 实现高效图文预训练

4、图文检索

【AIGC】9、BLIP-2 | 使用 Q-Former 连接冻结的图像和语言模型 实现高效图文预训练

【AIGC】9、BLIP-2 | 使用 Q-Former 连接冻结的图像和语言模型 实现高效图文预训练

四、局限性

BLIP-2 的 image-to-text 生成任务可能不是很能令人满意,原因可能来自于 LLM 的认知不准确、或没有关于新图像的更新,此外,由于冻结了模型,BLIP-2 可能继承到 LLM 的风险。

【AIGC】9、BLIP-2 | 使用 Q-Former 连接冻结的图像和语言模型 实现高效图文预训练

【AIGC】9、BLIP-2 | 使用 Q-Former 连接冻结的图像和语言模型 实现高效图文预训练

【AIGC】9、BLIP-2 | 使用 Q-Former 连接冻结的图像和语言模型 实现高效图文预训练文章来源地址https://www.toymoban.com/news/detail-444195.html

到了这里,关于【AIGC】9、BLIP-2 | 使用 Q-Former 连接冻结的图像和语言模型 实现高效图文预训练的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mask2Former来了!用于通用图像分割的 Masked-attention Mask Transformer

    原理https://blog.csdn.net/bikahuli/article/details/121991697 源码解析 论文地址:http://arxiv.org/abs/2112.01527 项目地址:https://bowenc0221.github.io/mask2former Mask2Former的整体架构由三个组件组成: 主干特征提取器:主干特征提取器从输入图像中提取低分辨率特征。在Mask2Former中,主干特征提取器通

    2024年02月02日
    浏览(46)
  • CV多模态和AIGC原理解析:从CLIP、BLIP到DALLE 3、Stable Diffusion、MDJ

    终于开写本CV多模态系列的核心主题:stable diffusion相关的了,为何执着于想写这个stable diffusion呢,源于三点 去年stable diffusion和midjourney很火的时候,就想写,因为经常被刷屏,但那会时间错不开 去年11月底ChatGPT出来后,我今年1月初开始写ChatGPT背后的技术原理,而今年2月份

    2024年02月06日
    浏览(47)
  • CV多模态和AIGC的原理解析:从CLIP、BLIP到DALLE 3、Stable Diffusion/MDJ

    终于开写本CV多模态系列的核心主题:stable diffusion相关的了,为何执着于想写这个stable diffusion呢,源于三点 去年stable diffusion和midjourney很火的时候,就想写,因为经常被刷屏,但那会时间错不开 去年11月底ChatGPT出来后,我今年1月初开始写ChatGPT背后的技术原理,而今年2月份

    2024年02月08日
    浏览(48)
  • CV多模态和AIGC的原理解析:从CLIP、BLIP到DALLE三代、Stable Diffusion/MDJ

    终于开写本CV多模态系列的核心主题:stable diffusion相关的了,为何执着于想写这个stable diffusion呢,源于三点 去年stable diffusion和midjourney很火的时候,就想写,因为经常被刷屏,但那会时间错不开 去年11月底ChatGPT出来后,我今年1月初开始写ChatGPT背后的技术原理,而今年2月份

    2024年02月08日
    浏览(43)
  • AIGC下的CV多模态原理解析:从CLIP/BLIP到stable diffusion/Midjourney、GPT4

    终于开写本CV多模态系列的核心主题:stable diffusion相关的了,为何执着于想写这个stable diffusion呢,源于三点 去年stable diffusion和midjourney很火的时候,就想写,因为经常被刷屏,但那会时间错不开 去年11月底ChatGPT出来后,我今年1月初开始写ChatGPT背后的技术原理,而今年2月份

    2024年02月10日
    浏览(68)
  • Stable Diffusion - 图像反推 (Interrogate) 提示词算法 (BLIP 和 DeepBooru)

    欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/131817599 图像反推 (Interrogate) 功能,是指根据给定的图像生成一个或多个文本提示,这些提示可以描述图像的内容、风格、细节等方面。这个功能可以帮助用户快速找到合适的文本提示,从而

    2024年02月15日
    浏览(40)
  • 【多模态】5、BLIP | 统一理解与生成任务 为图像生成更高质量的文本描述

    论文:BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation 代码:https://github.com/salesforce/BLIP 线上体验:https://huggingface.co/spaces/Salesforce/BLIP 出处:ICML 2022 | Salesforce Research 时间:2022.02 贡献: 提出了一个可以联合训练理解和生成任务的多模态混合模

    2024年02月16日
    浏览(54)
  • 【AIGC】手把手使用扩散模型从文本生成图像

    在这篇文章中,我们将手把手展示如何使用Hugging Face的diffusers包通过文本生成图像。 DALLE2是收费的,用户只有一些免费的额度,如果免费额度使用完毕就需要付费了,所以必须寻找替代方案,并发现了Hugging Face,他们发布了一个扩散模型的包diffusers ,可以让我们直接使用。

    2024年02月09日
    浏览(62)
  • AIGC实战——使用变分自编码器生成面部图像

    在自编码器和变分自编码器上,我们都仅使用具有两个维度的潜空间。这有助于我们可视化自编码器和变分自编码器的内部工作原理,并理解自编码器和变分自编码潜空间分布的区别。在本节中,我们将使用更复杂的数据集,并了解增加潜空间的维度时,变

    2024年02月05日
    浏览(44)
  • 使用冻结层进行迁移学习

    在yolov5的训练过程中,作者介绍了如何使用冻结层实现迁移学习的策略。具体可以参考官方话题:Transfer Learning with Frozen Layers · Issue #1314 · ultralytics/yolov5 · GitHub 在很多情况下,迁移学习是一种十分有用的方法,可以在新的数据集上快速重新训练模型,无需重新训练整个模型

    2024年02月01日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包