利用深度学习自动学习特征已经逐步取代了人工构建特征和统计方法。但其中一个关键问题是需要大量的数据,否则会因为参数过多过拟合。但是这个成本非常高昂,因此长久以来,我们都在研究一个关键问题:如何在有限数据下训练高效的深度学习模型? 一个重要的里程碑是转移学习——受人类启发,不是从大量数据中从头开始学习,而是利用少量样例来解决问题。转移学习有两个阶段:预训练+微调,微调阶段就是转移预训练阶段学到的知识到特定任务上。这一方法首先在计算机视觉(CV)领域取得成功,这是对预训练模型(PTMs)的第一波探索浪潮。 自然语言处理(NLP)领域采用了自监督学习进行预训练,其动机是利用文本内在关联作为监督信号取代人工标注。最初的探索聚焦在浅层预训练模型获取词的语义,比如 Word2Vec 和 Glove,但它们的局限是无法很好地表征一词多义。自然而然地,就想到了利用 RNN 来提供上下文表征,但彼时的模型表现仍受限于模型大小和深度。2018 年 GPT 和 BERT 横空出世,将 NLP 的 PTM 带入了新时代。 这些新模型都很大,大量的参数可以从文本中捕捉到一词多义、词法、句法结构、现实知识等信息,通过对模型微调,只要很少的样例就可以在下游任务上取得惊人的表现。到了现在,在大规模 PTMs 上对特定任务进行微调已经成为业界共识。尽管已经取得了很大的成功,但还有一些基本的问题:我们仍然不清楚隐藏在大量模型参数中的本质,训练这些庞然大物的巨大计算成本也阻碍了我们进一步探索。PTMs 已经将 AI 研究者推到了一个十字路口。 论文标题:Pre-Trained Models: Past, Present and Future 论文链接: https:///abs/2106.07139 01 背景1.1 转移学习和监督预训练转移学习目标是从多种资源任务中捕捉重要的知识然后将其应用到特定任务。通常有两种预训练方法:特征迁移和参数迁移。前者在多个领域和任务上预训练特征表征来预编码知识;后者基于原始任务和目标任务可以共享模型参数的直觉假设,因此将知识预编码进共享的模型参数。从某种程度上说,这两种方法都为 PTMs 奠定了基础。比如词向量、ELMo 基于特征转移,BERT 基于参数转移。 从 AlexNet 到 VGG 再到 GoogleNet,网络变得越来越深,表现也越来越好。但是训练这样深度的模型并不容易,堆叠太多层会带来梯度消失和梯度爆炸的问题,而且很快就会到达天花板。于是,ResNet 出现了,它通过向参数初始化和隐藏层添加归一化并引入残差连接缓解了问题。再加上大规模数据集 ImageNet,在标注数据集上预训练模型出现一波浪潮。受此启发,NLP 领域也探索了监督预训练,最有代表的作品是 CoVE——采用机器翻译作为预训练目标,源语言的编码器可以作为下游任务的支柱。 1.2 自监督学习和自监督预训练迁移学习有四种子集:
由于 NLP 领域有大量的无标注文本,研究中心逐渐从前两者转移到后两者。基于自监督的预训练通过将输入的数据本身作为标签进行学习,它可以看作是无监督学习的分支。不过无监督学习主要聚焦在发现数据的模式(聚类、社群发现、异常检测),而自监督学习依然是有监督的范式。虽然 CoVE 取得了不错的成绩,但要想在 NLP 领域标注一个像 ImageNet 的数据集几乎不太可能。这是因为标注文本数据比图像要复杂得多。所以使用无标签数据自监督学习就成了最好的选择。 早期的词向量就是这样做的,一段时间一直作为词的初始化参数,然后是序列级别的 ELMo 解决了一词多义问题,再就是 Transformer 时代的 GPT、BERT,以及后继者 XLNet、RoBERTa、BART、T5 等。使用基于 Transformer 的 PTMs 已经成为了业界基操,而且同时也被使用到 CV 领域。 1.3 Transformer 和预训练代表主要是指 GPT 和 BERT,分别使用自回归语言模型和自编码语言模型作为预训练目标,分别对应 NLP 两大不同任务:生成和理解。 Transformer
GPT
BERT
GPT 和 BERT 后
02 设计高效架构两种动机:
2.1 统一序列建模NLP 的下游任务一般可以归为三大类:
不过三者区别并不明显,生成和理解的界限也很模糊。因此,很多架构就朝着统一不同类型任务的方向探索。 结合自回归和自编码建模
使用通用的 Encoder-Decoder GLM 之前,BERT 或 GPT 都不能解决变长完形填空问题。前者是因为 MASK token 的数量会泄露信息,后者是因为它们只能在序列后面生成。
Encoder-Decoder 的挑战:
2.2 认知启发架构核心模块 Self-Attention 的灵感来自于人类认知系统的微观和原子操作,只负责感知功能。为了追求人类智能,理解认知功能的宏观架构包括决策、逻辑推理、反事实推理和工作记忆等至关重要。 可维护的工作记忆 人类没有表现出如此长的注意力机制,而是保持工作记忆,不仅记忆和组织,同时也会遗忘,类似 LSTM。
可持续的长期记忆 有研究已经发现 Transformer 能够记忆,他们通过使用一个大的 key-value 记忆网络替换 Transformer 层中的前馈网络,结果依然不错。因此前馈网络和记忆网络是等价的。但是 Transformer 的记忆能力是有限的,人类智能除了用来决策和推理的工作记忆,长期记忆在回想事实和经验方面同样扮演了关键角色。
2.3 其他变体主要集中在提升 NLU 的表现上。
03 使用多来源数据3.1 多语言预训练重要前提:虽然大家说不同的语言,但可以表达相同的意思。即语义与符号系统独立。用一个模型表征多种语言模型效果更好。 BERT 前主要有两种方式:
这两种方式都使模型能够应用于多语言场景,但仅限于特定任务(类似 ELMo)。 BERT 时代使用两阶段,多语言任务可以分为理解和生成任务,前者关注句子或词级别分类,后者关注句子生成。
3.2 多模态预训练统称 V&L,视频和图像属于 Vision,文本和语音属于 Language。最大的难点是将非文本信息融合进 BERT。
3.3 知识增强预训练将外部先验知识融入模型。
04 提高计算效率4.1 系统级别优化两方面:计算效率和内存使用,一般都是模型无关的。 单设备优化
多设备优化
虽然模型并行性使不同的计算节点能够存储模型参数的不同部分,但它必须在前向传递和后向传递期间插入集体通信原语,这些原语不能被设备计算重叠。 相反,数据并行中的 allreduce 集体通信操作通常可以与反向计算重叠。所以数据并行一般是首选。
另一个高效的模型并行方法:pipeline 并行:将深度神经网络划分为多个层,然后将不同的层放在不同的节点上。每个节点计算完后,输出发送到下个节点。每个 batch 结束后等待梯度反向传播结束。
4.2 高效的预训练高效的训练方法
高效的模型架构
这块内容可以参考 Google 的这篇论文:[2009.06732] Efficient Transformers: A Survey 4.3 模型压缩参数共享 主要是 ALBERT 模型剪枝
知识蒸馏 训练一个小的学生模型去复现大的教师模型。
模型量化 将较高精度的浮点参数压缩为较低精度的浮点参数。
不过,低位表示是一种与硬件高度相关的技术。 05 解释和理论分析5.1 预训练模型的知识语言学知识 为了研究 PTM 的语言学知识,设计了几种方法:
世界知识
更多细节可参考:深度探索 Bert:BERTology Paper Note | Yam 地址:https://ft/2021/05/22/Paper/2021-05-22-BERTology/ 5.2 预训练模型的鲁棒性最近的工作已经使用对抗样本确定了 PTM 中的严重鲁棒性问题。
总之,当我们在现实世界部署 PTM 时,这已经成为一个严重的安全威胁。 5.3 预训练模型的结构稀疏性Transformer 有过度参数化的问题,多头注意力在很多任务上是冗余的,去掉一部分头甚至效果更好。
5.4 预训练模型理论分析两个假定解释预训练的影响:
实验结果倾向于第二个假设,PTM 没有实现更低的训练错误。另外,与其他正则化方法如 L1/L2相比,无监督预训练正则化要好得多。 关于对比无监督表征学习:
06 未来方向6.1 架构和预训练方法
6.2 多语言和多模态预训练
6.3 计算效率
6.4 理论基础
6.5 Modeledge 学习我们很难知道 PTM 生成的表示意味着什么。 因此,我们可以将存储在 PTM 中的知识称为 “Modeledge”,区别于人类形式化的离散符号知识。
6.6 认知和知识学习
6.7 应用
论文链接:https:///abs/2106.07139 |
|