之前提到Auto-regression的decoding方法使得transformer在推理上的表现很慢,所以很多研究者在这方面做了很多研究,本文就介绍一个使用Non-Auto Regression的方法——Discrete Latent Variable。该方法与Auto-regression方法相比,效果上要稍差 一些,但是取得了比其他Non-auto regression方法都好的结果,而效率上也有很大的提升。
之前提到Auto-regression的decoding方法使得transformer在推理上的表现很慢,所以很多研究者在这方面做了很多研究,本文就介绍一个使用Non-Auto Regression的方法——Discrete Latent Variable。该方法与Auto-regression方法相比,效果上要稍差 一些,但是取得了比其他Non-auto regression方法都好的结果,而效率上也有很大的提升。
Transformer虽然在训练上比RNN和CNN快,但是在做推理(decoding)的时候由于采用的是Auto-regression不能做到并行计算,所以速度很慢(甚至可能比纯RNN还要慢),所以针对这种情况很多研究者提出了decoding时也能采用并行计算的改进方案,下面要介绍的这个transformer大家族的以为成员就是其中之一:Average Attention Network。
之前我们介绍了擎天柱的工作原理以及内部构造。对擎天柱已经有了深入的了解,那么本文就来介绍一下汽车人家族中的其他成员——Transformer的各种变种。
Transformer现在已经被广泛应用于NLP领域的各项任务中,并且都取得了非常好的效果。其核心层使用了自注意力机制,关于为什么使用自注意力机制,作者提出了三点原因:
前面介绍了Transformer的pytorch
版的代码实现,下面我们再介绍一下tensorflow
版的代码实现。
前面介绍了Transformer的模型结构,最后也给出了pytorch
版本的代码实现,但是始终觉得不够过瘾,有些话还没说清楚,因此,这篇文章专门用来讨论Transformer的代码细节。
Transformer 的模型框架我们已经介绍完了,接下来这篇文章我们讨论一下更多关于 Transformer 的模型细节。比如多头注意力的头越多越好吗?自注意力为什么要进行归一化?训练的时候 Warm-up 有什么用?
7 / 7