Transformer模型有6层的编码器与6层的解码器组成,这里重点说一下6层的transformer模型是论文attentiin is all you need中的标准配置,并不一定说是所有基于transformwr模型都要使用6层的结构。你完全可以采用其它的数字,之所以作者采用6层的设计,也许是作者找到的最优解吧。
为了方便理解,在介绍模型时,所有的配置完全跟标准的transformer模型一致,这样做目的是方便理解,更不会让初学者产生误会。待你对模型有了深刻的认识时。你可以根据自己的模型数据,调整模型的参数。
另外一个问题,多头注意力机制,为啥多头注意力机制采用了8头,而不是其它的头数,这里其实跟6层的编码器与解码器类似,只是作者使用的一个超参数,我们可不可以采用其它的数字那?
答案肯定是可以的,但是这里的头数一定能被512整除,为啥需要能被512整除?原因是我们的向量维度为512,被512整除后,得到的矩阵维度才相等。在做多头注意力矩阵乘法时,才符合矩阵乘法的要求。
最后提醒一个小问题,我们transformer模型的6层结构如下图,数据依次通过6层的编码器后才被传递给解码器,且传递给6层的解码器,上次看到有人把数据流模型画成每个编码器对应每个解码器,这是不对的。
这个后期我们分享模型的搭建时会从代码的维度来分享。跟着代码一步一步的搭建模型,我们就对transformer模型有更深刻的认识