1. BLIP-2代码解析
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的结果图