SimVLM(Simple Visual Language Model)即简单视觉语言模型,是由CMU和Google提出的弱监督极简VLP模型。以下是关于它的详细介绍:
模型架构
-
编码器:对于视觉模态,输入原始图像,参考ViT和CoAtNet思路,经过ResNet块提取Patch Embedding,形成一维序列的Patch表示。对于文本模态,将文本转换为嵌入表示,并加入位置编码,然后送入Transformer编码器,将这些输入转换为一个统一的上下文表示,捕捉图像和文本的关联信息。
-
解码器:第一个输入是来自编码器的包含图像和文本融合信息的上下文表示,为解码提供多模态语境。第二个输入是当前生成的文本,用于自回归生成下一个词或符号,使解码器能逐步生成与图像相关的、语法和语义一致的文本内容。
预训练目标
- Prefix Language Modeling(PrefixLM):与采用MLM预训练的现有VLP方法不同,SimVLM使用PrefixLM作为训练目标。它允许模型在编码器的前缀序列上进行双向关注,能更好地理解上下文。训练时,图像特征被视为文本描述的前缀,从输入序列中随机选择长度为tp的前缀序列,添加到文本序列前,模型在文本数据上计算LM损失。这样既保留了MLM中的双向上下文表示,又能执行类似LM的文本生成。
数据利用
SimVLM利用弱标记的图像-文本对进行预训练,同VILT一样,减少了对目标检测的依赖,可以更有效地利用大规模未标记的数据集。
特点
-
简化的预训练方案:不需要复杂的预训练步骤,如目标检测预训练或辅助损失,降低了模型的复杂性。
-
强大的生成能力:通过PrefixLM的设计,能够自然地执行文本生成任务,展示出良好的零样本泛化能力。
-
一致的多模态表示:学习统一的多模态表示,支持跨模态的知识传递。
实验结果
在多个视觉语言基准测试中,SimVLM显著优于以前的预训练方法,在VQA、NLVR2、SNLI-VE、图像字幕等任务上取得了新的SOTA结果,如VQA任务中提升了3.74%的vqa-score,图像字幕任务中CIDEr指标提升了10.1%。