目录
摘要:
一、介绍
二、Related Work
三、The Frozen Method
3.1、Architecture
Pre-trained Auto-regressive Language Models
Vision Encoder
Visual Prefix
3.2、Training
3.3、Interface at Inference Time
3.4、Few-Shot Learning Definitions
四、Experiments: A Multi-Modal Few-Shot Learner
4.1、Rapid Task Adaptation
Improving performance with few-shot learning
4.2 Encyclopedic Knowledge
4.3 Fast Concept Binding
Open-Ended miniImageNet and Real-Name miniImageNet
Fast-VQA and Real-Fast-VQA
五、Discussion
5.1、Limitations
5.2 Conclusion
Appendix
自回归语言模型在大规模数据训练后,表现出在仅用几个示例作为prompt后学习新语言任务的显著能力。在这里,我们提出了一种简单而有效的方法,将这种few-shot learning的能力迁移到多模态环境(视觉和语言)。使用对齐的image-caption数据训练一个视觉编码器,将每个图像表示为一系列连续的embeddings,这样一个预训练过的、冻结的语言模型在prefix的prompt下就会生成适当的caption,称之为multi-modal few-shot learner,当以示例为条件时,它具有学习各种新任务的惊人能力,表现为多个交错图像和文本嵌入序列。我们证明,通过在各种已建立和新的基准上测试单模型,它可以快速学习新对象和新视觉类别的单词,仅使用少数样本进行视觉问答,并充分利用外部知识。
除了标准的文本生成功能外,Large-scale language transformers还可以是few-shot learners,可以从少量样本中学习执行新任务,而无需进一步的梯度更新。这些模型被证明能够通过prompting(例如从正式语言转换为非正式语言)快速适应新的任务和生成方式[4],在熟悉相关语境(例如回答“法国大革命是什么时候开始的?”[33,1,27]等问题)时,快速检索相关百科全书或一般知识,并在被告知这些单词的含义后立即以适当的方式使用这些新单词(有时称为“fast binding”)[12,4]。
尽管有这些能力,但如此大规模的语言模型对文本以外的模态是“视而不见”的,阻止我们向它们传达视觉任务、问题或概念。在这里,我们提出了Frozen,一种让预训练过的语言模型能够融合使用视觉信息的方法,可以将其few-shot learning能力扩展到多模态中,而不改变其权重。Frozen由一个经过训练的神经网络组成,该神经网络将图像编码到一个大型预训练语言模型的词嵌入空间中,以便语言模型为图像生成caption。语言模型的权重保持不变,但梯度会通过它反向传播,以从头开始训练图像编码器(图2)。Although Frozen is trained on single image-text pairs, once trained it can respond effectively to ordered sets of multiple images and words. This allows users to e.g. ‘prompt’ it with several examples of new multimodal tasks before evaluating its performance, or to ‘teach’ it the name of a new visual category before immediately asking about that category.(理解:图2顶层是语言模型的注意力层,是冻结的,参数不更新的,文本编码器也是冻结的,通过visual encoder将图片嵌入到和文本嵌入一样的张量维度,就可以和文本嵌入一起送入冻结的注意力层,就如论文所说将图像编码到一个大型预训练语言模型的词嵌入空间中,以便语言模型为图像生成caption,反向传播时,只更新visual encoder即可)
通过利用预训练好的语言模型,Frozen在未经训练的多模态任务(如视觉问答(VQA))上表现出强大的zero-shot性能。并且在miniImageNet等fast category learning 测试中也表现得更好[41]。在每种情况下,与‘blind’基线的比较表明,该模型不仅适应这些新任务的语言分布,而且适应语言和图像之间的关系。因此,Frozen是一个multimodal few-shot learner,可以将上述仅语言的快速任务适应能力、百科全书式知识和快速概念绑定能力带到多模态环境中。
我们开发Frozen的目标不是在任何特定任务上实现性能最大化,而且在许多情况下,它远远不是最先进的。尽管如此,它在广泛的任务中的表现远远超过了基线,而且从未见过这些基线提供的多个训练样本。此外,如图1所示,Frozed是一个对图像进行真正开放且不受限制的语言解释的模型,通常会产生令人信服的输出。
我们的贡献如下:
1:我们提出了一种模块化、可扩展和高效的方法,用于训练大型语言模型的vision front-ends。由此产生的组合模型保留了大型语言模型的所有功能,但也可以处理任意顺序的文本和图像输入。
2:我们证明了这样的模型将其快速任务适应、百科全书式知识和快速概念绑定的能力从一种语言转移到了一种多模态环境中,并验证了用视觉和语言信息对其进行prompting比仅用语言信息更为有效。
3.我们根据一系列现有和新的基准对这些能力进行量化,为未来分析这些能力铺平道路。
[25]表明,transformer语言模型中编码的知识对于涉及离散序列中的推理和记忆的任务,甚至对以空间区域序列形式呈现的图像进行分类任务,都是有价值的先验知识。在这种方法中,预训练的语言模型权重的一小部分会根据各种最终应用任务进行微调。而将Frozen应用于不同的任务并不涉及transformer的任何权重更新;当训练模型时,模型会适应并改进多模态任务。因此,这两项研究揭示了从文本中获得的知识转移到非语言环境的不同方式。
Prefix tuning[22]或prompt tuning[19]的有效性是Frozen的另一个重要动机。Prefix tuning是一种使用梯度下降学习特定任务的偏差项,以提示语言模型生成特定风格的输出的方法,其功能类似于连续嵌入文本提示。使用prefix tuning,语言模型可以适应不同的自然语言生成任务,如摘要生成。Frozen也可以被视为一种image conditional prefix tuning(如图2所示,visual encoder就可以看成是prefix,对其进行微调就是image conditional prefix tuning)。
大量工作已经将多模态表征学习方法(如BERT[8])应用于视觉问答。在这些方法中,模型首先使用与任务无关的跨模态目标相关的对齐数据进行预训练,然后根据特定任务进行微调。这种方法可以在一系列分类任务上产生最先进的性能,但产生的模型高度专用于一项任务,无法在few-shots中学习新概念或适应新任务。
相比之下,[7]提出将文本生成作为任务通用多模态模型的一个目标,生成一个像Frozen一样产生无约束语言输出的模型。与Frozen不同,他们不使用只在文本上训练的预训练模型,也不考虑zero/few-shot learning,而是使用他们考虑的每个任务的训练数据更新系统的所有权重—因此,也是将模型一次专门化为一个任务。类似地,[44]和[6]表明,当训练数据有限时,作为解码器的大型预训练语言模型可以提高captioning性能。与Frozen不同,它们使用预训练的冻结的视觉编码器或对象提取器,并在captioning数据的文本解码器中微调预训练的权重,他们不考虑在不同的多模态任务中进行zero/few-shot适应。最近,多模态预训练已被证明能够在使用大规模对比学习的情况下中实现强大的zero-shot泛化能力[28,14]。我们的工作能够很好地推广到新的多模态任务,对于zero/few-shot,都具有完全开放的生成性文本输出。
Frozen是一种在不改变权重的情况下建立大型语言模型的方法,与prefix tuning密切相关[22,19]。prefix tuning训练特定于任务的连续偏差项。Frozed通过使prefix动态化扩展了这种方法,因为它不是一个恒定的偏差,而是由神经网络发出的输入条件激活。
我们的方法从预训练的自回归语言模型开始,该模型基于Transformer架构[40,29],它将文本上的概率分布参数化。文本被表示为一系列离散tokens 。我们使用32000大小的词汇表,该语言模型利用嵌入函数将每个token独立地转换为连续嵌入,Transformer 输出词汇表上的分类分布:
我们从预训练模型开始,参数已在文本数据集上进行优化,使用一个在C4[30]数据集上训练的70亿参数的transformer模型。
我们的视觉编码器基于NF-ResNet-50[3]。我们将定义为一个函数,它获取一个原始图像并生成一个连续token序列和文本嵌入一起输入transformer,我们在全局池化层之后使用NF-Resnet的最终输出向量。
一个重要的需求是以transformer已经理解的形式表示图像:一系列连续嵌入,每个嵌入与文本token嵌入具有相同的维度D。因此,我们通过将视觉编码器的输出维度线性映射到D来形成visual prefix D∗ n,然后将结果重塑为n个嵌入序列,每个嵌入序列都具有维度D。我们称该序列为visual prefix。我们使用不同数量的tokens进行了实验,特别是1、2和4,发现2的性能最好,尽管这肯定会对其他架构细节敏感。
在训练期间,我们仅使用image-caption数据集更新视觉编码器的参数[35]。我们的实验表明,微调(就是指语言模型本身的参数)会影响泛化能力,因为可用的成对image-caption数据远少于用于预训练的纯文本数据集。只训练参数使我们的模型可以模块化—即它可以使用现成的语言模型—而且非常简单:我们只训练视觉编码器,并依赖现有语言模型的功能。
我们将captioning视为给定图像的caption文本的条件生成。表示为,训练最大化似然:
当参数被冻结时,visual prefix的每个接收,使用标准反向传播和SGD优化视觉编码器的参数(图2),和上一个公式的区别就是多了个图像。
作为符号提示,我们在训练期间呈现visual prefix,就好像它是一系列嵌入,发生时间早于caption文本嵌入。我们使用相对位置编码[36],这使transformer能够将图像嵌入看成是提示的序列,因为图像嵌入发生在文本嵌入之前。其中图像不总是在第一个绝对位置,也可能存在多个图像。我们把这个简单方案的改进留给未来的工作。
在推理时,普通的语言模型以任意文本提示或‘prefix’ ,自回归的生成文本序列。在Frozen中,通过将图像的嵌入放在文本嵌入子序列的旁边,可以直接在prompt中包含图像。因为transformer是模态不可知的,所以我们可以将文本嵌入的子序列与图像嵌入的子序列以任意顺序交错,图3a和图3c中展示了我们如何进行zero-shot视觉问答,few-shot视觉问答和few-shot图像分类。
为了评估这些任务,模型解码输出序列,并根据[18]中使用的标准化技术,将这些输出与任务的真值答案进行比较。我们不会使用预先准备好的答案的简短列表来对Frozen的开放式能力进行测试,即使在某些任务中这可能会影响其性能。
Frozen的能力取决于一系列交错的图像和文本,这使得它不仅能够执行不同的多模态任务,而且还产生了不同的方式将任务“诱导”到模型中,以提高其性能。我们简要定义了在我们的设置中使用的术语,这些术语在所有不同的任务中都是通用的。有关这些概念的直观说明,请参见附录中的图5。
- Task induction 在图像和文本序列之前的解释性文本,它旨在用自然语言向模型描述任务,例如“请回答问题”。
- Number of shots 在评估样本之前提交给模型的任务的不同完整样本的数量。例如,在视觉问答中,shot是一个图像以及问题和答案(如图3b的1-shot)。
对于快速概念绑定的任务(例如,few-shot图像分类),我们定义了进一步的特定术语。另请参见附录中的图4a和图6。
- Number of ways 任务中对象类的数量(例如dog vs cat)。
- Number of inner-shots 每个类别中呈现给模型的不同样本数量(即不同狗的图像数量)。
- Number of repeats 在呈现给模型的上下文中,每个内部inner-shot重复的次数。我们使用这个设置来探索模型如何整合关于一个类别的视觉信息。
我们的实验旨在量化Multi-Modal Few-Shot Learner应具备的三种能力:快速适应新任务、快速获取一般知识以及快速绑定视觉和语言元素。实验设置见原文。
我们首先研究了从captioning到视觉问答的zero-shot和few-shot泛化能力。这是一种从captioning行为到问答行为的快速适应,既有简单的prompting,也有 few-shot learning,类似于视觉+语言领域中从语言建模到开放领域问答[33]的转换。我们在VQA v2[10]验证集上进行评估。
Captioning训练可以在没有训练或完全没有上下文示例的情况下,适度地迁移为zero-shot的视觉问答。预训练的语言模型的力量是一把双刃剑,它增强了冻结模型的泛化能力,但也使模型在完全不考虑视觉输入的情况下表现得出奇地好。为了防止这种可能性,我们还训练了盲基线,在这种基线中,呈现给视觉编码器的图像被遮住,但权重仍然被训练。这相当于prefix tuning[22]。我们的表现优于盲基线,盲基线也继承了语言模型中的few-shot learning能力。
在这些实验中,我们还包括两个额外的重要基线:,即从预训练权重开始微调语言模型,以及,其整个模型从头到尾进行训练。表1中的结果表明,保持语言模型冻结比微调更能泛化视觉问答,从零开始训练的模型根本无法从captioning迁移到VQA。
这种通过prompting将zero-shot迁移VQA的方式通过在上下文中向模型展示示例而得到改进。重复前面的实验,图3中的推理阶段中,向模型展示四个图像问答三元组示例作为条件信息(即表1的n=4),表1中我们给出了这些few-shot结果。
本节的结果有两个结论。首先,通过预训练和冻结的语言模型训练视觉编码器,可以产生一个具有强大的zero-shot泛化能力的模型。其次,在适当的提示下快速适应新任务的能力是从预训练的语言模型继承下来的,并直接迁移移到多模态任务。
在这里,我们研究了Frozen在多大程度上可以利用语言模型中的百科全书式知识来完成视觉任务。概念性caption数据集是hypernymed的,这意味着,例如,专有名称被替换为一个像person这样的通用词。这使我们能够严格研究事实知识的转移,因为命名实体的所有知识都来自语言模型预训练。
因此,当我们向模型展示飞机的图像并问“这是谁发明的?”(图1),视觉编码器已确定图像包含一架飞机,语言模型已使用它来检索飞机是莱特兄弟发明的事实知识,这一事实在C4培训集中通过(仅文本)关于飞机的文章引用。附录(如图9、图10、图11)中包含了对这种行为的详细分析和更多示例。
我们通过评估OKVQA[26]的性能来定量地支持这一发现,OKVQA[26]是一个可视化问答数据集,旨在要求外部知识才能正确回答。预训练语言模型对事实知识的掌握当然取决于其规模,因此我们研究了使用不同规模的预训练语言模型进行冻结的性能:具有70亿个参数的基础模型,以及在同一数据集上预训练的一个小得多的4亿个参数的语言模型。表2显示了结果:任务性能随模型大小而变化。同样,在泛化性能方面,精细调整的性能比将模型冻结更差。
在多模态设置中,快速绑定指的是模型能够在几张照片中将一个单词与一个视觉类别关联起来,并立即以适当的方式使用该单词。
Frozen在一定程度上达到了必要的能力,但一个关键的限制是,与使用完整训练集完成这些任务的系统相比,它在few-shot中学习到的特定任务上远没有达到最先进的性能。因此,这项工作的主要贡献应该被视为多模态few-shot learning这一令人兴奋的研究领域的起点或基线。
进一步的改进可以使我们观察到的令人印象深刻的zero-shot和few-shot泛化能力更加稳健。最后,还有许多技术问题没有在这项研究中探讨,例如,是否可以通过更复杂的架构来提高性能,以混合视觉和语言。我们将这些可能性的探索留给未来的调查。
我们提出了一种将大型语言模型转换为多模态few-shot learning的方法,将prefix tuning[22]的软提示原理扩展到有序的图像和文本集,同时保留语言模型的文本提示能力。我们的实验9证实,最终的Frozen模型能够对图像进行开放式解读,并真正实现多模态few-shot learning,尽管该模型只接受过caption训练。这些结果的一个推论是,快速组合或关联语言中不同单词所需的知识,也与跨有序输入集快速将语言绑定到视觉元素有关。