[Day25] NLP会用到的模型(八)-transformer decoder

一. decoder

架构如下:
https://ithelp.ithome.com.tw/upload/images/20210925/20140426OrBwF0pmIw.png

decoder主要是解析encoder的资讯,转换成output的形式
decoder分成下面三个子层:

  1. Masked Multi-head self-Attention Sublayer
  2. Multi-head encoder-decoder-Attention Sublayer
  3. Position-wise Feed Forward Sublayer

二. Masked Multi-head self-Attention Sublayer
各位应该很好奇为何第一个部分要有masked,因为transformer是一个生成式的模型,不能让他知道後面的答案,以中英文翻译为例子的话,假如encoder是处理中文的地方,decoder是处理翻译英文的部分,假设英文是'Mary had a little lamb',那在一开始时,会先只给他encoder的资讯,看能不能产生Mary,在生成第二个字也就是'had'时会给decoder看'Mary',看能不能生成'had',那怎麽做mask,如下图,会将不能给decoder看的字给他'0',只有1代表是目前decoder能使用的input,下图是'NLP100天马拉松的图':
https://ithelp.ithome.com.tw/upload/images/20210925/20140426tNwQ1eSEha.png

三. Multi-head encoder-decoder-Attention Sublayer

还记得前一天说的,encoder将k与v送至decoder,就是这一段,decoder经过Masked Multi-head self-Attention,产生的Q与encdoer做attention,就是要让decoder学目前的输入与encoder哪些资讯关联性高,算法与self-attention是相同的,如下图:
https://ithelp.ithome.com.tw/upload/images/20210925/20140426zhou6nnNnS.png

最後就是一层全连接层了,最後经过softmax预测最适合的翻译词~~

整体decoder的运作就是这样~明天会以transformer实作中英文翻译任务~


<<:  Day25,Kubeapps一日体验

>>:  【设计+切版30天实作】|Day11 - [设计进阶挑战] 如何把Reviews的呈现方式改成可滚动式的卡片呢?

Day 30 敏捷开发最後的结果会是什麽?

敏捷开发最後的结果会是什麽? 最後我想跟大家分享一段小故事,故事大约是这样的: 男主角丹,因为车祸的...

DAY23 搞样式--CSS Gird小进阶(间隔/fr)

间隔 有了布局跟对齐功能之後,现在我们要来了解如何设置行与行/栏与栏之间的间隔罗。 下图是没有间隔的...

Chain of Responsibility 责任链模式

今天开始进入到 Behavioral design patterns,这一类的模式着重於物件之间的沟...

【程序】Onboarding process 转生成恶役菜鸟工程师避免 Bad End 的 30 件事 - 21

Onboarding process 第一周有哪些重点 每个月定期追踪 第三个月是最危险的 ...

[第五天]从0开始的UnityAR手机游戏开发-如何在Vuforia创建可辨识图片

第四天的小试身手解答:将Unity介面改为2By3,Project从Two Column Layou...