Transformer细节(四)——详解Transformer解码器的数据处理是并行or顺序

一、并行计算在训练阶段的解码器

        在训练阶段,解码器接收目标序列的前缀(即已生成部分)作为输入,并且目标序列的真实值是已知的。由于所有时间步的目标序列都已知,因此解码器可以并行计算每个时间步的输出。

1.教师强制(Teacher Forcing)

        教师强制是训练序列到序列模型的一种技术。在这种方法中,解码器在每个时间步都接收真实的目标序列的前一个词作为输入,而不是它在前一个时间步生成的词。这意味着:

(1)解码器在时间步 \( t \) 的输入是目标序列在时间步 \( t-1 \) 的真实词。
(2)这样所有时间步的输入都是已知的,可以并行计算。

2.解码器的并行计算

由于教师强制,解码器可以并行处理目标序列的每个时间步。具体步骤如下:

(1)编码器处理源序列
        编码器将源序列 \( X \) 编码成一系列隐状态表示。

(2)解码器处理目标序列前缀
        目标序列前缀(例如,对于目标序列 "I am a student",目标序列前缀是 "\<start> I am a")通过词嵌入和位置编码处理后,输入到解码器。
        解码器的自注意力层和编码器-解码器注意力层能够并行处理目标序列的所有时间步,因为所有输入都是已知的。

(3)并行计算输出
        解码器的各个时间步的计算(包括自注意力计算和前馈神经网络计算)都是并行进行的,生成每个时间步的预测输出。

二、顺序计算在推理阶段的解码器

        在推理阶段(预测阶段),解码器无法使用教师强制,因为目标序列是未知的,需要模型逐步生成。这个过程中涉及顺序计算:

1.初始输入
        解码器的初始输入是特殊的起始标记(如 \<start>)。

2.逐步生成
        在每个时间步,解码器生成一个词,然后将这个词作为下一个时间步的输入。
        生成过程是顺序进行的,因为每个时间步的输出依赖于前一个时间步生成的结果。

三、结合两种计算方式

        训练阶段,利用教师强制并行计算解码器的所有时间步,加速训练过程并提高效率。
        推理阶段,逐步生成序列,依赖于前一个时间步的输出,因而是顺序进行的。

四、示例

        假设目标序列 \( Y \) 为 "I am a student":

训练阶段
        目标序列前缀(解码器输入):"\<start> I am a"
        解码器并行计算每个时间步的输出:"I", "am", "a", "student"

推理阶段
        初始输入:"\<start>"
        生成过程:
        时间步 1: 生成 "I",下一个输入 "\<start> I"
        时间步 2: 生成 "am",下一个输入 "\<start> I am"
        时间步 3: 生成 "a",下一个输入 "\<start> I am a"
        时间步 4: 生成 "student",结束生成

五、总结

        在训练阶段,Transformer的解码器利用教师强制方法进行并行计算,因为所有目标序列的真实值都是已知的。而在推理阶段,由于需要逐步生成序列,解码器采用顺序计算方法。这种设计使得模型在训练时具有高效的并行处理能力,而在推理时能够逐步生成准确的输出序列。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值