BLIP-2:零样本图像到文本生成

BLIP-2 是 Salesforce Research 开发的零样本视觉语言模型,通过桥接冻结的预训练视觉编码器和冻结的大型语言模型(LLMs),实现了最先进的图像到文本生成。与端到端的多模态预训练相比,这种方法显著降低了预训练成本和可训练参数的数量。

Q-Former 架构

BLIP-2 使用轻量级的查询变换器(Q-Former)来弥合视觉与语言之间的模态差距。Q-Former 是该架构中唯一可训练的组件;图像编码器和 LLM 在训练期间均保持冻结。

Q-Former 子模块

Q-Former 由两个共享相同自注意力层的子模块组成:

  • Image Transformer:与冻结的图像编码器交互以提取视觉特征。它以可学习的查询嵌入作为输入,并在不考虑输入图像分辨率的情况下提取固定数量的输出特征。
  • Text Transformer:同时充当文本编码器和文本解码器。

两阶段预训练

Q-Former 通过两个不同的阶段进行训练:

  1. 第一阶段:图像编码器保持冻结,Q-Former 使用三种特定的损失进行训练:
    • 图像-文本对比损失:计算查询输出与文本输出 CLS 标记之间的成对相似度。
    • 基于图像的文本生成:文本变换器使用因果掩码并关注查询,而查询之间相互关注但不关注文本标记。
    • 图像-文本匹配损失:查询与文本交互,产生一个对数值以指示文本是否匹配图像,并使用硬负样本挖掘来获取负例。
  2. 第二阶段:查询嵌入现在包含通过信息瓶颈过滤的相关视觉信息,作为视觉前缀输入到 LLM。此阶段使用因果语言模型损失进行基于图像的文本生成。

模型能力与实现

BLIP-2 旨在保持灵活,可任意组合视觉主干(如 ViT)和 LLM(如 OPT 或 Flan T5)。

支持的任务

BLIP-2 能以零样本方式执行多种图像到文本任务:

  • 图像描述:从 BOS(序列起始)标记开始,在没有文本提示的情况下生成图像的描述。
  • 提示式图像描述:基于图像的视觉内容继续给定的文本提示。
  • 视觉问答(VQA):使用提示格式 Question: {} Answer: 对图像的特定问题进行回答。
  • 基于聊天的提示:通过串联先前的问答对构建上下文,创建对话式界面。上下文限制为 512 个标记,匹配底层 LLM(OPT 和 T5)的上下文长度。

与 Hugging Face Transformers 的集成

BLIP-2 可通过 Hugging Face Transformers 库中的 Blip2ForConditionalGeneration 类获取。由于它是专用架构,不能通过标准的 AutoModel API 加载,需要显式使用 Blip2ForConditionalGeneration 类,尽管可以使用 AutoProcessor 来获取 Blip2Processor

Sources