训练一个大模型的流程是这样的:
Tokenization → Embedding → 位置编码→ 前向传播 → 计算Loss → 反向传播→ 梯度裁剪/正则化 → 梯度下降 → 梯度更新
But,你在Transformer架构中有看到前向传播?有看到计算Loss?有看到反向传播?吗?
大家都知道Transformer架构的并行训练直接催生以算力换智力的ChatGPT,吹响了训练LLM的号角。现在LLM能遍地开花,并持续融入和改变大家的生活Transformer架构厥功至伟,功不可没。
可为什么上面这些训练流程中,在Transformer架构中,除了前两个
词元化(Tokenization)和 Token向量化(Embedding)还有位置编码,其它都没有看到!!!

为什么呢?
前向传播、计算Loss 、反向传播 、梯度裁剪/正则化 、梯度下降 、梯度更新 这些动作都跑哪去了呢?
Transformer架构的核心层(自注意力 + FFN + 残差 & 归一化) = 大模型训练流程中的“前向传播”的核心计算部分。
更精确地说,“前向传播” 这个步骤,指的就是输入嵌入向量后,数据依次流过Transformer所有核心层,直到最终输出logits(未归一化的预测分数)的整个过程。

简单地讲,Transformer架构就做了三件事,除了前面的Tokenization、Embedding、位置编码,其它是在做 “前向传播” 这个动作。
为什么这样讲?
大家先想一下,Transformer架构只是改变了大模型的训练过程,在 Transformer一统大模型之前,人家RNN、CNN也训练了很多大模型的,譬如谷歌 DeepMind 开发的围棋 AI的AlphaGo是基于CNN训练出来的。
想到这,是不是有点感觉了?基于神经网络的模型早就有了,训练流程也有经典实践,Transformer只是改良了使用神经网络学习知识的过程,像注意力机制之前已经有了。就像瓦特改良了蒸汽机一样。
下面我们来拆解一下,看看具体的情况。

让我们把上面的8步训练流程和Transformer架构层一一对应起来:
把训练Transformer模型想象成教一个学生做选择题: