一、前言
Transformer是编码器解码器模型的发展,是chatGPT的前身也是应用到现在很多LLMs上的重要模型之一,对机器学习尤其是深度学习的影响很深远。每一个从事AI方面无论是否是确切的深度学习领域的从业者都比较深入地了解此模型。
今天,无神带大家解读其出处——发表自机器学习三大顶会之一的偏向学术的NIPS《Attention is all you need》。
本论文由谷歌的学者所做。
二、模型架构
模型由左边的编码器和右边的解码器构成,图示的Nx
代表图示的结构重复了多少次,其N都是6,所以该重复结构有6个。
三、编码器
每一层(图示左边的六个之一)含有两个子层,第一个子层是多头注意力自机制,第二个是一个全前向连接层网络。
将两个子层用残差连接(resnet中的思想,理解为保存历史与现存信息的一种简单加和)。
其产生的输出维度都是512.
四、编码器
也是有六个图示的部分的重复。
除了像编码器的介绍的两个子层外,还加入了第三个子层:是一个对编码器的输出的多头注意力机制处理块。
子层间同样用到残差连接,如编码器上述。
还用到masking,确保每个位置的预测只用到前一个位置的。
五、注意力机制
本模型中用到这两种,在架构图中有简单的对应,这里是两种的详解。
左边的是两种常用的注意力块之一,右边是本文的创新部分。
1.限制点产生注意力
本机制非本文原创,是当时的较火的注意力机制之一,比另一种吸引力注意力机制更快,更少空间消耗。
但是会减少SOFTMAX的梯度,文中的研究者采用了一种办法,将点乘积变成了负二分之一次方。
2.多头注意力机制
能够同步输入的信息,在该模型中为Q、K、V。Q和K从编码器处理后产生,V是解码器的中间结果,从模型架构的箭头可见各种数据的流向,这三种处理的数据的形式也都是向量。
多头注意力机制将这三种数据分别通过模型中的矩阵进行相乘处理简单拼接,如何拼接,可以理解为矩阵的拼接,Pytorch中的concat操作。
六、结果
本模型的创新之处在于没有用到循环结构和卷积操作,对于序列变化的时序问题如机器翻译、还有语言分词上产生了当时最好的效果。
对于翻译的问题,Transformer训练的非常快,指的是比使用循环结构和卷积结构的模型。
七、结语
码字不易,欢迎关注无神一起学习机器学习,期待您的点赞收藏加关注,感谢!