BLIP-2 代码解析
paperreading
本文字数:308 字 | 阅读时长 ≈ 1 min

BLIP-2 代码解析

paperreading
本文字数:308 字 | 阅读时长 ≈ 1 min

1. BLIP-2 代码解析

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

BLIP-2 是 Salesforce 的一篇文章,核心框架图如下所示,由 Image Encoder, Q-Former 以及 LLM 组成,其中 Q-former 主要用来将图像的 embedding 空间和 LLM 的 word embedding 空间进行对齐

1.1 Image Encoder 代码

这里的 Image Encoder 就是一个 ViT,首先使用 Transform 将输入图片转化为(1,3,224,224)维度,然后进入到 ViT 当中,ViT 一共有 39 层,细节如下图所示

1.2 Q-Former 代码

Q-Former 代码如下图所示,是一个 12 层的 Transformer,包含 Self-attention, Cross-attention, 和 MLP,其中每一部分的具体操作如下所示

2. BLIP-2 方法框图

2.1 Paper 中的网络结构图

文中给出的网络图如下所示

下面是论文中给出的 image encoder 和 Q-Former 的结构图,以及优化目标。这里有一个疑问:在 blip2 源代码的推理阶段,我并没有看到 input text 的这一部分,也就是说右边的 text 分支被删除了,我的理解是训练目标时只是为了让模型提取图片中的关键信息?

2.2 Inference 的结果图

4月 06, 2025
3月 10, 2025
12月 31, 2024