transformer架构_图解Reformer:一种高效的Transformer

作者:Alireza Dirafzoon

编译:ronghuaiyang

导读

在单GPU上就可以运行的Transformer模型,而且几乎不损失精度,了解一下?

14dd72cd05e34ea11e3efd986b847a7e.png

如果你一直在开发机器学习算法用于处理连续数据 —— 例如语言处理中的文本,语音信号,或视频 —— 你可能听说过或使用过Transformer,你可能知道这和是推特中认为的不同于一个东西。

ba688223cf3ac14fd630d1583888bb93.png

图1,打破僵局,摘自Chris Manning教授的推特

最近,谷歌推出了Reformer架构,Transformer模型旨在有效地处理处理很长的时间序列的数据(例如,在语言处理多达100万个单词)。Reformer的执行只需要更少的内存消耗,并且即使在单个GPU上运行也可以获得非常好的性能。论文Reformer: The efficient Transformer将在ICLR 2020上发表(并在评审中获得了近乎完美的分数)。Reformer模型有望通过超越语言应用(如音乐、语音、图像和视频生成)对该领域产生重大影响。

在这篇文章中,我们将努力深入Reformer模型并试着去理解一些可视化方面的指南。准备好了吗?

为什么是Transformer?

在NLP类的任务中,如机器翻译、文本生成、问答,可以被形式化为sequence-to-sequence的学习问题。长短期记忆(LSTM)神经网络,后来配备了注意机制,是著名用于构建预测模型等问题的架构,比如在谷歌的神经机器翻译系统中。然而,LSTMs中递归的固有顺序特性使得无法并行化数据序列,因此在速度和梯度消失方有巨大的障碍,因此,这些架构无法在长序列上利用上下文。

最近Transformer模型,在Attention is all you need这篇文章中提出 —— 在许多任务达到了最先进的性能,摆脱了循环并引入了多头self-attention机制。Transformer的主要新奇之处在于它的并行处理能力,这使得处理长序列(具有数千个单词的上下文窗口)成为可能,从而产生更优的模型,例如著名的Open AI的GPT2语言模型,而训练时间更少。Huggingface的Transformer库 —— 具有超过32个预训练的语言模型,支持超过100种语言,并在TensorFlow和PyTorch进行了相互的转换,这在构建先进的NLP系统上是非常了不起的工作。Transformer已经被用于除文本之外的应用上,比如生成音乐和图像。

Transformer缺了点什么?

在深入研究reformer之前,让我们回顾一下Transformer模型的挑战之处。这需要对transformer体系结构本身有一定的了解,在这篇文章中我们无法一一介绍。然而,如果你还不知道,Jay Alamar的The Illustrated Transformer:http://jalammar.github.io/transformer/是迄今为止最好的可视化解释,我强烈建议在阅读本文其余部分之前先阅读他的文章。

尽管transformer模型可以产生非常好的结果,被用于越来越多的长序列,例如11k大小的文本,许多这样的大型模型只能在大型工业计算平台上训练,在单个GPU上一步也跑不了,因为它们的内存需求太大了。例如,完整的GPT-2模型大约包含1.5B参数。最大配置的参数数量超过每层0.5B,而层数有64 层。

c8ba86121aa67a744f806e88a86a1357.png

图2:标准Transformer模型的简化图

如果这个模型看起来不熟悉或似乎很难理解,我劝你们暂停在这里回顾一下Transformer。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值