NLP领域的Transformer预训练模型

举报
可爱又积极 发表于 2021/10/27 13:48:28 2021/10/27
【摘要】 预训练预训练能带来以下一些优势:通过利用大量无标注文本,预训练有助于模型学习通用语言表征。只需增加一两个特定的层,预训练模型可以适应下游任务。因此这能提供很好的初始化,从而避免从头开始训练下游模型(只需训练特定于任务的层)。让模型只需小型数据集就能获得更好的表现,因此可以降低对大量有标注实例的需求。深度学习模型由于参数数量大,因此在使用小型数据集训练时,容易过拟合。而预训练可以提供很好的初始...
预训练

预训练能带来以下一些优势:

  • 通过利用大量无标注文本,预训练有助于模型学习通用语言表征。

  • 只需增加一两个特定的层,预训练模型可以适应下游任务。因此这能提供很好的初始化,从而避免从头开始训练下游模型(只需训练特定于任务的层)。

  • 让模型只需小型数据集就能获得更好的表现,因此可以降低对大量有标注实例的需求。

  • 深度学习模型由于参数数量大,因此在使用小型数据集训练时,容易过拟合。而预训练可以提供很好的初始化,从而可避免在小型数据集上过拟合,因此可将预训练视为某种形式的正则化。


预训练的步骤

预训练一个模型涉及以下五个步骤:

  • 准备预训练语料库

  • 生成词汇库

  • 设计预训练任务

  • 选择预训练方法

  • 选择预训练动态


预训练语料库

图片

图 1:预训练语料库

图片

图 2:预训练方法,其中 PTS 是从头开始型预训练、CPT 是持续型预训练、SPT 是同时型预训练、TAPT 是任务自适应型预训练、KIPT 是知识继承型预训练

预训练任务

  • 闲聊语言建模(CLM)

  • 掩码语言建模(MLM)

  • 替代 token 检测(RTD)

  • 混洗 token 检测(STD)

  • 随机 token 替换(RTS)

  • 互换语言建模(SLM)

  • 翻译语言建模(TLM)

  • 替代语言建模(ALM)

  • 句子边界目标(SBO)

  • 下一句子预测(NSP)

  • 句子顺序预测(SOP)

  • 序列到序列语言模型(Seq2SeqLM)

  • 去噪自动编码器(DAE)


嵌入

图片

图 8:T-PTLM 中的嵌入

分类法

为了了解以及跟踪各种 T-PTLM 的发展,研究者从四个方面对 T-PTLM 进行了分类,即预训练语料库、模型架构、SSL 类型和扩展方法。如下图 9 所示:

图片

图 9:T-PTLM 的分类法。
 
下游适应方法

一旦完成语言模型的训练,就可将其用于下游任务了。将预训练后的语言模型用于下游任务的方式有三种:基于特征的方法、微调和基于提示的微调(prompt-based tuning)。

如下图 10 所示,基于特征的方法涉及到根据语言模型生成上下文的词嵌入,然后在针对特定下游任务的模型中将它们用作输入特征。微调涉及到根据下游任务,通过尽量降低针对特定任务的损失来调整模型权重。

图片

图 10:下游适应方法。
 
评估

在预训练阶段,T-PTLM 会获取预训练语料库中编码的知识。这里的知识包括句法、语义、事实和常识。对于 T-PTLM 的效果,评估方式有两种,即内在方式和外在方式。见下图 11。

内在评估方式是通过探测 T-PTLM 中编码的知识进行评估,而外在评估方式则是评估 T-PTLM 在真实世界下游任务中的效果如何。内在评估方式可让我们了解 T-PTLM 在预训练阶段获得的知识,这有助于我们设计更好的预训练任务,使得模型可以在预训练阶段学习到更多知识。

图片

图 11:用于评估 T-PTLM 研究进展的基准。
 
有用的软件库

研究者还归纳总结了一些适用于 T-PTLM 的常用软件库。其中,Transformers 和 Fairseq 等软件库适用于模型训练和评估。SimpleTransformers、HappyTransformer、AdaptNLP 等则构建于 Transformer 软件库之上,可让用户仅使用少量代码就实现更轻松的训练和评估。FastSeq、DeepSpeed、FastT5、OnnxT5 和 LightSeq 等则可用于提升模型的推理速度。Ecco、BertViz 和 exBERT 都是可视化分析工具,可用于探索 Transformer 模型的层。Transformers-interpret 和 Captum 则能用于解释模型决策。

图片

表 11:适用于 T-PTLM 的软件库。
 
讨论和未来方向

更好的预训练方法

仅使用 SSL 来训练模型(尤其是带有成千上万亿参数的大模型)的成本非常高。知识继承型预训练(KIPT)等全新的预训练方法涉及到 SSL 和知识蒸馏。SSL 让模型可以学习预训练语料库中可用的知识,而知识蒸馏则让模型可以学习已经编码在已有预训练模型中的知识。由于在通过知识蒸馏的预训练阶段,模型可获得额外的知识,因此 a) 模型可以更快速地收敛并由此缩短预训练时间,b) 相比于仅使用 SSL 预训练的模型,在下游任务上的表现会更好。研究社区必须重点关注开发 KIPT 等更好的预训练方法,让模型获得更多知识以及降低预训练时间。

样本高效型预训练任务

如果一个预训练任务能最大化地利用每个训练实例,那么就可以说该预训练任务是样本高效的,即它应该能在训练实例中的所有 token 上获得定义。样本高效型预训练任务能使预训练的计算效率更高。最常用的预训练任务 MLM 的样本效率就不太高,因为其仅涉及到一个 token 子集,即掩码 token,其占总 token 数的 15%。RTD、RTS 和 STD 等预训练任务可被视为是开发样本高效型预训练任务的早期尝试。这三种预训练任务都定义在每个训练实例的所有 token 之上,即它们涉及到识别每个 token 是否被替代、随机替换或混洗。未来应该还将出现使计算效率更高的样本高效型预训练任务。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。