©PaperWeekly 原创 · 作者 | 王馨月
学校 | 四川大学本科生
研究方向 | 自然语言处理
BERT、GPT 等大规模预训练模型(PTM)最近取得了巨大成功,成为人工智能领域的里程碑。由于复杂的预训练目标和庞大的模型参数,大规模 PTM 可以有效地从大量标记和未标记的数据中捕获知识。通过将知识存储到大量的参数中并对特定任务进行微调,大量参数中隐式编码的丰富知识可以使各种下游任务受益,这已通过实验验证和实证分析得到广泛证明。现在人工智能社区的共识是采用 PTM 作为下游任务的支柱,而不是从头开始学习模型。
在本文中,我们深入研究了预训练的历史,尤其是它与迁移学习和自监督学习的特殊关系,以揭示 PTM 在 AI 开发领域中的关键地位。此外,我们全面回顾了 PTM 的最新突破。这些突破是由计算能力的激增和数据可用性的增加推动的,朝着四个重要方向发展:设计有效的架构、利用丰富的上下文、提高计算效率以及进行解释和理论分析。最后,我们讨论了 PTMs 的一系列开放问题和研究方向,希望我们的观点能够启发和推动 PTMs 的未来研究。
论文标题:
Pre-Trained Models: Past, Present and Future
论文链接:
https://arxiv.org/abs/2106.07139
背景
预训练模型的发展过程与简单分类如下图所示。
1.1 Transformer 和代表性的 PTMs
PTM 成功的关键是自监督学习和 Transformer 的整合。有两个具有里程碑意义的基于 Transformer 的 PTM:GPT 和 BERT,它们分别使用自回归语言建模和自编码语言建模作为预训练目标。所有后续的 PTM 都是这两个模型的变体。
在 GPT 和 BERT 之后,提出了一些改进,例如 RoBERTa 和 ALBERT。RoBERTa 是BERT的成功变种之一,主要有四个简单有效的变化:1)去除NSP任务;2)训练步骤更多,batch size更大,数据更多;3)更长的训练句子;4)动态改变 [MASK] 模式。
RoBERTa 在 BERT 的基础上取得了令人印象深刻的结果。而且,RoBERTa 已经指出,NSP 任务对于 BERT 的训练来说相对没用。ALBERT 是 BERT 的另一个重要变体,它提供了几个关于减少参数的有趣观察。首先,它将输入词嵌入矩阵分解为两个较小的矩阵。其次,它强制所有 Transformer 层之间的参数共享以显着减少参数。第三,它提出了句子顺序预测(SOP)任务来替代 BERT 的 NSP 任务。作为对空间效率的牺牲,ALBERT 的微调和推理速度较慢。
除了 RoBERTa 和 ALBERT 之外,近年来还提出了各种 PTM,以更好地从未标记的数据中获取知识。一些工作改进了模型架构并探索了新的预训练任务,例如 XLNet、UniLM、MASS 、SpanBERT 和 ELECTRA。此外,整合丰富的数据源也是一个重要的方向,例如利用多语言语料库、知识图谱和图像。由于模型规模是 PTMs 的关键成功因素,研究人员还探索建立更大的模型以达到超过数百亿的参数,例如 GPT 系列、Switch Transformer,并同时对训练 PTM 进行计算效率优化。
设计有效的架构
在本节中,我们将更深入地研究 BERT 之后的 PTM。基于 Transformer 的 PTM 的成功激发了一系列用于自然语言及其他语言序列建模的新架构。一般来说,所有用于语言预训练的 BERT 后 Transformer 架构都可以根据两个动机进行分类:统一序列建模和认知启发架构。
2.1 统一序列建模(Unified Sequence Modeling)
为什么 NLP 如此具有挑战性?根本原因之一是它具有多功能的下游任务和应用,通常可以分为三种类型:自然语言理解、开放语言生成、非开放语言生成。一系列新颖的架构一直在寻求将不同类型的语言任务与一个 PTM 统一起来。
结合自回归和自编码建模:XLNet 提出了置换语言建模。针对 BERT 中的掩码恢复策略自然与其下游应用相矛盾(输入句子中没有 [MASK])的问题,XLNet 通过在预训练中置换 token 的顺序,然后应用自回归预测范式来解决这个问题,这赋予了 XLNet 理解和生成的能力。置换语言建模的另一个实例是 MPNet,它修正了 XLNet 的差异。
除了置换语言建模,另一个方式将是多任务训练。UniLM 提出联合训练不同的语言建模目标,包括单向、双向和序列到序列 (seq2seq) 目标。这可以通过改变 Transformers 中的注意力掩码来实现。UniLM 在生成式问答和摘要摘要方面表现相当出色。
最近,GLM 提出了一种更优雅的方法来结合自回归和自编码。给定可变长度的掩码跨度,而不是像 BERT 和 SpanBERT 那样提供 [MASK] 的数量进行建模,GLM 要求 Transformer 块自动回归生成掩码标记。并且为了保留 [MASK] 的编号信息,GLM 提出了一种 2D 位置编码策略。GLM 是第一个在包括自然语言理解、条件生成和无条件生成在内的所有类型的任务上同时实现最佳性能的模型。
应用广义 Encoder-Decoder:在 GLM 之前,无论是 Encoder 结构(例如,BERT)还是 Decoder 结构(例如,GPT)都无法解决一个重要问题:填充可变长度的空白。一个自然的想法是转向最初为机器翻译设计的 Encoder-Decoder 架构,这将产生以源为条件的可变长度的目标序列。
这种类型的先驱是 MASS ,它将掩码预测策略引入到 Encoder-Decoder 结构中。然而,MASS 没有涉及填充可变长度空白的问题。T5 通过仅用一个掩码标记掩码文本中可变长度的跨度并要求解码器恢复整个掩码序列来解决该问题。BART 通过截断、删除、替换、改组和掩码等多种操作来破坏源序列,而不仅仅是掩码。
然而,Encoder-Decoder 架构面临着一些挑战。首先,与单个编码器/解码器相比,Encoder-Decoder 引入了更多的参数。虽然这个问题可以通过编码器和解码器的参数共享来缓解,但其参数效率仍然值得怀疑。其次,Encoder-Decoder 结构通常在自然语言理解方面表现不佳。尽管报告了对类似大小的原版 BERT 的改进,但训练有素的 RoBERTa 或 GLM 编码器的性能比它们好得多。
2.2 认知启发架构(Cognitive-Inspired Architectures)
当前的 Transformer 并不足以很好地实现人类的认知系统, 注意力机制是Transformer架构中的核心模块,其灵感来自于人类认知系统的微观和原子操作,只负责感知功能。然而,人类水平的智能远比仅仅理解不同事物之间的关联复杂得多。为了追求人类水平的智能,了解我们认知功能的宏观架构,包括决策、逻辑推理、反事实推理和工作记忆至关重要。
可维护的工作记忆:Transformer 的一个自然问题是其固定的窗口大小和二次空间复杂度,这极大地阻碍了其在长文档理解中的应用。尽管对二次增长的逐点注意力的近似计算进行了大量修改,但问题是我们人类并没有呈现出如此长距离的注意力机制。作为替代方案,认知科学家已经揭示,人类可以保持工作记忆,它不仅可以记忆和组织,还可以遗忘.传统的长短期记忆网络是这种哲学的典型实践。
对于基于 Transformer 的架构,Transformer-XL 是第一个引入段级递归和相对位置编码来实现这一目标的架构。然而,递归只是隐式地模拟了工作记忆。作为更明确的解决方案,CogQA 建议在多跳阅读中维护认知图。它由两个系统组成:基于 PTM 的系统1和基于 GNN 的系统2,为多跳理解建模认知图。CogQA 的一个限制是它对系统1的使用仍然基于固定的窗口大小。为了赋予工作记忆理解长文档的能力,CogLTX 利用 MemRecall 语言模型来选择应该保留在工作记忆中的句子和另一个用于回答或分类的模型.
可持续的长期记忆:GPT-3 的成功以及最近关于语言模型回忆事实知识能力的研究揭示了 Transformer 可以记忆的事实。一些研究通过用大型键值记忆网络替换了 Transformer 层中的前馈网络,证明了 Transformers 中的前馈网络等同于记忆网络。
然而,Transformers 中的存储容量是相当有限的。对于人类智能而言,除了用于决策和推理的工作记忆外,长时记忆在回忆事实和经验方面也起着关键作用。REALM 是探索如何为 Transformer 构建可持续外部记忆的先驱。RAG 将掩码预训练扩展到自回归生成,这可能比提取式问答更好。
除了对文本语料库进行张量化之外,还建议对现有知识库中的实体和三元组进行张量化。当实体出现在上下文中时,它们会用来自外部记忆网络的嵌入替换实体 token 在内部 Transformer 层中的嵌入, 从头开始维护一个虚拟知识,并针对它提出了一个可微的推理训练目标。所有这些方法在许多开放域问题回答基准上都取得了改进。
2.3 更多变体
现有 PTM 的更多变体除了统一序列建模和构建受认知启发的架构的实践之外,当前的大多数研究都集中在优化 BERT 的架构以提高语言模型在自然语言理解方面的性能。
一系列工作旨在改进掩蔽策略,这可以被视为某种数据增强。SpanBERT 表明,用跨度边界目标 (SBO) 屏蔽连续随机长度的令牌跨度可以提高 BERT 的性能。ERNIE(整个实体被屏蔽)、NEZHA 和 Whole Word Masking 也探索了类似的想法。
另一个有趣的做法是将掩码预测目标更改为更难的目标。ELECTRA 将 MLM 转换为替换标记检测 (RTD) 目标,其中生成器将替换原始序列中的标记,而鉴别器将预测标记是否被替换。
利用多源数据
在本节中,我们将介绍一些利用多源异构数据的典型 PTM,包括多语言 PTM、多模态 PTM 和知识增强型 PTM。
3.1 多语言 PTM
BERT 的出现表明,用一般自监督任务进行预训练,然后对特定下游任务进行微调的框架是可行的。这促使研究人员设计任务来预训练多功能多语言模型。根据任务目标,多语言任务可以分为理解任务和生成任务。理解任务侧重于句子级或词级分类,对自然语言推理等下游分类任务有帮助。生成任务侧重于句子生成,在机器翻译等下游生成任务中至关重要。
一些理解任务首先用于在非平行多语言语料库上预训练多语言 PTM。例如,Devlin 等人发布的多语言 BERT(mBERT),使用 104 种语言的非并行多语言维基百科语料库,对多语言掩码语言建模 (MMLM) 任务进行了预训练。研究表明 mBERT 具有在零样本场景中泛化跨语言知识的能力。
XLM-R 构建了一个名为 CC-100 的非并行多语言数据集,它支持 100 种语言。XLM-R 在 CC-100 上以 MMLM 作为唯一任务进行了预训练,并且在多个基准测试中获得了比 mBERT 更好的性能,这表明更大规模的多语言语料库可以带来更好的性能。
然而,MMLM 任务不能很好地利用平行语料库。事实上,平行语料库对于机器翻译等一些 NLP 任务非常重要。直观地说,平行语料库对于直接学习不同语言中具有相同含义的句子的跨语言表示非常有帮助。
从这一点来看,XLM 利用双语句对来执行翻译语言建模 (TLM) 任务。与 BERT 中的 MLM 类似,TLM 将两个语义匹配的句子合并为一个,并在这两个部分中随机屏蔽标记。与 MLM 相比,TLM 需要模型根据双语上下文预测被屏蔽的标记。这鼓励模型将两种语言的表示对齐在一起。
除了 TLM,还有一些其他有效的方法可以从平行语料库中学习多语言表示。Unicoder 提供了两个基于平行语料库的新的预训练任务:跨语言单词恢复 (CLWR) 和跨语言释义分类 (CLPC)。CLWR 通过利用注意力机制使用目标语言嵌入来表示源语言嵌入,其目标是恢复源语言嵌入。该任务使模型能够学习不同语言之间的词级对齐。CLPC 将对齐的句子视为正对,将未对齐的句子作为负对进行采样,以执行句子级分类,让模型预测输入对是否对齐。使用 CLPC,模型可以学习不同语言之间的句子级对齐。
ALM 从平行句子中自动生成代码切换序列并对其执行 MLM,这迫使模型仅基于其他语言的上下文进行预测。InfoXLM 从信息论的角度分析了 MMLM 和 TLM,并鼓励模型在对比学习的框架下区分对齐的句子对和未对齐的负例。HICTL 扩展了使用对比学习来学习句子级和单词级跨语言表示的想法。ERNIE-M 提出了反向翻译屏蔽语言建模,并通过反向翻译机制扩展了平行语料库的规模。这些工作表明,利用平行语料库可以为学习跨语言表示带来很大帮助。
研究还广泛探索了多语言 PTM 的生成模型。通常,一个生成模型由一个 Transformer 编码器和一个 Transformer 解码器组成。去噪自编码(DAE)是一种典型的生成任务,它将噪声函数应用于输入句子,然后用解码器重新存储原始句子。
DAE 的噪声函数通常包含两个操作:用掩码 token 替换 token 跨度以及排列 token 的顺序。mBART 通过添加特殊符号扩展了 DAE 以支持多种语言。它在编码器输入的末尾和解码器输入的开头都添加了一个语言符号。这使模型能够知道要编码和生成的语言。
尽管 mBART 中的 DAE 是用多种语言训练的,但编码输入和解码输出始终使用同一种语言。这导致模型捕获语言符号和生成的句子之间的虚假相关性。换句话说,模型可能会忽略给定的语言符号,直接生成与输入相同语言的句子。
为了解决这个问题,XNLG 提出了跨语言自动编码 (XAE) 任务。与DAE不同的是,XAE 的编码输入和解码输出是不同的语言,类似于机器翻译。此外,XNLG 以两阶段的方式优化参数。它在第一阶段用 MLM 和 TLM 任务训练编码器。然后,在第二阶段修复编码器并使用 DAE 和 XAE 任务训练解码器。通过这种方式,所有参数都得到了很好的预训练,也填补了使用 MLM 进行预训练和使用自回归解码进行微调之间的差距。
3.2 多模态 PTM
大规模的预训练及其下游应用已经将具有影响力的研究和开发与不同的现实世界模式串联起来。我们看到物体,听到声音,说语言。模态,例如音频、视频、图像和文本,是指某事如何发生或如何被体验。任务包括以快节奏发展的多种模式。
最近,大规模 PTM 增强了对多模态交叉的研究兴趣,例如图像和文本的交叉,或视频和文本的交叉。具体来说,考虑到图像和视频属于视觉,文本和语音(音频)属于语言,这种模态都可以归类为视觉和语言(V&L)。V&L 任务根据使用的具体形式可以进一步分为基于图像文本的任务、基于视频文本的任务和基于视频音频的任务。
首先,对于基于图像文本的 PTM,最新的解决方案是采用视觉语言 BERT。主要困难在于将非文本信息集成到 BERT 框架中。ViLBERT 是一种学习与任务无关的图像和语言联合表示的模型。它通过分别预处理文本和视觉信息,将 BERT 架构扩展为支持两个输入流的多模态模型。在两个编码器之后,它使用 Transformer 层来获得文本和视觉信息的统一注意力结果。
ViLBERT 首先为学习视觉和语言的关系提供了一种新思维,它不再局限于学习特定的任务,而是将视觉和语言的关系作为模型的可预训练和可迁移的能力。它使用三个预训练任务:MLM、句子图像对齐(SIA)和掩蔽区域分类(MRC)。它在五个下游任务上进行评估:视觉问答(VQA)、视觉常识推理(VCR)、接地参考表达(GRE)、图像文本检索(ITIR)和零样本图像文本检索(ZSIR)。
LXMERT 与 VilBERT 具有相似的架构,但使用更多的预训练任务:MLM、SIA、MRC、掩蔽区域特征回归(MRFR)和 VQA。LXMERT 在三个下游任务上进行了测试:VQA、图形问答 (GQA) 和用于视觉推理的自然语言 (NLVR2)。
另一方面,VisualBERT 最小限度地扩展了 BERT 架构。它可以被视为 V&L 预训练的一个简单有效的基线。VisualBERT 的 Transformer 层隐式对齐输入文本和图像区域中的元素。它使用两个预训练任务:MLM 和 IA,并在四个下游任务上进行测试:VQA、VCR、NLVR2 和 ITIR。
Unicoder-VL 将 VisualBERT 中的异地视觉检测器移动到端到端版本中。它将 Transformers 的图像标记设计为边界框和对象标签特征的总和。它使用 MLM、SIA 和蒙版对象分类 (MOC) 作为其预训练任务,并使用 IR、ZSIR 和 VCR 作为其下游任务。
VL-BERT 也使用与 VisualBERT 类似的架构。对于 VL-BERT,每个输入元素要么是来自输入句子的标记,要么是来自输入图像的感兴趣区域 (RoI)。它使用 MLM 和 MOC 作为预训练任务,发现添加 SIA 会降低模型性能。它在三个下游任务上进行评估:VQA、VCR 和 GRE。
一些多模式 PTM 旨在解决特定任务,例如 VQA。B2T2 设计了一个早期融合文本标记和视觉对象特征之间的共同参考的模型,然后使用 MLM 和 SIA 作为预训练任务。VLP专注于 VQA 和图像字幕。它使用共享的多层 Transformer 进行编码和解码,这与许多现有方法的编码器和解码器使用单独的模型实现不同。它在双向屏蔽语言预测 (BMLP) 和序列到序列屏蔽语言预测 (s2sMLP) 上进行了预训练。
此外,UNITER 学习两种模式之间的统一表示。UNITER 尝试了许多预训练任务,例如 MLM、SIA、MRC 和 MRFR。UNITER 还在各种下游任务上进行了测试:VQA、IR、VCR、NLVR2、参考表达理解 (REC) 和视觉蕴涵 (VE)。
ImageBERT 与 Unicoder-VL 相同。它设计了一种新颖的弱监督方法来从网站收集大规模图像文本数据,其数量和质量对于 V&L 预训练任务至关重要。收集步骤包括网页收集、图像过滤、句子检测、句子清洗、图像文本语义评分和图像文本聚合。生成的数据集包含 1000 万张图像及其平均长度为 13 个单词的描述,这显示了预训练多模态 PTM 的好处。预训练任务包括 MLM、SIA、MOC 和 MRFR,同时仅在一项下游任务 ITIR 上进行测试。
X-GPT 发现,虽然之前基于 BERT 的多模态 PTM 在下游理解任务上产生了出色的结果,但它们不能直接应用于生成任务。然后建议通过三个新的生成任务来预训练文本到图像的字幕生成器,包括图像条件掩码语言建模 (IMLM)、图像条件去噪自动编码 (IDA) 和文本-条件图像特征生成 (TIFG)。对于下游任务,它只关注图像字幕 (IC)。
Oscar 使用在图像中检测到的对象标签作为锚点来显着简化对齐学习。其动机是观察到图像中的显着对象可以被准确检测并经常在配对文本中提及。它在六个下游任务上表现良好:ITIR、IC、新对象字幕 (NOC)、VQA、GCQ 和 NLVR2。
OpenAI 的 DALLE 和清华和 BAAI 的 CogView 向条件零样本图像生成迈出了更大的一步。DALLE 是第一个基于转换器的文本到图像零样本预训练模型,具有大约 100 亿个参数。它展示了多模态预训练模型在弥合文本描述和图像生成之间差距的潜力,尤其是结合不同对象的出色能力,例如“鳄梨形状的扶手椅”。CogView 提高了数值精度通过引入三明治变换器和稀疏注意力机制来训练稳定性,从而在 FID 和 中超越了 DALLE。它也是中文第一个文本到图像模型。
最近,CLIP 和 Wen-Lan 探索扩大网络规模数据以进行 V&L 预训练并取得了巨大成功。与之前的工作相比,他们面临着大规模分布式预训练的挑战。
3.3 知识增强 PTM
PTM 可以从大量数据中提取大量统计信息。此外,外部知识,例如知识图、特定领域数据和预训练数据的额外注释,是人类智慧的产物,可以很好地先于统计建模。在本小节中,我们根据知识格式对外部知识进行分类,并介绍几种尝试将知识与 PTM 相结合的方法。
结构化知识的典型形式是知识图谱。许多工作试图通过集成实体和关系嵌入来增强 PTM 或它们与文本的对齐。然而,像维基数据这样的现实世界知识图包含的信息多于实体和关系。王等人基于维基数据实体的描述预训练模型,通过将语言模型损失和知识嵌入损失结合在一起来获得知识增强的表示。
一些工作将知识图中的路径甚至子图视为一个整体,直接对其和对齐的文本进行建模以保留更多的结构信息。由于将实体和关系与原始文本对齐通常很麻烦,并且会在数据预处理中引入噪声,因此另一系列工作直接将结构化知识转化为序列化文本,让模型自己学习知识-文本对齐。一个有趣的尝试是 OAGBERT,它在开放学术图 (OAG) 中集成了异构结构知识,它涵盖了 7 亿个异构实体和 20 亿个关系。
与结构化知识相比,非结构化知识更完整,但也更嘈杂。如何从数据中有效地对这类知识进行建模也值得探索。特定领域或任务的数据可以被视为一种非结构化知识。许多工作进一步在此数据上预训练通用 PTM,以获得更好的特定领域或特定任务模型。由于存在一些特定领域和特定任务的人工注释,Ke 等人结合这些额外的注释以获得更好的特定领域和特定任务的语言表示。
对于上述所有工作,知识都隐式存储在它们的模型参数中。为了以更可解释的方式对外部知识进行建模,一些作品设计了基于检索的方法,以在下游任务中使用结构化知识。另一系列研究可以使用在不同知识源上训练的适配器,并带有额外的注释来区分知识的来源。
提高计算效率
PTM 的一个主要趋势是参数的数量越来越大。增加神经网络的大小通常会提高准确性,但也会增加训练模型的内存和计算要求。在本节中,我们将从以下三个方面介绍如何提高计算效率:系统级优化、高效学习算法和模型压缩策略。
4.1 系统级优化
减少计算需求的一种有效且实用的方法是针对计算效率和内存使用情况的系统级优化。系统级优化方法通常与模型无关,并且不会改变底层学习算法。因此,它们被广泛用于训练大规模的 PTM。通常,这些方法可以分为单设备优化方法和多设备优化方法。
单设备优化:当前的大规模 PTM 通常会花费大量内存来进行预训练。这主要是由于浮点数的冗余表示。现代深度学习系统主要基于单精度浮点格式(FP32)。然而,模型的权重通常落在有限的范围内,使用半精度浮点格式(FP16)可以完成大部分计算,而精度损失很小。然而,在某些情况下,FP16 中的训练模型可能会因为浮点截断和溢出而失败。
为了解决这个问题,已经提出了混合精度训练方法,它在 FP32 中保留了一些关键权重以避免浮点溢出并使用动态损失缩放操作来摆脱浮点截断。充分的实验表明,在FP16中,混合精度训练方法比直接训练模型更稳定。虽然混合精度训练方法可以显着减少训练时间和内存使用,但它们仍然面临一些挑战。当模型参数没有很好地初始化时,混合精度方法仍然可能导致训练不稳定。所有这些挑战仍然需要进一步探索。
除了浮点数的冗余表示外,为计算梯度而保存的激活状态也是冗余的。例如,在基于 Transformer 的模型中,除了注意层和线性层的权重外,计算设备还存储每一层的隐藏状态,以提高梯度反向传播中使用的链式规则的效率。与模型参数相比,这些隐藏状态可以消耗更多的内存。为了处理冗余激活状态,梯度检查点方法已被用于通过仅存储前向传递后的一部分激活状态来节省内存。如有必要,在向后步骤中重新计算丢弃的激活状态。
在对最近的大规模 PTM 进行预训练时,内存消耗可能太大而无法容纳在单个 GPU 中。因此,一些研究试图用 CPU 内存而不是 GPU 内存来存储模型参数和激活状态,因为 CPU 内存通常要大得多。如图,ZeRO-Offload 等一些工作设计了精细的策略来安排 CPU 内存和 GPU 内存之间的交换,以便内存交换和设备计算可以尽可能多地重叠尽可能。
多设备优化:最近,分布式训练常用于预训练,其中分布在许多计算节点中的多个 GPU 一起用于训练单个模型。数据并行是一种简单有效的加速模型训练的方法。如图所示,当我们使用数据并行时,大批量被划分到不同的节点,因此前向传播可以并行化。在 backward pass 时,不同节点上的梯度应该用 all-reduce 操作聚合,以确保参数优化的一致性,这可能会引入额外的通信开销。
在预训练具有数十亿到数万亿参数的模型时,传统的数据并行性带来了将整个模型参数拟合到单个 GPU 中的挑战,即使是半精度或混合精度训练也是如此。模型并行是解决这个问题的有效方法。如图所示,在进行模型并行时,模型参数可以分布到多个节点。这些节点之间的通信操作如reduce-scatter 和all-gather 保证了前向传递和后向传递的正确性。
Megatron-LM 对基于 Transformer 的 PTM 采用模型并行性。它将自注意力头和前馈层拆分到不同的 GPU 中,减少单个 GPU 的内存负担。Mesh-Tensorflow 还使用户能够沿任何张量维度拆分张量,这可以为模型并行性带来更多定制选项。
虽然模型并行性使不同的计算节点能够存储模型参数的不同部分,但它必须在前向传递和后向传递期间插入集体通信原语,这不能被设备计算重叠。相反,数据并行中的 all-reduce 集体通信操作通常可以被反向计算重叠。因此,数据并行是首选,只要它可以克服对内存容量的过度需求。在数据并行的标准实现中,优化器状态通常沿着不同的节点复制,以保证跨数据并行单元的同步优化。
这种冗余会导致 GPU 内存的额外开销,尤其是在以混合精度方式训练模型时,因为优化器需要存储这些模型的 32 位主状态以确保准确性。为了消除优化器状态和参数带来的冗余,ZeRO 优化器 方法将优化器状态平均划分并分配到数据并行的每个节点,使得每个节点只更新优化器状态对应于它的分区。在训练步骤结束时,所有优化器状态都跨数据并行节点收集。
上述模型并行技术主要集中在跨不同节点的矩阵操作的分区和并行化。如图所示,另一种有效的模型并行方法是流水线并行,它将深度神经网络划分为多个层,然后将不同的层放到不同的节点上。在每个节点的计算之后,输出被发送到下一层计算发生的下一个节点。由于流水线并行只需要在执行流水线相邻阶段的节点之间传达中间激活状态,因此通信成本相对较小。
现有的 Pipeline 方法包括 GPipe,它可以将小批量样本中的较小部分发送到不同的节点,它可以将 token 级 Pipeline 机制应用于基于 Transformer 模型使序列中的每个 token 由不同的节点处理。这两种 Pipeline 方法都加速了大规模 PTM。但是,它们会在每批结束时停止,直到梯度反向传播完成,这可能会导致管道气泡。
4.2 高效学习算法
除了一些系统级的优化方法外,还致力于探索更有效的预训练方法,以便我们能够以较低成本的解决方案预训练大规模 PTM。
有效的训练方法:传统的预训练任务可能是样本效率低下的。例如,对于广泛用于对最近的 PTM 进行预训练的 MLM,模型需要根据上下文来预测掩码标记。屏蔽标记通常是输入标记的子集(通常为 15%),即模型只能从一小组输入标记中学习。
为了解决这个问题,ELECTRA 应用了替换标记检测任务。此外,传统的 MLM 会随机屏蔽文档中的token 以进行预测。由于预测不同token的难度差异很大,随机掩码策略使得训练过程漫无目的且效率低下。因此,一些作品在反向传播中根据它们的重要性或梯度选择性地屏蔽标记以加速模型训练。
除了预训练任务之外,当前的预训练动态也是次优的。最近的大规模 PTM 通常需要较大的batch size。但在早期工作中,研究人员发现简单地增加批量大小可能会导致优化困难。因此,他们提出了一种预热策略,在训练开始时线性增加学习率,这种策略通常用于最近的大规模 PTM。
最近的一些工作研究了基于 Transformer 的模型,并声称不同的层可以共享相似的自注意力模式。因此,可以先训练浅层模型,然后复制以构建深层模型。在训练期间也可以删除一些层以降低反向传播和权重更新的复杂性。此外,You 等人发现,当批量较大时,在不同层自适应地使用不同的学习率也可以加快收敛速度。
高效的模型架构:除了有效的预训练方法外,模型架构的更多变体也可以降低计算复杂度,从而提高训练 PTM 的效率。对于大多数基于 Transformer 的 PTM,随着它们的输入序列变长,由于其序列长度的二次时间和空间复杂度,它们的效率受到注意力权重计算的限制。
因此,许多作品试图降低 Transformer 的复杂性。一些研究设计低秩内核以在理论上近似原始注意力权重并导致线性复杂度,还有一些通过将每个标记的视图限制为固定大小并将标记分成几个块来将稀疏性引入注意力机制,这样注意力权重的计算发生在每个单独的块中,而不是一个完整的序列。与预定义的块相比,一些工作发现使用可学习参数将标记分配到块中会产生更好的性能。另一种方法结合全局和局部注意力机制,然后使用全局节点按顺序收集令牌。这样,长序列被压缩成少量的元素,这样我们就可以降低复杂度。
保持与原始 Transformer 相同的理论计算复杂度,模型结构的更多变体也可以加速模型收敛。专家混合 (MoE) 已被早期证明可以增加深度神经模型的参数,同时保持计算开销几乎不变。最近,Switch Transformers在预训练中采用了这种技术。他们为 Transformers 的每一层添加了多个专家。在每个前进和后退步骤中,他们只选择一位专家进行计算,因此训练和推理时间与没有专家的普通 Transformer 相似。一些实验结果表明,由于多个专家带来的模型容量明显更大,基于 MoE 的模型比普通模型收敛得更快。
4.3 模型压缩策略
提高 PTM 效率的另一个重要方法是模型压缩。在这种情况下,大型模型被压缩为小型模型,以满足在资源受限设备上进行更快推理和部署的需求。
参数共享:PTM 可以通过在相似单元之间共享参数进行压缩。ALBERT使用分解嵌入参数化和跨层参数共享来减少 PTM 的参数。在所有 Transformer 层上使用相同的权重,ALBERT 在 BERT 模型的基础上实现了显着的参数减少,同时具有相同甚至更好的性能。这表明 PTM 可能被过度参数化。
模型剪枝:为了更多地利用当前 PTM 的过度参数化特性,另一种减少模型参数的方法是模型剪枝,它在 PTM 中剪掉一些无用的部分,以在保持性能的同时实现加速。Fan等人将Transformer 层在训练过程中被有选择地删除,从而在推理过程中产生更浅的模型。研究人员还研究了 Transformer 中注意力头的冗余,发现其中只有一小部分就足以很好的表现。大多数这些磁头都可以移除,而对精度几乎没有影响。 CompressingBERT 等其他试验试图修剪注意力层和线性层的权重以减少 PTM 中的参数数量,同时保持与原始模型相当的性能。
知识蒸馏:尽管 ALBERT 节省了 PTM 的内存使用量,但它的推理时间并没有显着减少,因为特征仍然需要通过与原始模型相同数量的层。知识提炼旨在训练一个小型模型来重现大型教师模型的行为。使用小型蒸馏模型进行推理时,内存使用量和时间开销都减少了。
有一些典型的 PTM 使用知识蒸馏的作品,例如 DistillBERT、TinyBERT 、BERT-PKD 和 MiniLM。在这些工作中,在预训练和微调阶段,训练一个小型学生模型来模仿大型教师模型的输出概率、隐藏状态和注意力矩阵。通过知识蒸馏,教师模型中的模型被转移到学生模型中,与单独训练学生模型相比,这可以提高性能。然而,上面提到的知识蒸馏方法需要用于预训练教师模型的数据,考虑到数据版权和隐私,通常不会发布这些数据。此外,教师模型需要对整个预训练数据进行转发,以生成用于知识提炼的 logits 或中间表示,从而导致更长的训练时间。
模型量化:为了获得更压缩的模型,模型量化也是一种有用的技术,它在一些基于 CNN 的模型中得到了广泛的探索。模型量化是指将较高精度的浮点参数压缩为较低精度的浮点参数。传统的 PTM 通常用 32 位或 16 位表示,而量化后的模型可以用 8 位甚至 1 或 2 位表示。对于最近的基于 Transformer 的模型,8 位量化已被证明对 Q8BERT 中的模型压缩有效,对模型性能几乎没有影响。
尽管如此,由于模型容量的显着下降,训练 1 位或 2 位模型仍然具有挑战性。为了减轻性能下降,也可以采用其他方法来保持精度。Q-BERT 使用混合比特量化,其中具有较高 Hessian 频谱的参数需要更高的精度,而具有较低 Hessian 频谱的参数需要较低的精度。三元BERT 在量化中应用知识蒸馏,迫使低位模型模仿全精度模型。Q-BERT 和 TernaryBERT 都会产生超低位模型。然而,低位表示是一种与硬件高度相关的技术,这意味着量化通常需要特定的硬件,不能推广到其他设备。
解释和理论分析
除了 PTM 在各种 NLP 任务上的卓越性能外,研究人员还探索解释 PTM 的行为,包括了解 PTM 的工作原理和揭示 PTM 捕获的模式。这些工作涵盖了 PTM 的几个重要特性:知识、鲁棒性和结构稀疏性/模块化。
5.1 PTM 的知识
PTMs 捕获的隐性知识大致可以分为两类:语言知识和世界知识。
语言知识:PTMs 的语言知识在 PTMs 解释的所有主题中吸引了最多的关注。与CNN和RNN等具有较少层数和参数的传统神经模型相比,大规模PTM可以从海量的预训练数据中学习到丰富的语言知识。
为了研究 PTMs 的语言知识,研究人员设计了几种方法:1)表征探测:固定 PTMs 的参数并在 PTMs 的隐藏表征上训练一个新的线性层,用于特定的探测任务。这是最流行的方法,因为它可以很容易地适应任何探测任务,而无需特殊设计;2)表示分析:使用 PTM 的隐藏表示来计算一些统计数据,例如距离或相似度。根据这些统计数据,我们可以构建不同单词、短语或句子之间的关系;3)注意力分析:类似于表征分析,注意力分析计算注意力矩阵的统计量,更适合发现文本的层次结构;4)生成分析:使用语言模型直接估计不同序列或词的概率。
世界知识:除了语言知识,PTM 还从预训练中学习到丰富的世界知识,主要包括常识知识和事实知识。
对于常识性知识,Ettinger 首先从心理语言学家的角度评估了 PTMs 的知识,发现模型在共享类别或角色反转的情况下表现良好,但在具有挑战性的推理和基于角色的情况下失败。然后,为了从 PTM 中提取常识,戴维森等人提出首先将关系三元组转换为掩码句子,然后根据 PTM 给出的互信息对这些句子进行排名。在实验中,无需进一步训练的基于 PTM 的提取方法甚至比当前的监督方法具有更好的泛化能力。
同样,Da 和 Kasai也发现 PTM 基于一系列探测任务在其表示空间中学习了各种常识特征。除了常识特征/属性外,不同属性之间的隐含关系也很重要。福布斯等人表明当前 PTM 的表示不能很好地模拟隐式关系,这需要进一步探索。
对于事实知识,Petroni 等人建议将关系知识生成制定为填空语句的完成。根据实验结果,他们发现在没有任何微调的情况下,PTM 在此任务上明显优于之前的监督基线。然而,这些填空语句的构建并非易事。为了从 PTM 中提取更多的事实知识,LPAQA 提议通过基于挖掘和基于释义的方法自动搜索更好的陈述/提示。Auto-Prompt 建议为知识探测训练离散提示。在 P-tuning 中,作者发现更好的提示在于连续嵌入空间,而不是离散空间。
此外,罗伯茨等人为开放域问答任务微调 PTM,发现微调可以进一步有利于 PTM 的知识生成。然而,Pörner 等人发现知识生成的成功可能依赖于学习神经刻板联想,即具有意大利语名字的人将被 PTM 预测为意大利语。为了理解文本中的数字,Wallace 等人发现 ELMo 对所有预训练方法(这是一个基于字符的模型)捕获了最好的计算能力,但使用子词单元的 BERT 不太准确。Wang 等人研究了存储在 Transformer 的前馈注意矩阵中的知识,并提出了一个使用 PTM 构建开放知识图的框架。
5.2 PTM 鲁棒性
最近的工作已经使用对抗性示例确定了 PTM 中的严重鲁棒性问题。对抗性攻击旨在通过对原始输入的小扰动来生成被模型错误分类的新样本。例如,PTM 很容易被同义词替换所欺骗。同时,形式词等不相关的人工产物可能会误导 PTM 做出错误的预测。目前的工作主要是利用模型的模型预测、预测概率和模型梯度来搜索对抗样本。然而,很难保持机器生成的对抗样本的质量。最近,human-in-the-loop 方法被应用于生成更自然、有效和多样化的对抗样本,这带来了更大的挑战和挑战。总之,当人们为实际应用程序部署 PTM 时,PTM 的鲁棒性已成为严重的安全威胁。
5.3 PTM 的结构稀疏性
在 BERT 之后,大多数 PTM 都采用 Transformer 作为架构骨干。尽管人们可以轻松地训练一个深度 Transformer 并使用 CNN 和 RNN 实现对先前工作的显着改进,但 Transformer 遇到了过参数化的问题。研究人员表明,多头注意力结构在机器翻译、抽象摘要和语言理解任务中是多余的,即,当去除部分注意力头时,我们可以获得更好的性能。这种现象与 Clark 的观察结果一致,他们发现同一层中的大多数头部具有相似的自我注意模式。
此外,科瓦列娃等人对 PTM 头部编码的信息进行定性和定量分析。他们的研究结果表明,不同头脑的注意力行为可以归类为一组有限的模式。除了多头注意力之外,还有其他几项工作探索了识别参数的稀疏性。戈登等人表明,低水平的剪纸枝 (30-40%) 根本不会影响预训练损失或下游任务的性能。在微调期间针对稀疏性,Prasanna 等人验证了 PTM 上的彩票假设,并发现可以找到实现与完整模型相当的性能的子网络。令人惊讶的是,Kao 等人表明我们可以通过简单地复制一些隐藏层来提高模型容量来提高性能,这表明冗余参数可能有利于微调。
5.4 PTM 的理论分析
由于预训练在深度学习中取得了巨大的成功,研究人员试图研究预训练的工作原理,尤其是无监督的预训练。在深度学习的早期,人们发现通过贪婪的逐层无监督预训练和监督微调来训练深度信念网络是有效的。最近,基于对比学习的预训练包括语言建模已经成为主流方法。在本节中,我们将介绍一些用于预训练的理论解释假设或框架。
Erhan 等人提出了两个假设来解释预训练的效果:1)更好的优化;2)更好的正则化。在更好的优化方面,与随机初始化的模型相比,具有预训练的网络更接近全局最小值。在更好的正则化方面,PTMs 的训练误差不一定比随机模型好,而 PTMs 的测试误差更好,这意味着更好的泛化能力。然后,实验结果倾向于第二个假设。他们发现 PTM 没有实现更低的训练错误。此外,与 L1/L2 等其他正则化方法相比,无监督的预训练正则化要好得多。
对于预训练目标的最新发展,Saunshi 等人对对比无监督表示学习进行理论分析。对比学习将出现在相同上下文中的文本/图像对视为语义相似对,将随机采样的对视为语义不同对。那么,相似对之间的距离应该很近,不同对之间的距离应该很远。在语言建模的预测过程中,上下文和目标词是相似对,其他词是负样本。因此,在优化预训练损失时,我们可以预期下游任务的损失会更低。
未来的方向
到目前为止,我们已经全面回顾了 PTM 的过去和现在。未来,在现有工作的基础上,PTMs 可以从以下几个方面进一步发展:架构和预训练方法、多语言和多模态预训练、计算效率、理论基础、“模识”学习、认知学习和新应用。
6.1 架构和预训练方法
新架构:Transformers 已被证明是一种有效的预训练架构。然而,Transformers 的主要限制是它的计算复杂性。受 GPU 内存的限制,当前大多数 PTM 无法处理包含超过 512 个标记的序列。因此,寻找更有效的模型架构以捕获更远距离的上下文信息非常重要。然而,深层架构的设计具有挑战性,我们可能会寻求一些自动方法的帮助,例如神经架构搜索(NAS)。
此外,虽然更大的 PTM 通常可以带来更好的性能,但一个实际的问题是如何在一些特殊场景中利用这些巨大的 PTM,例如低容量设备和低延迟应用程序,其中 PTM 的效率是一个关键因素。此外,不同的下游任务更喜欢不同的架构。例如,Transformer 编码器适用于自然语言理解任务,而 Transformer 解码器适用于自然语言生成任务。因此,我们可能需要根据下游任务的类型仔细设计特定于任务的架构。
新的预训练任务:通用 PTM 一直是我们学习语言内在普遍知识(甚至世界知识)的追求。然而,这样的 PTM 通常需要更深的架构、更大的语料库和具有挑战性的预训练任务。所有这些要求进一步导致更高的培训成本。此外,训练庞大的模型也是一个具有挑战性的问题,需要复杂高效的训练技术,如分布式训练、混合精度训练等。因此,更实用的方向是设计更高效的自监督预训练。训练任务和训练方法根据现有硬件和软件的能力。ELECTRA (Clark et al., 2020) 是朝着这个方向的一个很好的尝试。
超越微调:目前,微调是将 PTM 知识转移到下游任务的主要方法,但一个缺陷是其参数效率低下:每个下游任务都有自己的微调参数。一个改进的解决方案是修复 PTM 的原始参数,并为特定任务添加小的微调自适应模块。因此,我们可以使用共享 PTM 来服务多个下游任务。
最近,随着 GPT-3 的出现,一种新的模型调优流派,即即时调优,越来越受到关注。通过设计、生成和搜索离散或连续提示并使用 MLM对于特定的下游任务,这些模型可以:1)弥合预训练和微调之间的差距,从而在下游任务上表现更好;2)减少微调大量参数的计算成本。总而言之,即时调优是刺激分布在 PTM 中的语言和世界知识的一种很有前途的方法。
可靠性:随着 PTM 在生产系统中的广泛使用,PTM 的可靠性也成为人们非常关注的问题。针对 PTM 的对抗性攻击的研究通过充分暴露它们的漏洞帮助我们了解它们的能力。PTM 的对抗性防御也很有前景,它可以提高 PTM 的鲁棒性并使它们对对抗性攻击免疫。总的来说,作为许多 NLP 应用的关键组成部分,PTMs 的可解释性和可靠性仍有待进一步探索,这将有助于我们了解 PTMs 的工作原理,并为更好地使用和进一步改进 PTMs 提供指导。
6.2 多语言和多模态预训练
更多模式:除了图像和文本,视频和音频也可以用于多模态预训练。因此,主要挑战在于如何对涉及这两种模式的时间上下文进行建模。特别是,对于视频-文本对的大规模预训练,传统的自监督学习方法由于计算成本高而不适合。为了解决这个问题,重要的是为更复杂的模态开发更有效和高效的自监督学习方法。
更具洞察力的解释:目前还不清楚为什么将视觉和语言联系起来。例如,不管多模态预训练带来的优势,是否会对单一模态(图像或文本)造成任何伤害?如果答案是肯定的,我们能否在多模态预训练期间克服这个缺点?沿着这条研究路线,可以利用最新的深度学习可视化工具来解释多模态预训练。
更多下游任务:众所周知,多模态预训练可以应用于图像-文本检索、图像-文本生成、文本-图像生成等下游任务。然而,为多模态预训练找到“真实”的真实应用场景仍然具有挑战性,因为可以利用许多有效的工程技巧(即使成本更低)。因此,需要与行业进行更密切的合作。
迁移学习:目前,为了使多模态多语言模型处理不同的语言,在预训练期间需要每种语言的数据。在预训练期间添加看不见的语言是不灵活的。因此,应该探索一个新的预训练框架来轻松适应那些看不见的语言。此外,当前的多模式多语言模型无法处理音频数据。例如,要将英文音频翻译成中文音频,我们首先需要通过一个额外的语音识别系统将英文音频转换为英文文本。使用跨语言模型翻译后,我们需要通过额外的文本到语音工具将中文文本进一步转换为中文音频。如何通过多模态多语言 PTM 将源语言音频直接传输到目标语言文本或目标语言音频也值得探索。
6.3 计算效率
近年来大规模深度学习模型的新要求给现有的深度学习框架带来了严峻的挑战,例如 TensorFlow和 PyTorch,这些框架早期没有最初预见到新出现的要求,例如大型模型的模型/管道并行性。为了开发更有效的框架,以下方向很有帮助。
数据移动:开发高效的分布式深度学习框架面临着各种挑战。必须仔细管理设备之间的数据移动,否则这可能会成为性能瓶颈。通过最小化通信成本、最大化计算和内存资源以及优化计算-通信重叠,需要一个明确定义的并行策略在互连设备上放置和调度计算任务。在最好的情况下,这种高效的并行策略可以自动生成。
并行策略:数据并行、模型并行、管道并行和各种混合并行方法可以根据神经网络的结构和硬件配置。数据并行特别适用于参数集相对较小(通常少于数千万个参数)的深度学习模型,当反向传播与梯度/参数通信最大程度地重叠时,可以实现近线性加速。模型并行性和流水线并行性适用于具有大量参数的模型,这些参数可能无法放入单个设备中。在当前的实践中,用户必须彻底考虑给定深度学习模型和设备间通信带宽的网络结构,以决定最合适的并行策略或在不同策略之间切换。
大规模训练:鉴于现有深度学习框架对模型并行性和管道并行性的支持不佳,一些新兴的开源项目开发了用于大规模训练的专用框架。例如,HugeCTR 用于大规模点击率估计。Megatron-LM 和 DeepSpeed 的目标是训练大规模 NLP PTM。Insight-Face 训练大规模人脸识别模型。但是,这些框架仅限于有限的应用案例,不能作为通用解决方案。此外,由于兼容性问题,这些方法无法协同工作以构成完整的解决方案。
包装器和插件:如果没有支持模型并行和管道并行的机制,就必须通过在现有框架之上的计算操作之间手动插入数据路由操作来开发各种专用于某些特定算法的库。此外,通信和计算需要手动重叠以最大化系统吞吐量。手动编程通信操作非常复杂,并且只能逐个解决问题,这导致将并行策略应用于新的深度学习模型的重大障碍。
如果可以通过深度学习框架对用户透明地自动管理通信操作,则更多模型和应用程序可以从分布式训练中受益。为了支持更复杂的并行策略,许多方案被用作基于一些主流深度学习框架(如 TensorFlow 和 PyTorch)的包装器或插件。Mesh-TensorFlow、FlexFlow 、OneFlow、Mind-Spore和 GShard 为开发人员为深度神经模型的不同组件表达广泛的并行计算模式。
6.4 理论基础
不确定性:PTM(以及其他深度神经网络)的一个未得到解决的问题是它们通常对预测过于自信,即这些模型不知道自己不知道什么。例如,GPT-3 可用于回答在基准数据集上表现良好的问题。然而,如果你问一个简单的问题,比如“我的脚有多少只眼睛?”,GPT-3 肯定会产生“你的脚有两只眼睛”这样的答案,这看起来很反直觉。当然,上面的问题不是常人常问的。在机器学习中处理这种分布外(OOD)数据通常是一项具有挑战性的任务。
为了应对上述挑战,一个有希望的方向是采用贝叶斯方法,探索概率工具来捕获数据和模型的不确定性(也分别称为任意不确定性和认知不确定性)或推导出一些测试统计。这种不确定性或统计数据有助于检测异常值。最近,在贝叶斯深度学习的理论、算法和编程库方面已经做了很多工作,这些工作结合了贝叶斯方法和深度网络。这样的进展可以进一步扩展到大规模的 PTM,以正确表征不确定性并避免过度自信的输出。当然,提高贝叶斯深度学习的计算效率是解决上述挑战的关键因素。
泛化和鲁棒性:PTM 的另一个重要问题是泛化。作为深度学习的重要进步,它继承了深度神经网络的优势和挑战。据观察,经典学习理论不足以理解深度网络的行为,因此需要学习理论中的新工具。至于 PTM,除了对神经模型本身(例如 Transformer 和 BERT)的理论理解之外,还会出现新的问题。例如,从理论上理解预训练在提高下游任务泛化方面的作用很重要。最近的工作为理解具有特定假设的对比学习提供了富有成效的尝试。
然而,在更现实的环境下分析 PTM 仍然是开放的。正如我们之前提到的,对抗性鲁棒性也提出了新的问题。在之前的工作中,表明需要更高的样本复杂性才能实现神经网络的对抗性鲁棒性。这种分析激发了进一步的改进。然而,人们普遍不知道大规模 PTM 如何在这方面提供帮助。是否有有效的方法来探索 PTM 作为额外数据资源来提高下游任务的鲁棒性?此外,如前所述,PTM 本身的稳健性是一个未解决的问题。
6.5 “模识”学习
PTM 可以在广泛的 NLP 任务中实现大幅改进,因为它们可以从大型未标记语料库中学习多种知识。与人类可以解释的由离散符号表示的知识相反,存储在 PTM 中的知识被表示为实值向量。例如,给定知识图中的三元组 ⟨h,r,t⟩,很容易知道头实体 h 与尾实体 t 有关系 r。相比之下,您似乎很难知道 PTM 生成的表示意味着什么。因此,我们可以将存储在 PTM 中的知识称为“模识”(Modeledge),区别于人类形式化的离散符号知识(Knowledge)。
知识意识任务:虽然符号知识的使用是有效的,但手动组织这种离散知识(例如构建各种知识库)既费时又费力。随着 PTMs 研究的快速推进,出现了 GPT、BERT 和 BART 等各种 PTMs。越来越多的研究人员探索了 PTM 从数据中学习哪些知识,以及为什么它们在下游任务上表现如此出色。彼得罗尼等人指出 PTM 可以被视为知识库,并研究如何将 PTM 应用于知识完成任务。Ethayarajh还声称 PTM 将是开放的知识图谱,并提出了一种基于 PTM 构建知识图谱的无监督方法。从所有这些知识感知任务中,我们可以发现大量的人类知识被 PTM 捕获并以模型边缘的形式存储。如何激发 PTMs 的模型边缘,值得未来进一步探索。
“模识”存储和管理:由于现有的 PTM 建立在不同的架构上,并且可能使用不同的语料库进行训练,因此它们包含不同的模型边缘。因此,如何在 PTM 中存储和管理各种连续的模型边缘成为一个新的挑战。有两种直截了当的想法。首先是在超大规模数据上预训练一个巨大的模型。然后,PTM 将具有覆盖现有 PTM 中几乎所有模型边缘的非凡能力。这种方法简单有效,但需要极高的计算能力和存储资源。例如,GPT-3 使用大约 1750 亿个参数。第二种是基于专家混合(MoE)将多个模型组合成一个大模型。例如,Fedus 等人改进 MoE 以提出 Switch Transformers。这种方法很容易包含新模型,但随着模型数量的增加,对内存的需求也会增加。
考虑到现有 PTM 之间既有异同,我们有一个重要的问题需要回答:是否有可能建立一个通用连续知识库(UCKB)来存储来自各种 PTM 的“模识”?UCKB 不仅可以存储从现有 PTM 导入的连续模型边,还可以混合不同的模型边,然后将融合的模型边导出到模型中,使其更强大。陈等人首先提出了UCKB的概念并做了一些初步的探索。他们将神经网络视为参数化函数,并使用知识蒸馏来导入和导出模型边缘。UCKB 克服了模型存储的冗余性,将各种模型的模型边存储到一个共同的连续知识库中。然而,如何为UCKB的存储和接口设计更有效的架构仍然具有挑战性。
6.6 认知和知识学习
知识增强:对于输入文本,有丰富的相关外部知识,可以用来扩充输入。考虑到知识和纯文本的格式非常不同,重要的是弥合文本表示和知识表示(包括符号或向量)之间的差距,并统一使用它们的信息作为输入。这个问题的解决方案需要统一的模型架构和知识引导的预训练目标。
知识支持:当前的模型架构是手动设计的,通常非常规则。有了关于输入的先验知识,我们可以训练不同的子模块来处理不同类型的输入,这可以加速训练和推理的过程,有利于模型效率。这个过程类似于人类行为,其中不同的大脑区域对应于不同的活动功能。
知识监督:知识库存储大量结构数据,可在预训练期间用作补充来源。通过从知识库和大规模语料库中学习,与仅使用纯文本相比,PTM 可以具有更好的语言理解和生成能力。通过这三个方向,我们希望未来的 PTM 能够轻松理解语言之外的含义,并在各种下游任务上取得更好的表现。
在认知 PTM 方面,我们认为以下方法会有所帮助:
认知架构:由于神经网络的灵感来自于人类神经系统的微观结构,因此有望看到人类认知系统的宏观功能和组织如何启发下一代智能系统的设计,例如全球工作-理论(GWT)。CogQA 和 CogLTX 的成功可能会为这一挑战提供一些思路。明确且可控的推理。虽然深度学习在许多感知任务上取得了成功,但如何进行复杂的决策和高效的多步推理仍然没有解决,这可能需要机器将决策过程自动规划成认知图并进行显式推理像人类一样处理图表中的因素。Inverse Prompting等方法在控制与主题相关的文本生成方面表现出卓越的能力,可以提供一些想法。
知识的相互作用:尽管我们的 PTM 变得越来越大、越来越通用,但它从预训练中学到的知识在很大程度上尚未得到探索。此外,由于我们的大脑在不同功能区的协作下工作,重要的是要了解我们的 PTM 是否塑造了不同的内部功能模块以及它们如何相互作用。
6.7 应用
自然语言生成:许多自然语言生成任务一直由 PTM 主导,例如 GPT-2、BART、T5、UniLM 等等。这些任务包括机器翻译、摘要、对话生成、故事生成、诗歌生成和其他长文本生成。由于 PTM 的流行趋势,主干模型已从 CNN/RNN 转移到 Transformer 或基于 Transformer 的 PTM。PTM 也已成功应用于多模态生成。这些模型在文本图像并行数据上进行训练,在视觉问答、图像到文本生成和文本到图像生成等应用中表现出强大的性能。由于大规模 PTM 已经在如此大规模的数据上进行了训练,因此它们在自然语言生成方面具有先天优势,特别是资源不足的自然语言生成。
对话系统:许多最近的开放域对话系统都建立在大规模的变压器结构上。这些例子包括 Meena、Blender、CDial-GPT、Plato 和 Plato-2 ,它们在大规模对话数据上进行训练,通常使用 seq2seq 框架。这些模型已经显示出提供自然和引人入胜的对话的能力,然而,与其他应用程序的预训练任务相比,对话特定的预训练任务还有待探索。
特定领域的 PTM:当大规模特定领域的语料库廉价可用时,我们可以在此类数据上训练特定领域的 PTM。一些著名的作品包括 BioBERT 和 SciBERT ,它们分别在生物和科学文献文本上进行训练。与在一般文本上训练的模型相比,这些模型被期望和验证能够学习更多特定领域的知识和语言使用。这种领域专业知识通常被认为对于解决许多特定领域的问题很重要。
领域适应和任务适应:大规模 PTM 从大规模通用文本中学习通用知识,为通过微调或其他技术进一步学习特定领域知识提供了一个很好的起点。尽管 PTM 变得越来越大,但特定领域的数据总是有限的。因此,域适应对于特定于域的应用程序变得至关重要。
很明显,大规模 PTM 的简单微调不足以满足特定领域的应用程序。造成这种情况的最根本原因是分布偏移:特定领域中的数据分布可能与一般预训练文本中的数据分布有很大不同。特定领域应用程序成功的另一个重要问题是任务适应。大多数情况下,领域应用程序具有一小组标记数据,这可以使监督学习更有效地学习领域专业知识。然而,对于超大型 PTM,简单地对标记数据进行微调似乎在计算上效率低下,在性能上也没有效果。因此,如何弥合预训练和特定任务微调之间的差距变得至关重要。此外,高效且有效的针对特定任务的微调也是 PTM 未来应用的重要研究方向。
总结
在本文中,我们回顾了预训练的历史,以指出 PTMs 的核心问题,同时揭示 PTMs 在 AI 开发频谱中的关键地位。此外,我们全面回顾了为更好的 PTM 所做的最新努力,包括设计有效的架构、利用丰富的上下文、提高计算效率以及进行解释和理论分析。所有这些工作都有助于最近的 PTM 开发浪潮。
尽管现有的 PTMs 已经取得了可喜的成果,尤其是那些在零/小样本学习场景中表现出惊人能力的大规模 PTMs,但接下来如何开发 PTMs 仍然是一个悬而未决的问题。存储在 PTM 中的知识被表示为实值向量,这与人类形式化的离散符号知识有很大不同。我们将这种连续且机器友好的知识命名为“模识”,并相信它有望以更有效和高效的方式捕获模型边缘并刺激特定任务的模型。我们希望我们的观点能够激发该领域的更多努力,推动 PTM 的发展。
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
???? 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
???? 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
????
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
关于PaperWeekly
PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。