文章链接:https://arxiv.org/abs/2204.14198
机构:DeepMind
发布时间:2022.04
Copyright (c) Wang-Luning. All Rights Reserved.
Flamingo是一种Vision-Language Model,其可以将任意长度的视觉信息(图像/视频)和语言信息交替输入,且拥有few-shot的能力。其冻结了vision encoder和text encoder。
模型结构:
Vision Encoder:CLIP对比学习预训练的Normalizer-Free ResNet(NFNet-F6),可以编码图像或视频,在训练中冻结。
对于图片而言,最终输出形状为
对于视频而言,以1FPS的频率采样图片,最终输出形状为
Text Encoder:Chinchilla预训练模型,在训练中冻结。
模态对齐:
Perceiver Resampler:是一个小型transformer,接收来自Vision Encoder的空间-时间特征,并输出一个大小固定的visual tokens集合,用于连接vision encoder和text encoder。
输入:
来自Vision Encoder的表征形状为
可学习的time embeddings
固定数量(
在每一层中,首先将
Gated XATTN-DENSE layers:在普通transformer中间隔地插入一些交叉注意力层,其K,V来自visual tokens,Q来自text tokens
XATTN层中cross attention与FFN的输出均受到门控限制:分别用
有关交替的文字/图像输入的处理:
为了让每小段caption文字只关注到其对应的图片,需要使用mask来控制文字对于图片的attention,上图中标黑色的即为不mask的部分。