文章链接:https://arxiv.org/pdf/2301.12597
机构:Salesforce Research
发布时间:2023.01
Copyright (c) Wang-Luning. All Rights Reserved.
提供了一种VLM架构以及一套训练框架,分为两阶段训练,先学表征再学生成,避免了端到端训练的巨大代价。
先训vision encoder(frozen) + Q-Former,再训vision encoder(frozen) + Q-Former + text encoder(frozen)。前者主要为了提升Q-Former提取对于text最重要的
模态对齐:Q-Former(Query-Transformer)
是一个可训练模块,用于作为冻结的image encoder和冻结的LLM之间的桥梁。其可以从image encoder提取固定数量的visual features,从而适配不同大小的image。
其主要包括两个transformer子模块:
image transformer:与冻结的image encoder进行交互,来提取visual feature
text transformer:可以作为text encoder和text decoder
另外,设置固定数量的可学习queries,作为image transformer的输入,其相互之间可以通过self-attention层进行交互,还可以在cross-attention层和frozen image features进行交互,还可以在self-attention层和text交互。根据不同的训练任务设计,采用不同的mask来控制query-text interaction。
采用BERT-base的权重来初始化Q-Former,同时cross-attention层是随机初始化的。总共含有188M参数。
文中设置queries的数量为32,维数为768,输出的query representation为
训练阶段1:Vision and language representation learning
该阶段涉及到image encoder与Q-Former,目的是让queries更好地学习提取对于text信息量最大的visual representation的能力。在训练中在同一个Q-Former上实施3个目标函数,其输入是相同的,每个目标函数采用了不同的attention mask来控制交互。
Image-Text Contrastive Learning(ITC):
学习如何align图像表征和文本表征,以使得它们的互信息最大化。其通过最大化positive image-text pairs 相对于negative pairs的similarity来做到这一点。具体而言,将Image transformer输出的[CLS] token的输出表征)进行对齐。由于
为了防止信息泄露,采用uni-modal self-attention mask,也即queries和text是互相不可见的,image transformer和text transformer之间没有交互。
Image-grounded Text Generation(ITG)
训练Q-Former在给定图像作为条件下生成文本(也即)的能力。采用multi-modal causal self-attention mask,每个query可以互相关注到,但无法看到text tokens,而text tokens可以关注到所有的query以及其之前的text tokens。这样可以迫使queries提取与text有关的所有visual features。以及,将首token由[CLS] 换成[DEC]来作为生成任务的信号。
Image-Text Matching(ITM)
在更细粒度上来align图像和文本的表征。使用bi-directional self-attention mask来使得queries和text都可以关注到对方。其是一个二分类任务,模型被要求判断一个image-text pair是否是positive(也即match)的。具体而言,将
训练阶段2:Vision to language generative learning
在这个阶段将frozen image encoder + Q-Former和frozen LLM链接,来获取LLM的文本生成能力。
使用一个线性全连接层来将output query embeddings
训练时,对于decoder-only的LLMs,直接使用language modeling loss(也即输入soft visual prompts然后生成caption data);对于encoder-decoder模型则将text分成两部分,其中prefix text和visual prompt连接作为LLM encoder的输入,而suffix text则作为生成目标。