一、总述
在训练阶段,Transformer编码器及解码器均并行处理数据;
在推理阶段,Transformer编码器并行处理数据,解码器顺序处理数据。
二、并行处理的数据
Transformer模型的并行处理主要体现在编码器和解码器中的自注意力机制以及编码器-解码器注意力机制上:
1. 编码器的并行处理
在编码器中,整个源序列可以同时被处理。通过自注意力机制,每个位置的向量都能够同时与序列中的其他位置交互,计算注意力权重并进行加权求和。
所有位置的计算都是并行进行的,因为每个位置的计算仅依赖于输入序列中的其他位置,而不依赖于前一个位置的计算结果。
2. 解码器的并行处理(在训练阶段)
在训练阶段,目标序列的前缀部分(即已生成的部分)可以并行地输入到解码器中,进行自注意力和编码器-解码器注意力的计算。
尽管解码器计算的是每个位置的输出,但是由于使用了“教师强制”(teacher forcing)方法,解码器可以并行计算所有时间步的输出,因为每个时间步的输入(目标序列前缀)都是已知的。
三、时间步的概念
时间步的概念主要在解码器的推理(推断)阶段,因为推理阶段是一个逐步生成目标序列的过程。
推理过程中的时间步
在推理阶段,解码器需要根据已经生成的序列部分逐步生成下一个元素。这是一个顺序的过程,因为每一步生成的结果会作为下一步的输入。
初始输入是特殊的起始标记(例如 \<start>)。然后,模型生成第一个词并将其作为输入,接着生成第二个词,如此循环,直到生成结束标记(例如 \<end>)或达到最大生成长度。
四、并行与顺序生成的结合
虽然Transformer模型在训练阶段和自注意力计算中能够进行并行处理,但在推理阶段,由于序列生成的性质,仍然需要逐步生成序列。以下是两者结合的解释:
1.训练阶段的并行计算
编码器和解码器能够并行计算,因为目标序列前缀的所有位置都是已知的,计算可以在同一时间进行。
自注意力机制和前馈神经网络层都能够并行处理所有位置的计算。
2.推理阶段的顺序生成
在推理阶段,每一步生成的词需要作为下一步的输入,这导致了顺序性的不可避免。
尽管如此,单个时间步内的计算(例如注意力计算和前馈层计算)仍然可以并行化,只是生成过程需要逐步进行。
五、总结
1.并行处理
Transformer模型通过自注意力机制和前馈神经网络层,实现了编码器和解码器内部的并行计算,这使得模型在处理长序列时具有显著的计算效率。
2.时间步和顺序生成
在解码器的推理阶段,生成序列的过程是逐步进行的,这涉及到时间步的概念,因为每一步的输出会作为下一步的输入。
通过上述机制,Transformer模型在训练时通过并行处理加速计算,而在推理时逐步生成序列,结合了并行计算的效率和顺序生成的灵活性。