Transformer模型解析记录

整个Transformer模型由Encoder和Decoder两部分组成。Encoder负责对输入数据的编码,而Decoder负责对编码后的数据进行解码。

Encoder由N个结构相同,参数不共享的模块组成,每个模块又由多头自注意力层和全连接层组成,其中多头自注意力层和全连接层都加上了残差连接和layer normalization。

Decoder与Encoder结构类似,相比于Encoder,Decoder部分多了一个 Multi-Head Attention ,第一个 Multi-Head Attention 采用Masked操作,第二个 Multi-Head Attention 的 K 和 V 使用Encoder的输出,而Q使用上一个Decoder block的输出。
Decoder的输出通过一个线性层和softmax输出下一个翻译单词的概率。

Encoder由N个结构相同,参数不共享的的Layer组成(论文中N=6),也即图1左侧的单元,最左边有个“Nx”。
每个Layer由 Multi-Head Attention 和 Feed-Forward 两个sub_layer组成。其中每个sub_layer都加了残差连接(Residual Connect)和归一化(Normalization)操作。则每个sub_layer的输出可表示为:

Muti-Head Attention从结构上来看就是通过h个不同的线性变换将输入 投影到h个不同的 组合,最后将h个不同的Attention结果拼接起来,最后经过一个Liner层得到Muti-Head Attention的输出。

其中, 、

Muti-Head Attention输出的维度是

关于Attention的详细介绍,可以参考之前文档:

Feed Forward也称Position-wise feed-forward networks,该层主要提供非线性变换。之所以是position-wise是因为过线性层时每个位置i的变换参数是一样的。

该层比较简单,是一个两层的全连接层,第一层的激活函数为 Relu,第二层不使用激活函数,对应公式为:

:Attention输出之后的结果会和 相乘来进行维度变换,那这里为什么又要增加一个2层的FFN网络呢?
:FFN网络的加入给模型增加了非线性(Relu激活函数),增加了模型的表现能力。当然去掉FFN层也是可以的,只不过效果上会差些。

Decoder是图1的右半部分,与左半部分的Encoder类似,但又存在一些区别。

Decoder比Encoder多了一个Multi-Head Attention,第一个Multi-Head Attention采用Masked操作,因为在生成任务中,前面的词语是看不到后面词语的信息的,因此需要加入Masked来避免信息泄露。第二个Multi-Head Attention输入的 是根据Encoder的输出编码矩阵映射而来,而 是根据上一个Decoder的输出映射而来。

最后有一个 Softmax 层计算下一个翻译单词的概率。

模型在解码的过程中需要注意的是训练和预测不一样。
在训练时,解码是一次全部decode出来,用上一步的ground truth来预测(mask矩阵也会改动,让解码时看不到未来的token);
而预测时,因为没有ground truth了,需要一个个预测。

上面简单介绍了 Encoder Decoder 模块,下面简单介绍一下Transformer的Position Embedding。

引入Position Embedding主要是为了弥补Transformer模型对位置信息的不足,将Position Embedding与token Embedding相加后,即可保留各个token的位置信息。

论文作者提出了两种添加位置信息的的方法:
一种方法是直接用不同频率的正余弦函数直接计算各个token的位置id,公式如下:

另一种方法是直接学习出一个Position Embedding。

通过实验发现,两种方法结果差不多,最后作者选择了第一种方法。

Transformer 与 RNN 不同,可以比较好地并行训练。

Transformer 本身是不能利用单词的顺序信息的,因此需要在输入中添加位置 Embedding,否则 Transformer 就是一个词袋模型了。

Transformer 的重点是 Self-Attention 结构,其中用到的 Q, K, V矩阵通过输出进行线性变换得到。

Transformer 中 Multi-Head Attention 中有多个 Self-Attention,可以捕获单词之间多种维度上的相关系数 attention score。

Transformer 模型详解 (推荐)
【NLP】Transformer模型原理详解
【经典精读】Transformer模型深度解读



  • ...Transformer妯″瀷鍘熺悊;缁撴瀯;鎶宸т互鍙婂簲鐢璇﹁В
    绛旓細Transformer浣滀负鍙︿竴绉嶉潻鍛芥х殑棰勮缁冩ā鍨嬶紝鍏舵牳蹇冨湪浜庤嚜娉ㄦ剰鍔涙満鍒讹紝瀹屽叏鎽掑純浜哛NN鍜孋NN銆俆ransformer鐨勬灦鏋勫寘鎷紪鐮佸櫒鍜岃В鐮佸櫒锛屾瘡涓ā鍧楅兘鍖呭惈鑷敞鎰忓姏灞傘佸墠棣堢綉缁滀互鍙婃畫宸繛鎺ュ拰灞傝鑼冨寲锛屼互鎻愰珮璁$畻鏁堢巼鍜屾ā鍨嬫ц兘銆傜壒鍒槸鍦ㄥ鐞嗗簭鍒楁暟鎹椂锛屽畠鐨勫苟琛屾ф樉钁楀姞蹇簡璁粌閫熷害銆俆ransformer鐨勬潈閲嶅叡浜満鍒朵綋鐜板湪...
  • 濡備綍璇勪环Bert涓Transformer杩欎袱绉嶉璁粌妯″瀷?
    绛旓細1. 妯″瀷缁撴瀯锛欱ert鏄熀浜嶵ransformer缂栫爜鍣ㄧ粨鏋勭殑妯″瀷锛屽彧鏈塃ncoder閮ㄥ垎銆鑰孴ransformer鏄敱Encoder鍜孌ecoder缁勬垚鐨勫畬鏁村簭鍒楀埌搴忓垪缁撴瀯鐨勬ā鍨銆侭ert鐨勬ā鍨嬬粨鏋勬洿绠鍗曪紝涓昏鐢ㄤ簬涓婁笅鏂囪涔夌悊瑙d换鍔★紝濡傛枃鏈垎绫汇佹枃鏈浉浼煎害璁$畻绛夈俆ransformer鍙互搴旂敤浜庢洿澶嶆潅鐨勪换鍔★紝濡傛満鍣ㄧ炕璇戙佹憳瑕佺敓鎴愮瓑闇瑕佺敓鎴愯瑷搴忓垪鐨勪换鍔°2...
  • NLP棰勮缁冭瑷妯″瀷(涓):閫愭瑙f瀽Transformer缁撴瀯
    绛旓細杩欐槸鍏稿瀷鐨凾ransformer缁撴瀯,绠鍗曟潵璇,Transformer = 棰勮缁(input) + Encoder*N + 棰勮缁(output) + Decoder*N+output銆 妯″瀷鐨勮繍琛屾楠や负: 鈶犲Input鍋欵mbedding,鍙互浣跨敤Word2Vec绛夊伐鍏,缁村害涓512缁,Embedding杩囧悗缁撳悎positional encoding,瀹冭褰曚簡杈撳叆鍗曡瘝鐨勪綅缃俊鎭 鈶 棰勫鐞嗗悗鐨勮緭鍏ュ悜閲忕粡杩囧澶碅ttention灞傚...
  • Transformer鏈鍏瑙f瀽(attention is all you need)
    绛旓細transformer妯″瀷涓己灏戜竴绉嶈В閲婅緭鍏ュ簭鍒椾腑鍗曡瘝椤哄簭鐨勬柟娉曪紝瀹冭窡搴忓垪妯″瀷杩樹笉涓嶄竴鏍枫備负浜嗗鐞嗚繖涓棶棰橈紝transformer缁檈ncoder灞傚拰decoder灞傜殑杈撳叆娣诲姞浜嗕竴涓澶栫殑鍚戦噺Positional Encoding锛岀淮搴﹀拰embedding鐨勭淮搴︿竴鏍凤紝杩欎釜鍚戦噺閲囩敤浜嗕竴绉嶅緢鐙壒鐨勬柟娉曟潵璁╂ā鍨嬪涔犲埌杩欎釜鍊硷紝杩欎釜鍚戦噺鑳藉喅瀹氬綋鍓嶈瘝鐨勪綅缃紝鎴栬呰鍦...
  • 澶妯″瀷閮芥槸鍩轰簬Transformer鍫嗗彔,閲囩敤Encoder鎴栬匘ecoder鍫嗗彔,鏈変粈涔...
    绛旓細澶妯″瀷鏋舵瀯涔嬩簤锛Transformer鐨凟ncoder涓嶥ecoder涔嬪樊寮瑙f瀽 Transformer鏋舵瀯鐨勫礇璧凤紝宸茬粡瓒呰秺浜咰NN銆丷NN銆丩STM鍜孏RU鐨勪紶缁熺晫闄愶紝寮曞彂浜嗘繁搴﹀涔犻鍩熺殑骞挎硾鍏虫敞銆傚浠婏紝LLM棰嗗煙姝e洿缁昬ncoder-only銆乪ncoder-decoder涓巇ecoder-only涓夌璁捐灞曞紑婵鐑堢殑璁ㄨ銆侭ERT鏇惧紩棰唀ncoder-only鐨勭儹娼紝鐒惰岋紝T5鍜孏PT绯诲垪锛岀壒鍒槸GPT...
  • Transformer妯″瀷瑙f瀽璁板綍
    绛旓細Transformer 鐨勯噸鐐规槸 Self-Attention 缁撴瀯锛屽叾涓敤鍒扮殑 Q, K, V鐭╅樀閫氳繃杈撳嚭杩涜绾挎у彉鎹㈠緱鍒般俆ransformer 涓 Multi-Head Attention 涓湁澶氫釜 Self-Attention锛屽彲浠ユ崟鑾峰崟璇嶄箣闂村绉嶇淮搴︿笂鐨勭浉鍏崇郴鏁 attention score銆Transformer 妯″瀷璇﹁В (鎺ㄨ崘) 銆怤LP銆慣ransformer妯″瀷鍘熺悊璇﹁В 銆愮粡鍏哥簿璇汇慣ransfo...
  • 鍥捐В浠涔堟槸 Transformer
    绛旓細Transformer 鏄竴绉嶅熀浜 encoder-decoder 缁撴瀯鐨妯″瀷,鍦‥ncoder 涓,鍦―ecoder 涓,涓嬮潰鎴戜滑鍏蜂綋鐪嬩竴涓嬪叾涓繖鍑犱釜姒傚康,杩欓噷涓昏鍙傝 Jay Alammar,浠栧湪 The Illustrated Transformer 涓粰鍑轰簡寰堝舰璞$殑璁茶В銆備緥濡傛垜浠杩涜鏈哄櫒缈昏瘧浠诲姟,杈撳叆涓绉嶈瑷,缁忚繃 Transformer,浼氳緭鍑哄彟涓绉嶈瑷銆
  • Transformer瑙h(闄刾ytorch浠g爜)
    绛旓細鐢变簬Attention妯″瀷鏈韩灏卞彲浠ョ湅鍒板叏灞鐨勪俊鎭紝 Transformer瀹炵幇浜嗗畬鍏ㄤ笉渚濊禆浜嶳NN缁撴瀯浠呭埄鐢ˋttention鏈哄埗锛屽湪鍏跺苟琛屾у拰瀵瑰叏灞淇℃伅鐨勬湁鏁堝鐞嗕笂鑾峰緱浜嗘瘮涔嬪墠鏇村ソ鐨勬晥鏋溿傜旱瑙傚浘1鏁翠釜Transformer鐨勭粨鏋勶紝鍏舵牳蹇冩ā鍧楀叾瀹炲氨鏄笁涓細Multi-Head attention銆丗eed Forward 浠ュ強 Add&Norm銆傝繖閲屽叧浜嶮ulti-Head attention...
  • transformer妯″瀷涓殑鍝釜缁勪欢璐熻矗鎹曟崏搴忓垪涓殑渚濊禆鍏崇郴
    绛旓細鍦Transformer妯″瀷涓紝鎹曟崏搴忓垪涓殑渚濊禆鍏崇郴涓昏鏄氳繃鑷敞鎰忓姏鏈哄埗锛圫elf-Attention Mechanism锛夊疄鐜扮殑銆傚叿浣撴潵璇达紝妯″瀷閫氳繃璁$畻姣忎釜璇嶅鍏朵粬璇嶇殑鍔犳潈琛ㄧず锛堟潈閲嶇敱璇嶄箣闂寸殑鐩稿叧鎬у喅瀹氾級锛屼粠鑰屾崟鎹夊簭鍒椾腑鐨勪緷璧栧叧绯汇傝繖绉嶆満鍒朵娇寰楁ā鍨嬭兘澶熺悊瑙e彞瀛愪腑鐨勮涔変俊鎭紝骞惰兘澶熸牴鎹笂涓嬫枃杩涜鎺ㄧ悊鍜岄娴嬨
  • Transformer鍘熺悊鍙婂叾搴旂敤
    绛旓細transformer 鏈鏃╀娇鐢ㄤ簬NLP妯″瀷涓紝浣跨敤浜 Self-Attention 鏈哄埗銆傜浉杈冧簬RNN缁撴瀯鍙互杩涜骞惰鍖栬缁冿紝鑳藉 鎷ユ湁鍏ㄥ眬淇℃伅 銆俿cale dot-product attention self-attention 杩囩▼鍥 query q 瀵 key k鍋歛ttention锛歴oftmax褰掍竴鍖栵細鏉冮噸涔榲alue v 杈撳嚭杞寲鍊硷細鍚堝苟涔嬪墠鐨勪笁涓浘涓搷浣滐細Transformer鏋舵瀯 Feed-Forward...
  • 扩展阅读:vision transformer ... 人工智能transformer ... infrastructure ... transformer gpt ... pretrained transformer ... transformer模型csdn ... keypoint transformer ... transfermarkt官网 ... transformer变形金刚 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网