作者 | 杨浩 单位 | 阿里达摩院 研究方向 | 自然语言处理
背景
在传统的NLP单模态领域,表示学习的发展已经较为完善,而在多模态领域,由于高质量有标注多模态数据较少,因此人们希望能使用少样本学习甚至零样本学习。最近两年出现了基于Transformer结构的多模态预训练模型,通过海量无标注数据进行预训练,然后使用少量有标注数据进行微调即可。
多模态预训练模型能够通过大规模数据上的预训练学到不同模态之间的语义对应关系。在图像-文本中,我们期望模型能够学会将文本中的“狗”和图片中“狗”的样子联系起来。在视频-文本中,我们期望模型能够将文本中的物体/动作与视频中的物体/动作对应起来。为实现这个目标,需要巧妙地设计预训练模型来让模型挖掘不同模态之间的关联。
论文调研
分为单流和双流模型两大阵营
1.ViLBERT
Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language Tasks
NeurIPS 2019 --开山之作 --双流
motivation
自然语言处理(NLP)领域在2018年提出的BERT模型(双向Transformer结构,利用了self-attention来增加上下文的相关性)逐渐成为了语言任务中首选的预训练模型。但在视觉与语言交叉的领域还没有出现一个通用的预训练模型,提出视觉与语言统一建模。
method
图片和文本分别经过两条不同的stream进入co-attentional transformer层中(普通的Transformer中,query、key、value来自上一层Transformer。而这里提出的全新的co-transformer则同时利用了上一层中视觉和语言的信息,视觉和语言两条stream分别使用了自己的query和来自另一边的key和value向量),图片采用Faster R-CNN模型从图像中提取多个目标区域的特征,由于图片特征不像文字特征一样含有位置信息,因此用5维数据给图片位置编码,它们分别是归一化之后左上角坐标,右下角坐标,以及面积。然后将其投影到匹配视觉特征的维度,并对其求和。
task
- Masked Language Modeling (MLM):15%(80%,10%,10%)
- Masked Object Classifation (MOC):15%(90%,10%)---语言只能表达图片的高阶语义信息
- Visual-linguistic Matching (VLM)
2.VisualBERT
A Simple and Performant Baseline for Vision and Language
2019 --单流
motivation
文字和图片统一进行语义学习,提出单流的方法(更简单)
method
不像vilbert一样图文和文字分别进入transformer进行学习,将文本和图片一起输入transformer。因为单流,需要增加段编码。
task
- 一部分文本被mask掉,根据剩余的文本和图像信息来预测被mask掉的信息。
- 模型来预测提供的文本是否和图片匹配。作者发现这种在图片标注数据上的预训练对于visualBert 学习文本和图像的表征非常重要。
3.Unicoder-VL
A Universal Encoder for Vision and Language by Cross-modal Pre-training
AAAI 2020
motivation
和visualbert一样属于单流模型,增加到三个预训练任务
method & task
- MaskedLanguage Modeling (MLM):将一部分的词语进行mask,任务是根据上下文推断该单词。
- Masked Object Classification(MOC) :对图像的一部分内容进行mask,任务是对图像进行分类,此处的分类使用的依然是目标检测技术,只是单纯的将目标检测中置信度最高的一项作为分类类别。
- Visual-linguistic Matching (VLM):利用[CLS]的最终隐藏状态来预测语言句子是否与视觉内容语义匹配,并增加了一个FC层。
4.LXMERT
Learning Cross-Modality Encoder Representations from Transformers
EMNLP 2019
motivation
和vilbert不同的是cross-attention在cross操作后加入一个全连接层,同时融合了图片和文字的信息。增加了一些预训练任务目标,比如Masked Cross-Modality LM。增加图像问答任务到预训练任务中(引入vqa等数据集的训练集)。
method&task
- 掩蔽文本预测(Masked Cross-Modality LM)该任务的设置与BERT的MLM任务设置一致。作者认为除了从语言模态中的非模态词中预测被掩蔽词外,LXMERT还可利用其跨模态模型架构,从视觉模态中预测被掩蔽词,从而解决歧义问题,所以将任务命名为Masked Cross-Modality LM以强调这种差异。
- 掩蔽图像类别预测(Detected-Label Classification)该任务要求模型根据图像线索以及对应文本线索预测出直接预测被遮蔽ROI的目标类别。
- 掩码图像特征回归(RoI-Feature Regression)不同于类别预测,该任务以L2损失回归预测目标ROI特征向量。
- 图片-文本对齐(Cross-Modality Matching)通过50%的概率替换图片对应的文本描述,使模型判断图片和文本描述是否是一致的。
- 图像问答(Image Question Answering)使用了有关图像问答的任务,训练数据是关于图像的文本问题。当图像和文本问题匹配时,要求模型预测这些图像有关的文本问题的答案。
5.VL-BERT
【ICLR 2020】Pre-training of Generic Visual-Linguistic Representations
motivation
1) 之前论文(例如,ViLBERT(Lu et al.,2019)和LXMERT(Tan&Bansal,2019))所使用的句子-图像关系预测任务对视觉语言表征的预训练毫无帮助。因此,这样的任务不包含在VL-BERT中。
2) 在视觉语言和纯文本数据集上预先训练VL-BERT。发现这种联合预训练提高了对长句子和复杂句子的泛化能力。
3) 改进了视觉表示的调整。在VL-BERT中,快速R-CNN的参数也得到了更新,从而得到了视觉特征。为了避免语言线索掩盖的RoI分类预训练任务中的视觉线索泄漏,对输入的原始像素进行掩蔽操作,而不是对卷积层生成的特征图进行掩蔽操作。
method
Token embedding层:对于文本内容使用原始BERT的设定,但是添加了一个特殊符[IMG]作为图像的token。
Visual feature embedding层:这层是为了嵌入视觉信息新添加的层。该层由视觉外部特征以及视觉几何特征拼接而成,具体而言,对于非视觉部分的输入是整个图像的提取到的特征,对应于视觉部分的输入即为图像经过预训练之后的Faster R-CNN提取到的ROI区域图像的相应视觉特征。
Segment embedding层:模型定义了A、B、C三种类型的标记,为了指示输入来自于不同的来源,A、B指示来自于文本,分别指示输入的第一个句子和第二个句子,更进一步的,可以用于指示QA任务中的问题和答案;C指示来自于图像。
Position embedding层:与BERT类似,对于文本添加一个可学习的序列位置特征来表示输入文本的顺序和相对位置。对于图像,由于图像没有相对的位置概念,所以图像的ROI特征的位置特征都是相同的。
作者在视觉-语言数据集以及纯语言数据集上都进行了大规模的预训练,使用概念标题数据库(Conceptual Captions)数据集作为视觉-语言语料库,该数据集包含了大约330万张带有标题注释的图片,图片来自于互联网。但是这个数据集存在一个问题就是图像对应的标题是简短的句子,这些句子很短并且很简单,为了避免模型只关注于简单子句,还使用了BooksCorpus和英语维基百科数据集进行纯文本的训练。
task
「掩蔽文本预测(Masked Language Model with visual Clues)」 此任务与BERT中使用的Masked Language Modeling(MLM)任务非常相似。关键区别在于,在VL-BERT中包含了视觉线索,以捕获视觉和语言内容之间的依存关系。
「掩蔽图像类别预测(Masked RoI Classification with Linguistic Clues)」 类似于掩蔽文本预测,每个RoI图像以15%的概率被随机掩蔽,训练的任务是根据其他线索预测被掩藏的RoI的类别标签。值得一提的是为了避免由于其他元素的视觉特征的嵌入导致视觉线索的泄漏,在使用Faster R-CNN之前,需要先将被Mask的目标区域的像素置零。
6.UNITER
【ECCV 2020】UNiversal Image-TExt Representation Learning
motivation
- 有文本的预训练任务比没有文本的预训练任务效果更好;
- Vison Language 组合的预训练效果要好于单独的 Vision/Language;
- 最好的预训练组合是:MLM ITM MRC-kl MRFP;
- 将上面提到的四个数据一起训练效果最好,这也证明数据越多效果越好。
- 扩大的数据集
method&task
- MLM(conditioned on image, 遮字模型)
- MRM(Mask Region Model, 预测图像,回归或分类,有三种变体)--MRC(Mask Region Cls),MRFR(Mask Regin Feature Regress),MRC-KL(MRC KL divergency)
- ITM(Image Text Match, 图文是否一致)
- WRA(Word Region Alignment, 字和图像的对齐任务)
7.ImageBERT
Cross-modal Pre-training with Large-scale Weak-supervised Image-Text Data 2020
motivation
主要扩展数据,1千万网上爬取处理好的图文pair数据,之前UNITER 组合了四个数据集(Conceptual Captions,SBU Captions,Visual Genome, MSCOCO),形成了一个960万的训练语料库,并在多个图像-文本跨模态任务上实现了最佳结果。LXMERT将一些VQA训练数据增添到预训练中,并且在VQA任务上也获得了最佳结果。 证明数据越大越好
method&task
在模型预训练过程中,设计了四个任务来对语言信息和视觉内容以及它们之间的交互进行建模。四个任务分别为:掩码语言建模(Masked Language Modeling)、掩码对象分类(Masked Object Classification)、掩码区域特征回归(Masked Region Feature Regression)、图文匹配(Image-Text Matching)。
掩码语言建模简称MLM,在这个任务中的训练过程与BERT类似。并引入了负对数似然率来进行预测,另外预测还基于文本标记和视觉特征之间的交叉注意。
掩码对象分类简称MOC,是掩码语言建模的扩展。与语言模型类似,其对视觉对象标记进行了掩码建模。并以15%的概率对物体对象进行掩码,在标记清零和保留的概率选择上分别为90%和10%。另外,在此任务中,还增加了一个完全的连通层,采用了交叉熵最小化的优化目标,结合语言特征的上下文,引入负对数似然率来进行预测正确的标签。
掩码区域特征回归简称MRFR,与掩码对象分类类似,其也对视觉内容建模,但它在对象特征预测方面做得更精确。顾名思义,该任务目的在于对每个掩码对象的嵌入特征进行回归。在输出特征向量上添加一个完全连通的图层,并将其投影到与汇集的输入RoI对象特征相同的维度,然后应用L2损失函数来进行回归。
值得注意的是,上述三个任务都使用条件掩码,这意味着当输入图像和文本相关时,只计算所有掩码损失。
在图文匹配任务中,其主要目标是学习图文对齐(image-text alignment)。具体而言对于每个训练样本对每个图像随机抽取负句(negative sentences),对每个句子随机抽取负图像(negative images),生成负训练数据。在这个任务中,其用二元分类损失进行优化。
8.Pixel-BERT
Aligning Image Pixels with Text by Deep Multi-Modal Transformers 2020
motivation
多模态任务的一大难点是:不同模态之间存在语义鸿沟(semantic gap),在之前的工作中,例如VQA,Image Captioning中,使用在图片分类任务中预训练的CNN来获取图片特征。后来,随着attention机制的提出,大多数视觉-语言方法使用了利用目标检测模型获取到的region-based视觉特征。
然而,region-based特征抽取器为特定视觉任务设计,这会导致与语言理解的鸿沟。一些重要的视觉信息缺失,例如图中物体的形状,空间关系,以及重合等。此外,这种语义表示能力仅仅被局限在任务所使用的模型包含的语义类别中,对于不在范围内的对象,则不能获取到语义信息。部分视觉信息丢失:物体形状、空间关系(overlap)、情感表征能力被objectlabel的种类限制。
method&task
a)句子编码:采用跟bert一样的编码方式。 b)图片编码:对图片进行卷积,池化,最后得到一个特征矩阵(元素为特征向量),对其进行采样后,每个元素与一个semantic embedding相加,相当于一种偏置。最后展平,得到最终的像素特征编码。 c)多模态编码:将两种表示拼接在一起,过TRM,得到最终的表示。 d)任务:MLM任务和图片-文本匹配任务
9.Oscar
【ECCV 2020】Object-Semantics Aligned Pre-training for Vision-Language Tasks
motivation
提出了一种新的学习方法Oscar,它用图像中检测到的对象标签作为锚点,在一个共享的语义空间中对齐图像和语言模态。在一个有650万个图像-文本对的公共语料库上对Oscar模型进行了预训练,验证了Oscar的有效性。
method&task
将词符、对象标签、区域特征作为输入,增加mask token loss和contrastive loss。
10.InterBERT
【KDD 2020】Vision-and-Language Interaction for Multi-modal Pretraining
motivation
提出跨度更大的mask和高阶交互特征后保持模态独立性方法
method&task:
- masked segment modeling(MSM)
- masked region modeling (MRM)
- Image-Text Matching with Hard Negatives 构建了强负例(根据tf-idf)
11.VILLA
【NeurIPS 2020 】Large-Scale Adversarial Training for Vision-and-Language Representation Learning
motivation
预训练和微调在本质上是紧密联系的。模型的训练需要掌握本质的推理技巧,从而促使模态融合,进行跨模态的联合理解。 通过在 pre-training stage,执行对抗训练, 改善的泛化能力对微调阶段也是有益的; 在微调阶段,任务相关的微调信号变得可用,对抗微调可以用于进一步的改善性能。 由于 pre-training 和 finetuning 共享同一个数学表达式,同样的对抗算法可以在两个阶段都采用。
method&task
freelb(对抗训练) 多模态预训练目标
12.ERNIE-ViL
【AAAI 2021】Knowledge Enhanced Vision-Language Representations Through Scene Graph
motivation
当人们看一张图的时候,首先会关注图中的物体(Objects)以及特点属性(Attributes)和期间的关系(Relationships)。如:“车”、 “人”、“猫”、“房屋” 等物体构成了图片场景中的基本元素;而物体的属性,如:“猫是白的”,“汽车是棕色的” 则对物体做了更精细的刻画;物体间的位置和语义关系,如:“猫在车上”,“车在房屋前” 等,建立了场景中的物体的关联。因此,物体、属性和关系共同构成了描述视觉场景的细粒度语义(Detailed Semantics)。
图片信息代表着视觉上最基础,最直观的信息。而更深层的语义信息,比如图像的内涵,历史背景,人物动作,因果关系推理等。
基于此观察,将包含场景先验知识的场景图(Scene Graph)融入到多模态预训练过程中,建模了视觉-语言模态之间的细粒度语义关联,学习到包含细粒度语义对齐信息的联合表示。
method
提出了三个多模态预训练的场景图预测(Scene Graph Prediction)任务:物体预测(Object Prediction)、属性预测(Attribute Prediction)、关系预测(Relationship Prediction)。
- 物体预测:随机选取图中的一部分物体,如下图中的“house”,对其在句子中对应的词进行掩码,模型根据文本上下文和图片对被掩码的部分进行预测;
- 属性预测:对于场景图中的属性 - 物体对,如下图中的“<dress, blue>”,随机选取一部分词对其中的属性进行掩码,根据物体和上下文和图片对其进行预测;
- 关系预测:随机选取一部分 “物体 - 关系 - 物体” 三元组,如下图的“<cat, on top of, car >”,然后对其中的关系进行掩码,模型根据对应的物体和上下文和图片对其进行预测。
task
除了场景图预测,增加掩码语言模型(Masked Language Modelling)、掩码图像区域预测(Masked Region Prediction)、图文对齐(Image-Text Matching)等任务
12.ViLT
【ICML 2021】Vision-and-Language Transformer Without Convolution or Region Supervision
motivation
基于patch projection的多模态方法,提升了速度,但是整体上性能还是略低于region feature的方法
method
文本特征输入部分,将文本看成一个词序列,通过word embedding matrix转化成word embedding,然后和position embedding进行相加,最后和modal-type embedding进行concate。
图像特征输入部分,将图像切块看成一个图像块序列,通过linear projection转化成visual embedding,然后和postion embedding进行相加,最后和modal-type embedding进行concate。
其中word embedding和visual embedding通过可学习的modal-type embedding标志位来区分,其中0标志位表示word embedding部分,1标志位表示visual embedding部分。
word embedding和visual embedding分别都嵌入了一个额外的可学习[class] embedding,方便和下游任务对接。
task
ViLT预训练的优化目标有两个:一个是image text matching(ITM),另一个是masked language modeling(MLM)。
- ImageText Matching:随机以0.5的概率将文本对应的图片替换成不同的图片,然后对文本标志位对应输出使用一个线性的ITM head将输出feature映射成一个二值logits,用来判断图像文本是否匹配。另外ViLT还设计了一个word patch alignment (WPA)来计算teextual subset和visual subset的对齐分数。
- Masked Language Modeling:MLM的目标是通过文本的上下文信息去预测masked的文本tokens。随机以0.15的概率mask掉tokens,然后文本输出接两层MLP,然后文本输出接两层MLP预测mask掉的tokens。。
- Whole Word Masking:另外ViLT还使用了whole word masking技巧。whole word masking是将连续的子词tokens进行mask的技巧,避免了只通过单词上下文进行预测。比如将“giraffe”词tokenized成3个部分["gi", "##raf", "##fe"],可以mask成["gi", "[MASK]", "##fe"],模型会通过mask的上下文信息[“gi”,“##fe”]来预测mask的“##raf”,就会导致不利用图像信息。
13.
【openai 2021】Learning Transferable Visual Models From Natural Language Supervision
motivation
将分类模型转换成图文匹配任务,用文本来弱监督图片分类。PET在视觉分类上的应用,用「4亿对」来自网络的图文数据集,将文本作为图像标签,进行训练。进行下游任务时,只需要提供和图上的concepts对应的文本描述,就可以进行zero-shot transfer。用linear prob进行评估,在27个数据集的平均分数甩了其他模型好几条街。同时有20个都比ImageNet训练出来的开源SOTA表现好,并且在256个GPU上训练两周就好了。
method&task
- CLIP将一批文本通过Text Encoder编码成一批word embedding,将一批图片(与文本一一对应)通过Image Encoder编码成一批feature embedding,然后将对应的word embedding和feature embedding先归一化然后进行点积得到相似度矩阵,点积数值越大,代表word embedding和feature embedding的向量越相似,这里的监督信号就是矩阵对角线为1,其余位置为0。其中Text Encoder使用的是Transformer,而Image Encoder使用ResNet50和ViT两种架构其中一个,Image Encoder和Text Encoder都是从头训练。
- 然后将预训练好的CLIP迁移到下游任务,先将下游任务的标签构建为一批带标签的文本(例如 A photo of a {plane}),然后经过Text Encoder编码成一批相应的word embedding。
- 最后将没有见过的图片进行zero-shot预测,通过Image Encoder将一张小狗的图片编码成一个feature embedding,然后跟(2)编码的一批word embedding先归一化然后进行点积,最后得到的logits中数值最大的位置对应的标签即为最终预测结果。
从CLIP的流程中可以看出,CLIP和PET的prompt使用方式非常相似,A photo of a就是一个人为设计的prompt。
「后续的CoOp感觉就是对应p-tuning,完成PET->P-tuning的发展」
14.UNIMO
【ACL 2021 】Towards Unified-Modal Understanding and Generation via Cross-Modal Contrastive Learning
motivation
已有的预训练模型主要是单独地针对单模态或者多模态任务,但是无法很好地同时适应两类任务。同时,对于多模态任务,目前的预训练模型只能在非常有限的多模态数据(图像-文本对)上进行训练。本文提出了一个统一模态预训练框架UNIMO,能够有效地同时进行单模态和多模态的内容理解和生成任务。UNIMO的优点在于可以利用大量的开放域文本语料和图片集来提高视觉和文本理解能力,同时采用了跨模态的对比学习(CMCL)在数据增强后的图片-文本对数据集上进行学习获得将更多的文本和视觉信息映射到一个统一的语义空间。得益于使用了丰富的非对齐单模态数据,UNIMO能够学习到更广义的特征表示。
method
论文融入单模的文本、图片和图文pair,采用双流的模型,提出跨模态对比学习。文本侧通过回译、tf-idf检索出正样本,通过场景图解析和改写生成强负例。视觉侧通过目标检测和tf-idf检测出正样本。对于CMCL,每一个图像-文本对正样本会和几个通过句子改写的难分负样本、以及几个通过检索的图片正样本和文本正样本拼接起来;其他图像-文本对的所有样本也会视为负样本。
task
- 视觉学习:和BERT中的masked语言模型类似,也对每一张图片进行图像区域的采样,并将图像区域特征以15%的概率进行掩码处理。被掩盖的图像区域特征采用零值代替。由于一张图片的某个区域可能和其他区域有高度重叠,所以设置了一个重叠度的阈值(本文设置为0.3),高于该阈值的所有区域都会被掩盖,以防止信息泄露。由于视觉特征向量往往是高维且连续的,因此同时采用特征回归和目标类别分类两个指标来更好地学习视觉表征。
- 语言学习: 为了学习到语言理解和生成任务的语言特征,模型采用统一的encoder-decoder结构来预训练两个语言模型任务:双向预测和seq2seq生成
UNIMO 很大的优势是能同时使用单模数据和多模数据进行预训练,从而利用大规模数据学习更强大的统一模态语义表示。为了验证单模数据的有效性,论文还进行了分离实验。实验结果表明,当不使用文本单模数据进行预训练的时候,UNIMO 在多模任务上效果有所下降。而当不使用多模图文对数据和图像数据的时候,UNIMO 在文本理解和生成任务上同样会下降。这充分说明了单模数据在统一模态学习中的有效性,也说明了 UNIMO 模型可以有效利用不同模态数据进行跨模态联合学习。
15.
【openai 2021】Zero-Shot Text-to-Image Generation
motivation
传统的文本到图像生成方法是侧重于找到更好的建模假设,方便在固定数据集上进行训练。但这些假设可能涉及到复杂结构、auxiliary losses(辅助损失)或者在训练过程中提供的目标部分标签或分割掩码等侧面信息。在本文中,作者使用一个简单的方法来处理该任务,该方法基于 transformer,将文本和图像 token autoregressively models(自动回归)建模为单一数据流。在有足够数据和规模的情况下,所提出方法在以零样本评估时,与之前的特定领域模型相比具有竞争力。gpt做图片生成的难点在于,图片patch信息都是连续的,不是很好像nlp一样做成离散的token。DALLE生成的是256×256的图片。具体的做法是把图片分成32×32个patch,每个patch通过discrete VAE映射到8192大小的词表里。从而图片构成了1024个token。和256的句子拼接一下,最后是1280的token序列。这个discrete VAE是参考VQVAE做的,不明觉厉。这种离散的token,可能会演变成visual transformer自监督预训练的通用做法。
method&task:
- 第一个阶段,先训练一个dVAE把每张256x256的RGB图片压缩成32x32的图片token,每个位置有8192种可能的取值(也就是说dVAE的encoder输出是维度为32x32x8192的logits,然后通过logits索引codebook的特征进行组合,codebook的embedding是可学习的)。
- 第二阶段,用BPE Encoder对文本进行编码,得到最多256个文本token,token数不满256的话padding到256,然后将256个文本token与1024个图像token进行拼接,得到长度为1280的数据,最后将拼接的数据输入Transformer中进行自回归训练。
- 推理阶段,给定一张候选图片和一条文本,通过transformer可以得到融合后的token,然后用dVAE的decoder生成图片,最后通过预训练好的CLIP计算出文本和生成图片的匹配分数,采样越多数量的图片,就可以通过CLIP得到不同采样图片的分数排序。
从以上流程可知,dVAE、Transformer和CLIP三个模型都是不同阶段独立训练的。 DALL·E中的Transformer结构由64层attention层组成,每层的注意力头数为62,每个注意力头的维度为64,因此,每个token的向量表示维度为3968。attention层使用了行注意力mask、列注意力mask和卷积注意力mask三种稀疏注意力。文本不满256个token时,使用pad embed填充,文本token需要加上pos embed,图片token需要加上行列的embed,这些embed都是可学习的。
如今,AI在一些细分领域逐渐向人类发起挑战,如围棋(AlphaZero)、蛋白质结构预测(AlphaFold)等等,DALL·E则是对绘画、设计领域向人类发起挑战。
总结与展望
通过对多模态预训练任务的梳理,我们可以发现,现有预训练任务主要有两大类,
- 一类是主要针对单个模态数据设计的,如掩蔽文本预测、掩蔽图像预测。其中掩蔽文本预测仍然沿用BERT的设计,掩蔽图像预测和掩蔽帧预测一般都不会直接预测原始的物体对象/帧图像,而是预测特征。
- 第二类主要是针对多模态数据而设计的。该类任务通过挖掘不同模态数据中的对应关系,设计预训练目标,如图片-文本对齐等。
目前的多模态预训练模型相关工作已经取得了一定的进展,在多个下游任务上有了不俗的表现。未来的工作可能从以下几个方向取得进一步的进展,
- 第一是单模态下游任务上能否取得提升。现在大部分多模态预训练模型都是在多模态的下游任务上进行测试,少有工作在单模态任务如自然语言处理任务与单模态预训练模型如RoBERTa进行全面的比较。如果认为模型在多模态数据上通过预训练能够更加充分的理解语义,那么直觉上看多模态预训练模型与单模态模型在相近的实验设置下(如语料规模相似)应当取得更好的成绩。
- 第二是更精细的挖掘不同模态数据间的相关信息并设计更巧妙的预训练任务。比如挖掘图像-文本之间,名词与物体对象之间的相关性,使得模型建立词语与物体对象之间的相关性。
- 第三是设计更高效的模型架构以及挖掘更大规模的高质量多模态数据。
大模训练方法:
1.MoE:
Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer.
motivation
现在的模型越来越大,训练样本越来越多,每个样本都需要经过模型的全部计算,这就导致了训练成本的平方级增长。为了解决这个问题,即将大模型拆分成多个小模型,对于一个样本来说,无需经过所有的小模型去计算,而只是激活一部分小模型进行计算,这样就节省了计算资源。那么如何决定一个样本去经过哪些小模型呢?这就引入了一个稀疏门机制,即样本输入给这个门,得到要激活的小模型索引,这个门需要确保稀疏性,从而保证计算能力的优化。
method
首先MoE是一个层,而不是一整个模型。其次,正如我们刚才所说,这个模型结构包含一个门网络来决定激活哪个expert,同时包含n个expert网络,这n个expert网络一般是同结构的。
保证稀疏性和均衡性,对这个softmax做了处理,第一个变动就是KeepTopK,这是个离散函数,将top-k之外的值强制设为负无穷大,从而softmax后的值为0。第二个变动是加了noise,这个的目的是为了做均衡,这里引入了一个Wnoise的参数,后面还会在损失函数层面进行改动。
如果不做改进,那么这么多的expert,只有几个expert会被集中使用。为了改进这一问题,采用软性约束方法。我们定义对于一个批次训练样本的专家重要度(the importance of an expert),即该专家在一个批次上的门控输出值的和。并且定义损失项加入到模型的总损失上。该损失项等于所有专家重要度的方差的平方,再加上一个手工调节的比例因子。这个损失项会鼓励所有专家有相同的重要度。
2.Megatron-LM
Training Multi-Billion Parameter Language Models Using Model Parallelism 2019
motivation
利用模型并行方法解决大模型训练的问题,侧重张量Tensor并行提升训练速度。实现了简单而高效的模型并行方法,成功突破了传统单个GPU训练的限制。
method
矩阵分解
3.ZeRO
Memory Optimizations Toward Training Trillion Parameter Models 2019
motivation
解决每个gpu都存整个模型的参数,导致显存超出的问题,减少显存,增加计算开销。当前分布式训练主要的三种并行模式:数据并行、模型并行和流水线并行。在三种并行方式中,数据并行因其易用性,得到了最为广泛的应用。然而,数据并行会产生大量冗余 Model States 的空间占用。
- Optimizer States: Optimizer States 是 Optimizer 在进行梯度更新时所需要用到的数据,例如 SGD 中的Momentum以及使用混合精度训练时的Float32 Master Parameters。
- Gradient:在反向传播后所产生的梯度信息,其决定了参数的更新方向。
- Model Parameter: 模型参数,也就是我们在整个过程中通过数据“学习”的信息。在传统数据并行下,每个进程都使用同样参数来进行训练。每个进程也会持有对Optimizer States等完整拷贝,同样占用了大量显存。ZeRO 则在数据并行的基础上,引入了对冗余Model States的优化。使用 ZeRO 后,各个进程之后只保存完整状态的1/GPUs,互不重叠,不再存在冗余。
method
ZeRO 有三个不同级别,分别对应对 Model States 不同程度的分割 (Paritition):
- ZeRO-1:分割Optimizer States;
- ZeRO-2:分割Optimizer States与Gradients;
- ZeRO-3:分割Optimizer States、Gradients与Parameters
最后我们总结zero优化后的训练步骤流程,我们以Pos g p这个模式为例: 初始状态: 假设有Nd个gpu,则每个gpu(gpu_n)保存总参数的1/Nd;并且保存这些参数对应的梯度、优化器状态(P_n,G_n,O_n);参数可以按层划分;每个gpu_n同时还负责分配到自己身上的数据data_n(数据并行); a.正向计算第一层时,gpu_n将自己负责的参数(P_n)广播给其它所有的gpu;后面的模型层以此类推;最后每个gpu_n获得自己对应数据data_n的loss_n; b.进行反向计算,此时需要gpu_n将自己负责的参数(P_n)广播给其它所有的gpu,最后计算得到对应于数据data_n的梯度; c.将第二步的梯度聚合到对应的gpu_n上,每个gpu负责更新自己的P_n,G_n,O_n; 进行下一次迭代 从这个训练流程,可以看出,传递参数过程中它使用了广播的方式,而梯度聚合过程则使用了类似Allreduce中reduce-scatter的模式,但不再需要进行all-gather,因为每个gpu只需要更新自己负责的部分参数。
4.GShard:
Scaling Giant Models with Conditional Computation and Automatic Sharding ICLR 2021
motivation
第一个把MoE结构引入Transformer结构的工作,GShard将Transformer中的Feedforward Network(FFN)层替换成了MoE层,并且将MoE层和数据并行巧妙地结合起来。在数据并行训练时,模型在训练集群中已经被复制了若干份。GShard通过将每路数据并行的FFN看成MoE中的一个专家来实现MoE层,这样的设计通过在多路数据并行中引入All-to-All通信来实现MoE的功能。
method
其实就是把原来的FFN(两层全连接)替换成了MoE结构
5.Switch Transformers
Scaling to Trillion Parameter Models with Simple and Efficient Sparsity 2021
motivation
将语言模型的参数量扩展至 1.6 万亿,简化了MoE路由算法,只将 token 表征发送给单个专家。研究表明,这种简化策略保持了模型质量,降低了路由计算,并且性能更好。将这种 k=1 的策略称为 Switch 层。如果将太多 token 发送给一个专家(下文称为「丢弃的 token」),则会跳过计算,token 表征通过残差连接直接传递到下层。但增加专家容量也不是没有缺点,数值太高将导致计算和内存浪费,最后应用到t5模型上。
method
- 简化稀疏路由:只将 token 表征发送给单个专家
- 高效稀疏路由:太多 token 发送给一个专家,则会跳过计算,token 表征通过残差连接直接传递到下层
- 提升训练和微调的技巧:正则化大型稀疏模型,对大型稀疏模型使用可选择行精度
- 预训练可扩展性:专家的数量是扩展模型最有效的维度
- 基于步数的可扩展性:在保持每个 token 的 FLOPS 不变时,拥有更多的参数(专家)可以提高训练速度。
- 基于时间的可扩展性:在训练时间和计算成本都固定的情况下,Switch Transformer 的速度优势非常明显。