赞
踩
自注意力层的任务是计算输入序列中每个位置之间的关系,并生成每个位置的表示。这一过程可以并行处理,因为它并不依赖于前一个位置的计算结果。
自注意力机制的具体步骤
目标序列的前缀(如 "\<start> I am a")经过词嵌入层和位置编码,得到每个时间步的嵌入表示。
对于输入序列的每个时间步,通过线性变换生成查询(Query)、键(Key)、值(Value)向量。对于时间步
并行计算所有时间步之间的注意力得分:
使用注意力得分对值向量
解码器的自注意力机制区别与编码器的自注意力机制还加入了掩码模块,参考我之前的博客Transformer细节(一)——掩码机制-CSDN博客
编码器-解码器注意力层的任务是利用编码器生成的表示来为解码器的每个位置提供上下文信息。这个过程也可以并行处理,因为解码器的每个位置的计算只依赖于编码器的输出和当前解码器输入。
编码器-解码器注意力机制的具体步骤
编码器已经并行处理完源序列
解码器输入目标序列前缀的嵌入表示
从解码器输入
从编码器输出
并行计算每个解码器时间步的查询向量与所有编码器时间步的键向量之间的注意力得分:
使用注意力得分对编码器的值向量
在训练阶段,解码器的自注意力层和编码器-解码器注意力层可以并行处理目标序列的所有时间步,因为使用了教师强制技术,目标序列的前缀是已知的。具体来说,自注意力和编码器-解码器注意力的计算都可以通过矩阵运算在所有时间步上并行完成。这种并行处理使得Transformer模型在训练时效率非常高,能够快速处理长序列数据。
更全Transformer的各层组成和结构,请参考Transformer细节(六)——详解Transformer各层结构和组成-CSDN博客
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。