超大规模智能模型相关工作总结:编程实现框架、算法模型、微调技术和应用

©PaperWeekly 原创 · 作者 | 金金

单位 | 阿里巴巴研究实习生

研究方向 | 推荐系统

简介

近日,超大规模的智能模型越来越受到大家的关注,但是仅仅依赖于超大的计算资源并不足以完成这件事,技术上的精巧设计对模型性能和训练速度同样有着巨大的影响,本文包含最近的一些相关工作,包括编程实现框架、算法模型、微调技术以及具体的应用。

GLM:更通用的预训练模型

现有各种类型的预训练架构,主要存在如下的三种:

  • 自回归模型如 GPT,从左往右学习的模型,在长文本的生成以及少样本学习能力很强(参数量大);缺点就是单向的注意力机制不能完全捕捉 token 的内在联系。
  • 自编码模型如 BERT,双向的 transformer 作为编码器+去噪目标,在语言理解相关的文本表示效果很好。缺点是不能直接用于文本生成。

  • 编码解码模型如 T5,编码器使用双向注意力,解码器使用单向注意力,并且有交叉注意力连接两者,在有条件生成任务中表现良好(文本摘要,回答生成)。

然而,没有一个预训练框架对所有任务都执行得最好,这给模型开发和选择带来了不便。本文 [1] 提出了一个新的预训练框架 GLM(通用语言模型)来解决这个问题。

与之前的工作相比,本文体系结构有三个主要的优点:1)它在分类、无条件生成和条件生成任务上表现良好;2)它优于改进预训练-精调一致性的 BERT-like 分类模型;3)能很好地处理变长问题,其模型图如下:

整体来说与 BERT 相似,但是包含两个修改--重新安排了归一化和残差的顺序,在 largeBERT 模型中有效;替换前馈网络为线性网络。另外,GLM 采用了自回归空白填充,具体来说它清空输入中的多个跨度,为了捕捉跨度之间的内在联系,随机交换跨度的顺序。这里与 spanBERT 的区别是跨度的个数是不知道的;跨度的预测是自回归的。

而 mask 注意力矩阵如上图所示,从矩阵可以很明显看到,在 Part A 部分,采用的是自编码注意力,而在 Part B 部分,采用的是自回归注意力。GLM 的注意力就是这样将 2 部分矩阵进行拼接,形成了即有单向,又有双向的注意力的模型。

在下游任务微调上,将 NLU 中的分类任务定义为空白填充的生成任务。先将某些标签映射为某个词,然后将映射后的词进行 Blank 预测。这种方法不同于之前的预训练方法,预训练与微调的目标的不一致。如此一来,分类和生成都可以变成生成的任务,从而打破了 bert 不知道 mask 数量和位置的问题,并且假设 mask 之间是相关的,这样可以捕捉更多的依赖关系。

和其他模型比较来看,GLM 取得了更好的效果。

具体来说,和已有模型比较如下:

  • BERT:Bert 属于自编码模型。目标任务是预测 mask,而且 mask 之间是相互独立的,因此,Bert 不能捕捉到 mask 之间的相关性;Bert 只能处理单 token 的 mask,不能处理多个连续的 mask token,即只能预测单个 token。
  • XLNet:XLNet 属于自回归的模型。需要知道预测 token 的长度;使用双流注意力机制解决了信息泄漏的问题,改变了 transfomer 的结构,增加了耗时;XLNet 决定一个 token 是否被独立预测。
  • T5:T5 也是处理的 Blank 填充的任务目标,但是 GLM 使用了单个的 transformer 编码器学习单向和双向的注意力。T5 在编码和解码阶段使用不同的位置编码,使用哨兵标记来识别不同的 mask 跨度,哨兵标记造成了模型能力的浪费和预训练微调的不一致性。而 GLM 通过共享参数使参数比编码解码模型更有效。
  • UniLM:UniLM 是通过在自编码框架下改变在双向,单向,互相之间的 attention mask 来统一预训练目标;但还是不能完全捕捉当前 token 对于前面 token的依赖。微调 GLM,为了保持和预训练的一致性,其采用 mask 的方式做生成任务会比自回归更加低效。比如长度上就多了几个 token。

P-tuning算法:释放语言模型潜能

新兴的 GPT-3 在小样本和零样本学习方面取得了巨大成功。它的成功表明,巨大的单向语言模型与适当的手动提示一起可能有助于自然语言理解。然而,手工制作一个最佳的提示很困难,这通常需要不切实际的大验证集。在许多情况下会过拟合测试集。

此外,很容易创建导致性能大幅下降的对抗性提示。鉴于这些问题,很多的工作集中在自动搜索离散提示上并证明了它们的有效性。然而,由于神经网络本质上是连续的,离散提示可能不是最优的方案。

在这项工作 [2] 中,作者提出了一种新方法:P-tuning,连续空间中自动搜索提示,以弥合 GPT 和 NLU 应用程序之间的差距。P-tuning 利用很少的连续自由参数作为提示,作为预训练语言模型的输入。然后作者使用梯度下降作为离散提示搜索的替代方法来优化连续提示,其模型框架图如下:
我们可以看到,对比原来的模型直接搜索一些提示的方法,本文通过一个小型的 LSTM 模型把这几个 Embedding 算出来,并且将这个 LSTM 模型设为可学习的。
实验结果显示出如果配合 P-tuning,那么:1)GPT、BERT 的效果相比直接 finetune 都有所提升;2)GPT 的效果还能超过了 BERT。这表明 GPT 不仅有 NLG 的能力,也有 NLU 能力。而 BERT 配合 P-tuning 也有提升,说明 P-tuning 对语言模型潜能的释放是较为通用的。

CogView:文本生成图像的新框架

通用领域中的文本到图像生成长期以来一直是一个未解决的问题,它需要生成模型和跨模态的理解。本文 [3] 提出使用带有 VQ-VAE tokenizer 的 40 亿参数 Transformer:CogView 来解决此问题。对比已有的模型,CogView 有如下特点:

  • 根据 MS COCO 上的 FID 指标来看,CogView 大大优于 DALL-E 和以前的基于 GAN 的方法,并且是第一个开源大型文本到图像转换器。
  • 除了零样本生成之外,本文还进一步研究了对预训练 CogView 进行微调的潜力。CogView 可以适应不同的下游任务,例如风格学习(特定领域的文本到图像)、超分辨率(图像到图像)、图像字幕(图像到文本),甚至文本-图像重新排序。
  • 由于本文简单有效的 PB-relaxation 和 Sandwich-LN,CogView 是第一个几乎用 FP16 训练的大型文本到图像转换器。这些技术可以消除转发中的溢出,稳定训练,并且可以推广到其他 transformers 的训练。
具体来说,该模型实际上是在优化图像和文本联合分布的 ELBO:
固定隐变量,通过优化鲜艳的 KL term:
整体模型框架如下:
以下是该模型生成的图像,可以看到的确可以有效的理解文本并输出相应的图像。

FastMoE:首个支持PyTorch框架的MoE系统

近年来,Google 研究者提出了 MoE(Mixture of Experts)层。该层包含一个门网络(Gating Network)和 n 个专家网络(Expert Network)。对于每一个输入,动态地由门网络选择 k 个专家网络进行激活。该方法可以在计算量不增加的情况下,大大增加参数量从而增加模型的性能。

而后进一步将 MoE 应用到了基于 Transformer 的神经机器翻译的任务上。GShard 将 Transformer 中的 Feedforward Network 层替换成了 MoE 层,并且将 MoE 层和数据并行巧妙地结合起来。在数据并行训练时,模型在训练集群中已经被复制了若干份。GShard 通过将每路数据并行的 FFN 看成 MoE 中的一个专家来实现 MoE 层,这样的设计通过在多路数据并行中引入 All-to-All 通信来实现 MoE 的功能。

然而,训练万亿规模的 MoE 需要算法和系统协同设计一个经过良好调整的高性能分布式训练系统。遗憾的是,现有的唯一满足要求的平台强烈依赖于谷歌的硬件(TPU)和软件(Mesh Tensorflow)堆栈,并没有向公众开放,尤其是 GPU 和 PyTorch 社区。

FastMoE 是一个基于 PyTorch 的分布式 MoE 训练系统,具有通用加速器。该系统为灵活的模型设计和轻松适应不同的应用程序(例如 Transformer-XL 和 Megatron-LM)提供了分层接口。与使用 PyTorch 直接实现 MoE 模型不同,FastMoE 中通过复杂的高性能加速技能高度优化了训练速度。该系统的最大特点是支持在多个节点的多个 GPU 上放置不同的专家,从而可以相对于 GPU 的数量线性增加专家的数量。

总结

可以看到,超大规模智能模型相关工作目前已经呈现百花齐放的局面,在编程实现框架、算法模型、微调技术以及具体的应用等方面都有了很大的进展,目前智源所发布的悟道模型,也说明了我们国家在这方面的重视和投入。

当然,大规模预训练模型的参数规模通常远超传统的专用人工智能模型,在算力资源、训练时间等方面消耗巨大,未来在在高效编码、高效模型、高效训练、高效微调和高效推理等方面还有很多值得研究的点, 等待着研究者们去挖掘。

参考文献

[1] All NLP Tasks Are Generation Tasks: A General Pre-training Framework

[2] GPT Understands, Too

[3] CogView: Mastering Text-to-Image Generation via Transformers

[4] FASTMOE: A FAST MIXTURE-OF-EXPERT TRAINING SYSTEM

更多阅读

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

· 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注

· 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

· PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

(0)

相关推荐