前一篇博客已经整理了不训练视觉模型的文章们:
本篇文章将介绍一些需要训练视觉编码器来适配多模态大模型的工作们,这也是目前最为流行的研究思路。
其实早在2021年DeepMind发表Frozen的时候就已经有了few-shot甚至in-context learning的思路,博主在以往的博文中也有过介绍(Multimodal Few-Shot Learning with Frozen Language Models),此处简要回顾一下,如下图所示,Frozen先将图片编码成visual tokens,然后作为prefix跟文本的tokens一起输入到LLMs。在o-shot,1-shot和few-shot时都可以利用类似的操作。
由于Frozen仅有vision encoder是支持训练,而LLMs参数处于冻结状态,即通过训练视觉编码器来适配LLMs,这种方法可以使得训练成本大大降低,而当现在有了chatgpt系列的技术之后,这一思路也很自然的能被用到多模态大模型上来。
Flamingo
出自DeepMind,它在Frozen模型的基础上做进一步的改进,不同点主要有两个:一是使用了更大的LLMs,二是冻结视觉编码器,引入perceiver resampler和XAttn-Dense两个适配单元作为可训练的模块。
- perceiver resampler:类似DETR,通过设计多个Perceiver Resampler来生成64个固定长度的tokens,主要作用在于可以从图像中提取固定长度的特征向量,能够解决图像甚至多帧视频的feature map不一致的问题。
- XAttn-Dense:在每一层LLM上都会增加corss- attention以入到LLM中与视觉向量进行交互,融合多模态信息。