电子说
大型语言模型LLM(Large Language Model)具有很强的通用知识理解以及较强的逻辑推理能力,但其只能处理文本数据。虽然已经发布的GPT4具备图片理解能力,但目前还未开放多模态输入接口并且不会透露任何模型上技术细节。因此,现阶段,如何利用LLM做一些多模态任务还是有一定的研究价值的。
本文整理了近两年来基于LLM做vision-lanuage任务的一些工作,并将其划分为4个类别:
接下来每个类别会挑选代表性的工作进行简单介绍:
这部分工作是目前关注度最高的工作,因为它具有潜力来 以远低于多模态通用模型训练的代价将LLM拓展为多模态模型 。
随着GPT4的火热,近期涌现了大量的工作,如LLaVA, Mini-GPT4和mPLUG-Owl。这三个工作的主要区别如下图所示,总体而言,模型结构和训练策略方面大同小异,主要体现在 LLaVA和MiniGPT4都冻住基础视觉编码器,mPLUG-Owl将其放开 ,得到了更好的视觉文本跨模态理解效果;在实验方面 mPLUG-Owl首次构建并开源视觉相关的指令理解测试集OwlEval ,通过人工评测对比了已有的模型,包括BLIP2、LLaVA、MiniGPT4以及系统类工作MM-REACT。
mPLUG-Owl vs MiniGPT4 vs LLaVA
mPLUG-Owl: Modularization Empowers Large Language Models with Multimodality
mPLUG-Owl是阿里巴巴达摩院 mPLUG系列的最新工作,继续延续mPLUG系列的模块化训练思想 ,将LLM迁移为一个多模态大模型。此外,Owl 第一次针对视觉相关的指令评测提出一个全面的测试集OwlEval ,通过人工评测对比了已有工作,包括LLaVA和MIniGPT4。该评测集以及人工打分的结果都进行了开源,助力后续多模态开放式回答的公平对比。
模型结构 :采用CLIP ViT-L/14作为"视觉基础模块",采用LLaMA初始化的结构作为文本解码器,采用类似Flamingo的Perceiver Resampler结构对视觉特征进行重组(名为"视觉摘要模块"),如图。
mPLUG-Owl模型结构
模型训练
实验分析
除了训练策略,mPLUG-Owl另一个重要的贡献在于通过构建 OwlEval评测集 ,对比了目前将LLM用于多模态指令回答的SOTA模型的效果。和NLP领域一样,在指令理解场景中,模型的回答由于开放性很难进行评估。
Visual instruction tuning
自然语言处理领域的instruction tuning可以帮助LLM理解多样化的指令并生成比较详细的回答。LLaVA首次尝试构建图文相关的instruction tuning数据集来将LLM拓展到多模态领域。具体来说,基于MSCOCO数据集,每张图有5个较简短的ground truth描述和object bbox(包括类别和位置)序列,将这些作为text-only GPT4的输入,通过prompt的形式让GPT4生成3种类型的文本:1)关于图像中对象的对话;2)针对图片的详细描述;3)和图片相关的复杂的推理过程。注意,这三种类型都是GPT4在不看到图片的情况下根据输入的文本生成的,为了让GPT4理解这些意图,作者额外人工标注了一些样例用于in-context learning。
模型结构 :采用CLIP的ViT-L/14作为视觉编码器,采用LLaMA作为文本解码器,通过一个简单的线性映射层将视觉编码器的输出映射到文本解码器的词嵌入空间,如图。
LLaVA模型结构
模型训练1/ 第一阶段:跨模态对齐预训练,从CC3M中通过限制caption中名词词组的最小频率过滤出595k图文数据,冻住视觉编码器和文本解码器, 只训练线性映射层 ;2. 第二阶段:指令微调,一版针对多模态聊天机器人场景,采用自己构建的158k多模态指令数据集进行微调;另一版针对Science QA数据集进行微调。 微调阶段,线性层和文本解码器(LLaMA)都会进行优化 。
实验分析
Minigpt-4: Enhancing vision-language under- standing with advanced large language models
Mini-GPT4和LLaVA类似,也发现了多模态指令数据对于模型在多模态开放式场景中表现的重要性。
模型结构:采用BLIP2的ViT和Q-Former作为视觉编码器,采用LLaMA经过自然语言指令微调后的版本Vicuna作为文本解码器,也通过一个线性映射层将视觉特征映射到文本表示空间,如图:
MiniGPT4模型结构
模型训练
DeepMind于2021年发表的Frozen,2022年的Flamingo以及Saleforce 2023年的BLIP2也都是这条路线,如图所示。
Multimodal Few-Shot Learning with Frozen Language Models.
Frozen训练时将图片编码成2个vision token,作为LLM的前缀,目标为生成后续文本,采用Conceptual Caption作为训练语料。Frozen通过few-shot learning/in-context learning做下游VQA以及image classification的效果还没有很强,但是已经能观察到一些多模态in-context learning的能力。
Flamingo: a Visual Language Model for Few-Shot Learning
Flamingo为了解决视觉feature map大小可能不一致(尤其对于多帧的视频)的问题,用Perceiver Resampler (类似DETR的解码器)生成固定长度的特征序列(64个token),并且在LLM的每一层之前额外增加了一层对视觉特征进行注意力计算的cross-attention layer,以实现更强的视觉相关性生成。Flamingo的训练参数远高于Frozen,因此采用了大量的数据:1)MultiModal MassiveWeb(M3W) dataset:从43million的网页上收集的图文混合数据,转化为图文交叉排列的序列(根据网页上图片相对位置,决定在转化为序列后,token 在文本token系列中的位置);2)ALIGN (alt-text & image Pairs): 1.8 million图文对;3)LTIP (LongText & Image Pairs):312 million图文对;4)VTP (Video & Text Pairs) :27 million视频文本对(平均一个视频22s,帧采样率为1FPS)。类似LLM,Flamingo的训练目标也为文本生成,但其对于不同的数据集赋予不同的权重,上面四部分权重分别为1.0、0.2、0.2、0.03,可见图文交叉排列的M3W数据集的训练重要性是最高的,作者也强调这类数据是具备多模态in-context learning能力的重要因素。Flamingo在多个任务上实现了很不错的zero-shot以及few-shot的表现。
BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models
BLIP2采用了类似于Flamingo的视觉编码结构,但是采用了更复杂的训练策略。其包含两阶段训练,第一阶段主要想让视觉编码器学会提取最关键的视觉信息,训练任务包括image-Text Contrastive Learning, Image-grounded Text Generation以及Image-Text Matching;第二阶段则主要是将视觉编码结构的输出适配LLM,训练任务也是language modeling。BLIP2的训练数据包括MSCOCO,Visual Genome,CC15M,SBU,115M来自于LAION400M的图片以及BLIP在web images上生成的描述。BLIP2实现了很强的zero-shot capitoning以及VQA的能力,但是作者提到未观察到其in-context learning的能力,即输入样例并不能提升它的性能。作者分析是因为训练数据里不存在Flamingo使用的图文交错排布的数据。不过Frozen也是没有用这类数据,但是也观察到了一定的in-context learning能力。因此多模态的in-context learning能力可能和训练数据、训练任务以及位置编码方法等都存在相关性。
An Empirical Study of GPT-3 for Few-Shot Knowledge-Based VQA
以PICA为例,它的目标是充分利用LLM中的海量知识来做Knowledge-based QA。给定一张图和问题,以往的工作主要从外部来源,例如维基百科等来检索出相关的背景知识以辅助答案的生成。但PICA尝试将图片用文本的形式描述出来后,直接和问题拼在一起作为LLM的输入,让LLM通过in-context learning的方式直接生成回答,如图所示。
PICA
In-context learning的效果比较依赖example/demonstration的质量,为此PICA的作者利用CLIP挑选了和当前测试样例在问题和图片上最接近的16个训练样例作为examples。
Language Models Can See: Plugging Visual Controls in Text Generation
以MAGIC为例,它的目标是让LLM做image captioning的任务,它的核心思路是生成每一个词时,提高视觉相关的词的生成概率,公式如图所示。
MAGIC解码公式
该公式主要由三部分组成:
退化惩罚主要是希望生成的词能带来新的信息量。视觉相关性部分为基于CLIP计算了所有候选词和图片的相关性,取softmax之后的概率作为预测概率。
Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Models
以微软Visual ChatGPT为例,它的目标是使得一个系统既能和人进行视觉内容相关的对话,又能进行画图以及图片修改的工作。为此,Visual ChatGPT采用ChatGPT作为和用户交流的理解中枢,整合了多个视觉基础模型(Visual Foundation Models),通过prompt engineering (即Prompt Manager)告诉ChatGPT各个基础模型的用法以及输入输出格式,让ChatGPT决定为了满足用户的需求,应该如何调用这些模型,如图所示。
微软另一个小组稍晚一段时间提出的MM-REACT ^[5]^ 也是同样的思路,区别主要在于prompt engineering的设计以及MM-REACT更侧重于视觉的通用理解和解释,包含了很多Microsoft Azure API,例如名人识别、票据识别以及Bing搜索等。
对比几种融入方式:
全部0条评论
快来发表一下你的评论吧 !