【问题标题】:The decoder part in a transformer model变压器模型中的解码器部分
【发布时间】:2022-11-09 18:19:21
【问题描述】:
我对 NLP 相当陌生,我正在阅读一篇解释变压器模型的博客。我对解码器块的输入/输出感到很困惑(附在下面)。我知道 y_true 在训练步骤中被输入解码器,以与编码器块的输出相结合。我不明白的是,如果我们已经知道 y_true,为什么要运行这一步来获取输出概率?我只是不太明白右下角的“输出嵌入”和右上角的“输出概率”之间的关系。当我们使用模型时,我们不会真的有 y_true,我们只是使用 y_pred 并将它们输入解码器吗?这可能是一个菜鸟问题。提前致谢。
【问题讨论】:
标签:
nlp
transformer-model
decoder
【解决方案1】:
我知道 y_true 在训练步骤中被输入解码器
与编码器块的输出相结合。
嗯,是的,也不是。
解码器块的工作是预测下一个单词。这输入到解码器是编码器的输出和解码器块的先前输出本身。
让我们举个翻译例子......英语到西班牙语
- 我们有 5 只狗 -> Nosotras tenemos 5 perros
编码器将对英语句子进行编码并产生一个注意力向量作为输出。第一步,解码器将被提供注意力向量和<START> 令牌。解码器将 (应该) 产生第一个西班牙语单词诺索特拉斯.这是Y吨.在下一步中,解码器将再次输入注意向量以及<START> 标记和先前的输出 Yt-1诺索特拉斯.原则将是输出,依此类推,直到解码器吐出<END> 令牌。
因此解码器是Autoregressive Model。它依靠自己的输出来生成下一个序列。
【解决方案2】:
@Bhupen(抱歉,我显然没有足够的声誉发表评论)-您确定吗?这就是基于 RNN 的 seq-to-seq 模型的工作原理,但 Transformer 的全部意义在于摆脱顺序处理(并通过掩码来模仿它),因为它是处理和训练中的一个重大瓶颈。我的理解是,Transformer 之所以如此强大,是因为它们允许并行处理,另一方面,它允许更大的训练运行(就数据和时期而言)。