大模型是未来,大模型的未来是多模态!
此处我们将最小化多模态大模型之路,只介绍最为必要的多模态大模型。
我将多模态大模型的演化之路分为三部分:
- 1 预训练 : ALBEF(图文理解), BLIP(图文理解+图文生成)
- 2 微调 : BLIP2(Q-Former)
- 3 指令微调 : InstructBLIP,MiniGPT4,LLAVA
1 预训练
1.1 CLIP
讲到多模态大模型,绕不开的路就是CLIP。CLIP是OPENAI在2021年的工作,开启了图像文本理解的预训练狂潮。
CLIP的输入为图文对,典型的双塔模型,有两个 encoder,一个对应图片,一个对应文本,图像和文本经过各自的 encoder 后,通过简单的点乘来代表不同模态的交互(相似性),通过对比学习(InfoNCE)计算对比学习loss。
训练时,假设一个 batch 有 N 对(图像,文本)对,可以有 N x N 种组合方式,对比学习把原始数据集中的 N 个组合作为正样本(下图对角线),把其他的 N x N – N 种组合作为负样本。
1.2 ALBEF
在CLIP之后,未来很多的模型都是在ITC(Image Text Contrastive)任务上继续工作。
ALBEF的主打卖点就是图文理解,故第三个任务是MLM和Bert一样的掩码学习。
三大基础任务:
- 1 ITC(image text contrastive): 与CLIP一致
- 2 ITM(image text matching):使用多模态编码器的[CLS]token预测图像和文本是否匹配(二分类),使用的是硬负样本,来自计算ITC任务中的次相似样本对。
- 3 MLM(Mask Language Modeling):将mask后的文本和图像一起通过ALBEF预测被mask的文本。
由此我们看出训练多模态大模型的缺点之一就是需要多次前向传播,ALBEF需要图像和文本都进行前向传播后才能进行loss的计算和反向传播。
1.3 BLIP
在ALBEF的基础上统一了图文理解和生成任务,同时还进行了数据自蒸馏的工作。
1.3.1 文本生成
三大基础任务:
- 1 ITC:对齐,Image Encoder为ViT,全局图像特征为[CLS];Text Encoder为Bert,全局文本特征为[CLS]
- 2 ITM:理解,Image-ground text encoder
- 3 LM:生成,Image-groung text decoder
BLIP在网络结构上和ALBEF差距不大,只是为了统一图文理解和生成任务将MLM变成LM的生成任务。
1.3.2 数据自蒸馏
- 1 输入:携带噪声的Tw数据和人工清洗的Th数据。
- 2 微调:利用人工清洗的高质量Th数据进行微调。
- 2.1 ITC&ITM微调
- 2.2 LM微调
- 3 过滤:
- 3.1 利用ITC&ITM微调后的模型过滤携带噪声的Tw’数据。
- 3.2 利用LM微调后的模型对携带噪声的Tw数据进行生成得到高质量Ts。
- 4 最终数据 = Tw’ + Ts + Th
2 微调
2.1 BLIP2
到了大模型时代,研究者们发现,市面上有这么好用的图像编码器和文本LLM,是想不开还是脑子秀逗了非得重新训练。重新预训练费时费力效果还不好,何不在已经分别预训练好的图像编码器和文本LLM之间构建一个对齐器。通过训练对齐器来对齐图像和文本特征到共同的特征空间。
BLIP2的探索是训练一个Q-Former,同样包含景点3大基础任务,但是冻结了图像编码器和文本大模型。
BLIP2分为两个步骤:特征表示学习阶段,文本生成阶段。
2.1.1 特性表示学习
训练Q-Former模块。
Q-Former的学习利用了一个Learning Queries,可能大家很奇怪,预设一个随机初始化的queries有什么用,为何不直接将text的特征和图像特征进行cross attention,非得绕一个路呢。
以下为个人的猜想,如果不对,敬请指正:
- 1 首先,text特征过一个project直接和图像特征进行cross attention过于暴力,对齐效果有上限。
- 2 使用随机初始化的Learning Queries与图像特性K,V进行cross attention计算可以挑选出感兴趣的区域,那么谁来指导这个计算过程呢?
- 3 使用ITC、ITM和LM三大任务,使用文本来指导Learning Queries对图像特征的挑选,然后通过loss反向传播来优化Learning Queries。
- 4 使用Learning Queries还有一个优点就是可以针对特定任务来获取特定的图像特征,这是直接将text和图像进行cross attention进行计算对齐而无法做到的。
2.1.2 文本生成
训练Fully Connected模块。
来到文本生成阶段,输入为图像和Learning Queries。
- 1 Learning Queries通过Q-Former得到图像特征中感兴趣的区域特征(特征学习阶段已经指导过,故可以实现ROI)。
- 2 将关键图像特征经过project映射后交给LLM进行生成。
- 3 冻结Q-Former,只需要训练project层即可。
3 指令微调
3.1 InstructBLIP
InstructBLIP的创新点有两个:
- 1 在BLIP2的基础上,将Learned Queries变成Instruct-aware Learned Queries。
- 2 在训练的第二个文本生成阶段,也使用Instruct。
3.2 MiniGPT-4
在InsturcBLIP上更近一步,直接将ViT和Q-Former都冻结同时使用Instruct,省去BLIP2的step1过程,直接优化BLIP2的Step2文本生成过程中的线性层。
3.3 LLAVA
LLAVA相比BLIP2的改进模型更加暴力,不使用Q-Former模型,直接进行Project映射。缺点就是对齐性能不足,所以LLAVA第二阶段进行了端到端微调。
- 1 冻结视觉编码器和LLM,训练投影矩阵
- 2 端到端微调