Advertisement

Flamingo a Visual Language Model for Few-Shot Learning

阅读量:

Flamingo: a Visual Language Model for Few-Shot Learning

TL;DR指出,在VL-adapter架构中,Flamingo展现出了一种创新性设计。这种设计由Perceiver Resampler与gated-xattn两种技术结合构成了一种复杂而先进的图像特征注入方法。同时其卓越的架构设计使其能够有效整合图、文与视数据。(多模态)少量样本学习(基于上下文的学习)能力。


零样本学习的能力使多模态模型得以实现, 并标志着该领域的重要进展。然而, 即使如CLIP这类工具也只能完成分类与检索等基础任务。为此, 我们提出了Flamingo架构, 其创新之处在于: 首先整合了预先训练完成的视觉与语言模块; 其次可处理多种图片与文本配对的数据集; 最后支持图像、视频等多种输入形式, 这些特性使其能够在海量混合图片与文本的数据集中实现良好的训练效果。基于提示信息的应用模式, Flamingo实现了少样本学习(即内推学习)的能力

先探讨一下Flamingo在few-shot和in-context learning方面的表现。当prompt中包含若干示例时,Flamingo能够准确理解任务的核心要求并生成合理合适的答案。值得注意的是,在NLP领域中,in-context learning近年来已经发展成为一个热门话题。由于单模态场景下,NLP中的in-context学习往往能够直接利用自然语言进行处理,就像传统考试题目中的例子可以直接运用自然语言来解答一样。然而,在多模态in-context学习领域中,为了有效提升模型对复杂情境的理解能力,训练过程中不仅需要提供单纯的图文信息,还必须引入大量图文交错的数据集,这是实现多模态in-context学习的关键所在

在这里插入图片描述

方法

本节分为模型结构和训练数据两个小节,来介绍 Flamingo 的具体方法。

模型结构

多模态模型的核心在于中间adapter层的设计方案。研究者们提出了一个关键问题:如何构建高效的adapter模块?该模块需要能够实现视觉编码器与语言模型的有效结合。在这一创新框架下引入了两个核心组件:第一部分是Perceiver Resampling模块,在保证任意数量输入的同时实现对统一视图特征的学习;第二部分则是Gated XATTN-DENSE模块,在完成Perceiver Resampling后通过跨注意力机制将获取到的信息自然地融入LM生成环节中去

Flamingo 概览图采用了模块化设计

在这里插入图片描述

Perceiver Resampler

请参考下图所示的 Perceiver Resampler 模块详细架构及伪代码描述。该模块能够处理任意数量的视频帧序列(其中单帧视频可视为特例),其通过内置视觉编码器(此处指NFNet架构)提取空间特征,并经由时间嵌入层进行增强后展平处理形成XfX_f空间特征序列XfX_f具有可变长度。此外引入了一个固定的长度 latent query序列XX。随后将XfX_f与XX作为输入共同作用于Perceiver Resampler计算交叉注意力机制,在此过程中Q矩阵由XX构成而K和V矩阵则分别由XfX_f与XX拼接而成。经过多层自适应注意力机制和FFW变换后系统输出固定长度64维(如NFNet架构中所示)的空间位置编码项作为最终视觉表征项其中新增的一个特殊位置编码项与ViT中的cls token概念相似并位于数据特征之后作为系统输出

需要注意的是,在这种情况下,位置编码仅用于时间编码。也就是说,在Vision Transformer架构中单独的时间嵌入机制仅负责提取图片的时间顺序信息(即图片来自哪一帧)。这是因为Vision Encoder在处理单张图像时已经完成了对空间位置信息的编码工作。从另一个角度来看,在仅关注单张图像的空间编码问题时(而不是分辨率相关的问题),Perceiver Resampler模块能够通过处理变长序列并将其转换为固定长度序列来实现解码功能,并结合Transformer的位置编码插值机制来提升模型对不同分辨率图像的理解能力。

在这里插入图片描述

Gated xattn dense

Flamingo 方法通过注入固定长度视觉 query 到语言模型中被称为 Gated xattn dense;其详细结构示意图及伪代码可见于下图(此处应有图片);具体而言,在预训练好的语言模型各层之间交替插入一些随机初始化并带有交叉注意力机制的部分;所谓 gated 门控机制,在每一新插入层后残差连接前加入 tanh 类型门控单元;即 tanh(α),其中 α 是一个可学习标量参数;从而确保初始状态下的输出与原始语言模型保持一致

在这里插入图片描述
训练数据

Flamingo 的训练样本分为三类:交叉模态样本集合、图像与文本配对样本集合以及视频与文本配对样本集合。其中交叉模态样本集合构成了 Flamingo 数据的关键部分,在其多模态 in-context learning(尤其是 few-shot learning)能力方面几乎完全依赖于这一类型的数据。研究者开发出一个大型的数据库 M3W,并通过解析 HTML 文本来获取并标注图片在其对应的文本中的位置信息

在训练过程中,在处理图文交错的数据方面存在一个关键点。
具体来说,在图像序列中使用 Vision Encoder 和 Resampler 对每张图像进行特征提取,并生成固定长度的序列数据。
通过 标签来明确标识每一张出现的图像位置信息。
值得注意的是,在文本序列中的每一个位置仅关注前一个连续出现的图像信息,
而无需考虑之前的所有图像,
这样能够有效避免干扰,
从而确保模型能够专注于当前相关的信息

在这里插入图片描述

实验

Flamingo 在模型架构与训练数据方面的创新较为丰富,在此着重考察消融实验以评估各设计的有效性。下表呈现了基于 few-shot 学习的消融实验结果:第一行为 Flamingo 的原始模型架构;其余各行则为移除某一特定设计后的性能表现;特别指出,在每张表中需要将各行为此类比

数据方面:M3W 这种图文交错的数据其重要性在消融实验中尤为突出,在所有消融实验中表现同样显著,在缺失的情况下会导致性能下降约20个百分点;相比之下视频文本对数据的影响相对较小;值得注意的是这项研究关注的是 few-shot 的场景,在这种情况下图文交错的数据确实起到了关键作用;从多模态角度而言这可能与 few-shot 和 in-context learning 的特性密切相关

在模型设计中,在缺少gating模块或resampler机制的情况下(cross attention layer)均会对模型性能产生一定影响;然而这些缺陷在图文交错数据的影响方面则相对较小

在这里插入图片描述

总结

Flamingo具备显著的技术创新亮点。该模型通过图文结合的数据训练方式,并融合了multimodal few-shot/in-context学习方法、Perceiver Resampling模块以及gated xattn dense架构等技术特点。其中特别值得一提的是图文结合的数据训练实现了多模态的 few-shot/in-context学习能力。这项研究工作在LLM时代具有重要的参考价值,在现有研究中已有许多多模态大模型采用了类似的Resampling模块结构设计作为技术基础

全部评论 (0)

还没有任何评论哟~