Encoder 如何将 Attention Matrix 传递给 Transformers 中的 Decoder 'Attention is all you need'?

How Encoder passes Attention Matrix to Decoder in Tranformers 'Attention is all you need'?

我正在阅读著名的论文 'Attention is all you need'。虽然我对大部分主要概念都很清楚,但有几点有问题

  1. Encoder如何将使用输入计算的注意力矩阵传递给Decoder?就像我所理解的那样,它只将键值矩阵传递给解码器
  2. 我们在测试时从哪里获得解码器的移位输出?
  3. 因为一次只能输出一个token,所以这个transformer 运行 可以多次迭代生成输出序列。如果是,那么,如何知道什么时候停止?
  4. 权重是否在解码器中进行了多头注意力训练,因为它已经从编码器和蒙面多头注意力中获得了 Q、K 和 V

感谢任何帮助

  1. Encoder通过计算得到的'Attention'矩阵。该注意力矩阵被视为解码器多头注意力模块

    的'Key' & 'Value'矩阵
  2. 为什么我们需要移位输出进行测试?这不是必需的,因为在测试时,我们需要从令牌中预测一个 'BOS'(序列开始)令牌被视为过去的令牌,因此自动左移

  3. 是的,我们需要一次又一次地迭代预测一个标记。如果预测的标记是'EOS'(序列结束),我们停止

  4. 这还不清楚,但看起来解码器的多头注意力没有经过训练