论文链接:https://arxiv.org/abs/2302.09419
该综述系统性的回顾了预训练基础模型(PFMs)在文本、图像、图和其他数据模态领域的近期前沿研究,以及当前、未来所面临的挑战与机遇。具体来说,作者首先回顾了自然语言处理、计算机视觉和图学习的基本组成部分和现有的预训练方案。然后,讨论了为其他数据模态设计的先进PFMs,并介绍了考虑数据质量和数量的统一PFMs。此外,作者还讨论了PFM基本原理的相关研究,包括模型的效率和压缩、安全性和隐私性。最后,列出了关键结论,未来的研究方向,挑战和开放的问题。
写在前面的话
笔者主要从事NLP相关方向,因此在阅读该综述时,重点归纳整理了NLP部分的内容,对于CV和GL的PFMs应用仅以了解为主,如有需要再查漏补缺。
目录
1 Introduction
PFMs是通过大量的数据训练出一个通用模型,在使用时仅需微调就能应用于不同的下游任务。下图是PFMs的发展历程:
2 Basic Component
PFMs模型的一般架构如下图:
PFMs的具体设计根据不同领域的数据形态和任务要求而有所不同。Transformer是PFMs在NLP和CV等许多领域的主流模型架构设计。训练大型模型需要有各种数据集进行模型预训练。在训练PFMs之后,需要对模型进行微调,以满足如效率和隐私等下游需求。
2.1 Transformer for PFMs
Transformer模型的原理大家应该都比较熟悉了。Transformer因能捕获输入序列数据中的长期依赖,且可扩展性强,能实现高度并行化而被广泛应用于PFMs。如NLP中的GPT-3、CV中的ViT和GL(图学习)中的GTN模型。
2.2 Learning Mechanisms for PFMs
- 有监督学习
用带标签的数据训练 - 半监督学习
数据集中既有带标签的样本,又有无标签的样本。需要根据有标签的样本设计辅助任务(如无监督和自监督),以生成无标签数据的伪标签。 - 弱监督学习
比如不完全监督、不确切监督和不精确监督。 - 自监督学习
比如对比学习,其主要思想是借助数据增强等各种方法来学习数据本身的先验知识分布。 - 强化学习
2.3 Pretraining Tasks for PFMs
在预训练和微调的方案中,模型的参数是在预先设定的任务上训练的,以捕捉特定的属性、结构等信息。 预训练的特征可以帮助下游任务,提供足够的信息,并加速模型的收敛。
Pretraining Tasks for NLP
- Mask Language Modeling (MLM)
在输入序列中随机抹去一些词,然后在预训练中预测这些被抹去的词。在预训练中预测这些被删除的词。如BERT和SpanBERT。 - Denoising AutoEncoder (DAE)
向原始语料库添加噪声,并使用含有噪声的语料库重建原始输入。如BART - Replaced Token Detection (RTD)
一项判别任务,确定LM是否已经替换了当前token。如ELECTRA - Next Sentence Prediction (NSP)
该任务是为了使模型理解两个句子之间的相关性并捕捉句子层面的表征。从一个文档里面选取连续的两个句子作为正样本,从不同的文档选择两个句子作为负样本,判断两个句子是否连续。如BERT - Sentence Order Prediction (SOP)
NSP任务的改进版,判断输入的两个句子是否调换了顺序,让模型更好的学习句子之间的关联性。如ALBERT
Pretraining Tasks for CV
- Specific Pretext Task 特定的代理任务
设计对目标任务有帮助的辅助任务,通常是自监督的。 - Frame Order Learning Task
视频帧序列验证,用于获得视觉的时间表征。 - Data Generation Task
利用生成对抗网络学习特征,如BiGANs - Data Reconstruction Task
将image分割成多个patch,mask某些patch让模型预测。(CV这块没有具体了解过,可能就像MAE那样?)
Pretraining Tasks for GL
- Graph Information Completion
和MLM任务思想差不多,都是先mask再预测mask的部分 - Graph Property Prediction
挖掘输入图的潜在属性,以提供自监督信号。比如考虑节点属性、局部子结构和连通性信息,进行预测回归任务;或者通过聚类、结构密度、属性相似度等信息为节点分配伪标签,进行分类任务。 - Graph Consistency Analysis
其目标是最大化语义信息相似的样本在图嵌入中的一致性,最小化语义信息不相关的样本之间的一致性。
3 PFMs for Natural Language Processing
近年用于文本领域的PFMs汇总:
3.1 Word Representations Methods
- Autoregressive Language Model 自回归语言模型
自回归LM根据前面的词预测下一个可能的词。在特征提取时,仅基于前面的单词得到文本表征。该类模型在文本生成任务中表现较好。
代表自回归LM模型如GPT家族。 - Contextual Language Model 上下文语言模型(也叫自编码语言模型)
上下文LM是基于上下文词汇的,能真正利用到双向的语义信息,比如以transformer encoder为框架的BERT还有Roberta
- Permuted Language Model 排列语言模型
自编码LM的明显缺陷是预训练阶段和微调阶段的不一致,导致在NLG任务上的表现不佳。LM旨在结合自回归LM和自编码器LM的优点,该模型在很大程度上改善了两种模型的缺陷,可作为未来预训练目标任务构建的基本思路。
这里,Z_N表示输入序列T的所有可能排列, zT =t and zT <t 分别表示第t个元素和从[1, 2, . . . ,t − 1]的元素的某一个排列 z ∈ ZN。
排序语言模型的代表有XLNET、MPNet。
3.2 Model Architecture Designing Methods
ELMO:主体采用双向的LSTM,相比于词向量方法,ELMO引入了上下文信息,改善了一词多义问题,但ELMO提取语言特征的整体能力较弱。
BERT:基于fine-tuning的PFMs典型代表。BERT使用Transformer的双向encoder来预测哪些token被mask,并确定两个句子是否上下文相关。然而,对文档进行双向编码和独立预测缺失token,降低了模型的生成能力
GPT:基于zero/few-shot prompts的PFMs的典型代表。GPT使用自回归解码器作为特征提取器,根据前几个单词预测下一个单词,并使用微调解决下游任务,因此它更适合文本生成任务。然而,GPT仅利用前一个词进行预测,无法学习双向交互信息。
BART:使用encoder-decoder结构构成的降噪自编码器,预训练主要包括使用噪声破坏文本和使用seq2seq模型重建原始文本。具体见我的blog
3.3 Masking Designing Methods
SpanBERT:基于RoBERTA提出的预训练模型,采用动态mask和single segment pretraining。其结构如图4所示,SpanBERT提出了Span mask和Span Boundary Objective(SBO)策略去mask一定长度的单词。SBO的目标是通过mask的span的两端来重构被mask的span;训练阶段使用RoBERTa提出的动态掩码策略,而不是在数据预处理的时候进行掩码。与BERT不同的是,SpanBERT随机地掩盖了连续文本并添加了SBO训练目标。它使用最接近span边界的tokens来预测跨度,并取消了NSP预训练任务。
MASS:对句子随机屏蔽一个长度为k的连续片段,然后通过编码器-注意力-解码器模型预测生成该片段。
UniLM:输入两句。第一句采用BiLM的编码方式,第二句采用单向LM的方式。同时训练encoder(BiLM)decoder(Uni-LM)。处理输入时同样也是随机mask掉一些token。
3.4 Boosting Methods
- Boosting on Model Performance
大多数预训练模型都需要大量的预训练数据,这对硬件提出了巨大的要求,使得重新训练具有挑战性,只能对模型进行微调。因此需要对模型进行压缩,如ERNIE Tiny、ALBERT - Boosting for Multi-task Learning
ERNIE:使用transformer encoder为骨架,提出了Knowledge Intergration策略,将mask分为Basic-level Masking、Entity-level Masking、Phrase-Level Masking三个部分,并增加了对话数据任务(DLM)来增强模型的语义表达能力。
ERNIE2.0:引入多任务学习让模型有更好的词法、语法、语义的表征能力。ERNIE 2.0使用7个不同的预训练任务,涵盖单词级别、句子级别和语义级别三个方面。设计了连续多任务学习(Sequential Multi-task Learning)策略,利用持续学习,使前一次训练任务中的知识得以保留,使模型获得长距离记忆。它使用Transformer编码器并引入任务嵌入,使模型能够在持续学习过程中区分不同的任务。
UniLM:上文说过了,此处略。 - Boosting for Different Downstream Tasks
比如Bert-WWM啥的 - Boosting Examples: ChatGPT and Bard
ChatGPT是基于GPT-3.5微调得到的新版本模型,能够借助人类反馈的强化学习(RLHF)技术来指导模型训练。与InstructGPT相比,ChatGPT使用了不同的数据收集设置。首先,收集一个包含prompt和所需输出行为的大型数据集。该数据集用于监督学习对GPT-3.5进行微调。其次,给定微调后的模型和prompt,模型将生成一批候选文本,labeler根据生成数据的质量对这些生成内容进行排序,以组成用于训练奖励模型的数据集。最后,使用近端策略优化(PPO)RL算法对ChatGPT进行奖励模型优化。
3.5 Instruction-Aligning Methods
指示对齐方法的目的是让LM遵循人类的意图并产生有意义的输出。大致思路就是以有监督的方式得到高质量语料,去微调预训练LM。如:Supervised Fine-Tuning (SFT) 、Reinforcement Learning from Feedback、Chain-of-Thoughts (CoT)
4 PFMs for Computer Vision
在CV领域基本采用自监督学习(SSL)的方式来训练,如上图所示。CV中的预训练任务被称为代理任务(pretext task),代理任务的数据标签是根据数据的特定属性自动生成的,例如来自同一来源的图像块被标记为“正”,来自不同来源的图像块被标记为“负”。然后,通过监督学习方法训练编码器网络以解决代理任务;由于浅层提取边缘、角度和纹理等细粒度细节,而较深的层捕获与任务相关的高层特征,如语义信息或图像内容,在代理任务中学习到的编码器可以迁移到下游的监督任务。在此阶段,骨干网络的参数是固定的,只需要学习一个简单的分类器,如两层多层感知器(MLP)。下游任务的训练过程通常被称为微调。总之,在SSL预训练阶段学习到的表示可以在其他下游任务上重用,并取得不错结果。
近年用于CV领域的PFMs汇总
4.1 Learning by Specific Pretext Task
五花八门的pretext task设计,综述里写的比较琐碎,因此找了一些参考资料了解。
4.2 Learning by Frame Order
序列数据(如视频)的学习总是涉及到时间步的帧处理,因此可以设置能够学习视觉时间表示的代理任务。如Contrastive Predictive Coding (CPC)模型。
CPC模型的原理介绍
4.3 Learning by Generation
为GAN添加feature encoder以提升生成图像的质量。如BigBiGAN
4.4 Learning by Reconstruction
如ViT(视觉的Transformer)、BEiT(视觉的Bert)、MAE等等
4.5 Learning by Memory Bank
- Memory Bank
顾名思义,在开始训练之前,先将所有图片的表示计算好储存起来,叫做memory bank。Bank中的表示将作为负例的表示参与构建对比损失,每次迭代更新参数后,当前batch中样例对应的memory bank中的表示将会用更新后的参数更新,以这样的方式慢慢更新memory bank中的样例表示。这种方式就不需要对大量负样例做前馈和反向传播运算,大大降低了运算量。
- Non-Parametric Instance Discrimination (NPID)
如上图,使用骨干 CNN 将每个图像编码为 128 维空间并进行 L2 归一化的特征向量。通过实例级判别器学习最佳特征嵌入,该判别器尝试将训练样本的特征最大程度地散布在 128 维的单位球上。 - Pretext Invariant Representation Learning (PIRL),是一种不根据不同pretext task 中的图像变换而改变的语义表征自监督学习方法,该方法学到的图像表征具有invariance 特性,且语义质量更高。
4.6 Learning by Sharing
SSL倾向于使用两个编码器网络来进行不同的数据增强,然后通过最大化负对之间的距离或最小化正对之间的距离来预训练参数。从编码器共享参数的角度,可将SSL分为软共享和硬共享两类。
Soft Sharing. 软共享的两个编码器共享相似但不相同的参数,即fθ != f’ξ 。
如MoCo、BYOL、PCL
Hard Sharing. 硬共享的两个编码器具有相同的结构和参数,即fθ = f’ξ
如SimCLR、SwAV、SEER等
4.7 Learning by Clustering
将表征聚类到不同的簇中,并将这些簇标记为监督信号(伪标签),以预训练骨干网络的参数。如DeepCluster、SwAV、PCL
读后感
CV方向的PFMs之前都没太了解过,读完这个部分后,感觉几个核心关键词就是自监督学习、对比学习、正负样本对的构造这样的,其他的就是一些细节和针对特定下游任务的改进,很多模型的思想与NLP中的PFMs相似,如ViT、SimCLR等等。以后如果工作中碰到相关问题再去调研和学习一番吧。
5 PFMs for Graph Learning
近年来的研究开始关注图自身属性、拓扑结构、社区等内在信息,以增强节点自身所承载特征的有效性。
近期用于图学习的PFMs如下表所示:
5.1 Learning by Graph Information Completion
基于图信息补全的预训练(GIC)的本质动机是对输入图数据的部分信息进行掩码,并基于未掩码的图数据恢复掩码信息,从而对图嵌入进行预训练。
如GraphCompetion, AttributeMask,EdgeMask, PFM都用的SSL训练。
5.2 Learning by Graph Consistency Analysis
图的一致性分析(GCA)主要探索图中两个元素分布的一致性。具体来说,两个语义相似的元素的一致性应该显著强于两个语义不相关的元素,该特性可以用于图模型的预训练。对于一致性评估可分为以下三个方面:
- Context Consistency
基于早期的同质性假设,大量图模型倾向于将上下文中的节点映射到语义空间的相似位置。这种上下文在图中的一致性也被应用到预训练图模型中,它试图通过捕捉上下文中节点的分布特征来调整节点表示,如下图所示。
随机游走是获取图中节点的局部上下文信息的典型方法,通过设计多种游走策略,能捕捉上下文中不同方面的分布特征。因此也被应用于DeepWalk和node2vec中。
近期的方法如LINE直接考虑节点的k阶邻居分布(正例)和非相邻节点(负例)之间的关系,并以此来训练图模型;VGAE将输入图的邻接矩阵和节点的特征矩阵喂入编码器(图卷积网络)学习节点低维向量表示的均值和方差,然后用解码器(链路预测)生成图。
- Self Consistency
基于对原始图数据和增广图数据的互信息估计来维护数据本身的一致性,将来自同一原始样本的两个增广样本视为正样本对,来自不同原始样本的两个增广样本视为负样本对。比如针对节点级别任务的GCC和GCA,针对图级别任务的GraphCL。 - Cross Scale Consistency
不同尺度图数据中的对比元素也可以用于训练图模型,如节点-子图。大多数这类方法是基于最大化互信息的思想。具体而言,通常用readout函数获取图/子图的摘要,并使用Jensen-Shannon MI estimator 来估算互信息。如DGI,CMVRL和SUBG-CON。
5.3 Learning by Graph Property Prediction
将图的属性和结构信息作为信息补全的目标,学习图数据中的辅助属性来生成自监督信号,并将图属性预测任务作为图模型的预训练任务。根据代理任务的不同设置,可以大致分为属性回归和属性分类两类。
- Property Regression (PR)
属性回归主要是挖掘图中更广泛的数值结构与属性之间的关系。该方法在图数据中提取了更丰富的自监督信号,用于预训练图模型。如NodeProperty,其预训练任务是预测图中每个节点的辅助属性,如度、局部节点重要性、局部聚类系数等。 - Property Classification (PC)
属性分类任务通常会根据图数据中的某种分布(如结构密度、节点属性相似性、局部和全局分布差异等)生成伪标签,是一种典型的自监督方法。如M3S
5.4 Learning by Masked Autoencoder
如MAGE, GMAE, MaskGAE, HGMAE等等。
6 PFMs for Other Data Modality
这块就简单过一下了…
6.1 PFMs for Speech
Wav2vec, vq-wav2vec, SpeechBERT, SPLAT
6.2 PFMs for Video
O3N, IIC, TCP, SeCO
6.3 PFMs for Multimodal
文本和图像之间的多模态PFM可以分为单流模型和跨流模型两类。单流模型是指在模型一开始就整合文本信息和视觉信息;跨流模型是指分别由两个独立的编码模块编码的文本信息和视觉信息,然后利用互注意力机制融合不同模态信息。
- Single-Stream Model
VisualBERT:在结构上采用了堆叠的 Transformer,在一开始就将文字和图片信息通过 Transformer 的自注意力机制进行对齐融合。文字部分的输入为原始的 BERT文字输入(词向量+位置编码+片段编码)加上 Token/Image 编码来表示其是图片或文字,而图片部分的输入则是采用通过 Faster-RCNN 提取的图片区域特征加上相应的位置编码,片段编码和 Token/Image 编码。
类似的还有Unicoder-VL,VL-BERT - Cross-Stream Model
ViLBERT:在一开始并未直接对语言信息和图片信息进行融合,而是先各自经过 Transformer 的编码器进行编码。分流设计是基于这样一个假设,语言的理解本身比图像复杂,而且图像的输入本身就是经过 Faster-RCNN 提取的较高层次的特征,因此两者所需要的编码深度应该是不一样的。
当两种模态各自进行编码后,其输出会经过一个共注意力机制模块。该模块也是基于 Transformer 的结构,只是在自注意力机制中每个模块都用自己的 Query 去和另一模块的 Value 和 Key 计算注意力,由此来融合不同模块间的信息。
其他的跨流模型如DALL-E和DALL-E 2
6.4 SOTA Unified PFMs
多模态任务下的预训练模型。
- Single transformer model
如UNITER、Uni-Perceiver、Gato、OFA、UNIFIED-IO、BEiT-3 - Multi-transformer Model
FLAVA - Comb-transformer Model
UNIMO
7 Other Advanced Topics on PFMs
从模型效率(model efficiency)和模型压缩(model compression)两方面,去化简模型参数和结构,在不影响任务完成度的情况下,降低预训练模型对内存和计算资源的消耗,提高计算效率。
7.1 Model Efficiency
比如ELECTRA,设置了Replaced Token Detection(RTD)任务让判别器预哪个token被替换过。这样ELECTRA就能训练到全部输入的token。
7.2 Model Compression
- Parameter Compression
包括参数剪枝、参数量化(如Q8BERT)、低秩分解、参数共享(如ALBERT) - Structure Compression
包括网络压缩和知识蒸馏(如DistilBERT)
7.3 Security and Privacy
略
8 Future Research Challenges and Open Problems
略