参考

李沐:Transformer论文逐段精读【论文精读】https://www.bilibili.com/video/BV1pu411o7BE/

李宏毅:台大李宏毅自注意力机制和Transformer详解 https://www.bilibili.com/video/BV1v3411r78R/

3Blue1Brown:直观解释注意力机制,Transformer的核心 https://www.bilibili.com/video/BV1TZ421j7Ke/

transformer笔记.pptx


概览

需要区分训练模式和推理(测试)模式,这可能是初学者容易混淆的地方。

训练模式

Teacher Forcing:模型采用真正的目标序列作为解码器输入,以便学习目标的条件分布。加速了训练收敛,并避免错误传播。

具体步骤:

1)解码器输入: 解码器在每个时间步使用目标序列的前一个token作为当前时间步的输入;

2)掩码机制: 使用masking确保每个时间步只能看到之前的token,而不能看到未来的token。

组件 类型 输入 输出
Encoder Teacher Forcing 源序列经过词嵌入 + 位置编码 上下文向量 Enc_output
Decoder Autoregressive 右移一位的目标序列 对目标序列中每个位置的预测

推理模式

Autoregressive:在实际生成文本时,解码器基于已生成的token来逐步生成下一个token。解码器在每一步生成下一个token,然后将生成的token反馈到解码器的下一个时间步。

具体步骤:

1)初始输入: 解码器首先输入一个BEGIN token;

2)逐步生成: 在每个时间步生成一个token,并将这个token作为输入反馈到解码器的下一个时间步,一直到生成END token或达到最大长度。

组件 输入 输出
Encoder(推理时只执行一次) 源序列 上下文向量 Enc_output
Decoder(Autoregressive) 起始符 <BOS> 预测第一个 token
Decoder(后续步骤) 上一步预测的 token 拼接到当前输入序列 预测下一个 token

具体架构

本节将介绍Transformer的核心组成部分:编码器(Encoder)、解码器(Decoder)、注意力机制(Attention)、位置感知前馈神经网络、Embeddings and Softmax以及Positional Encoding。

Encoder

Decoder

Attention

Scaled Dot-Product Attention

Masked Attention

Cross Attention

Multi-Head Attention

总结

Attention应用 解释 图片
编码器的Multi-Head Attention K, V, Q都源自原始输入本身(Self);
权重来源与本身与各向量之间的相似度;
Multi-Head下,学习h个不同的距离空间。
解码器的Masked Attention 和上面不同之处在于,后面的向量的权要设为0。
解码器的Cross Attention K, V来自于编码器的输出,Q来自于解码器Masked Attention的输出。
eg.编码器输出'Hello', ‘world'的向量,解码器输入了'你', '好', ‘世', ‘界'的向量,那么'好'的query查询'Hello'的key-value对,相似度较高;查询'world'的相似度较低。

位置感知前馈神经网络

模型类型 信息流方向 是否共享时间步信息 能否并行
RNN (Recurrent Neural Network) 串行 (time-step by time-step) ✅ 是,每个时刻依赖上一个隐藏状态 image ❌ 否(必须顺序计算)
Transformer + Position-wise FFN 并行(所有位置同时) ❌ 否,FFN 对每个位置独立 ✅ 是(所有位置一起算)

Embeddings and Softmax

Positional Encoding

实验