我有一个关于训练期间解码器变压器前馈的问题。
让我们举个例子:"i love the sun"我想预测的输入数据翻译(意大利语翻译)"io amo il sole"。
现在我向编码器输入“我爱太阳”,我得到了隐藏状态。现在我必须使用输入“BOS io amo il”在解码器上进行多次前馈,其中 BOS 是代表句子开头的标记。所以我有这个前馈我假设
- [BOS, IO, AMO, IL] -> 解码器 -> IO
- [BOS, IO, AMO, IL] -> 解码器 -> AMO
- [BOS, IO, AMO, IL] -> 解码器 -> IL
- [BOS, IO, AMO, IL] -> 解码器 -> SOLE
我认为这是正确的方法。应该应用什么来区分训练我认为是掩蔽注意力机制也许(?)假设掩蔽将是正确的
[1 0 0 0,
0 0 0 0 ,
0 0 0 0,
0 0 0 0] for the first feed forward
[1 0 0 0,
1 1 0 0 ,
0 0 0 0,
0 0 0 0] for the second feed forward
[1 0 0 0,
1 1 0 0 ,
1 1 1 0,
0 0 0 0] for the third feed forward
[1 0 0 0,
1 1 0 0 ,
1 1 1 0,
1 1 1 1] for the fourth feed forward
这是正确的方法吗?或者应该有什么不同?如果您也可以为我提供一个 python 实现可能会很有用,在此先感谢。