文搞懂 LLM 的 Transformer!看完能和别人吹一年

📅 发布时间:2026/7/23 10:54:17
文搞懂 LLM 的 Transformer!看完能和别人吹一年 这篇论文首次提出的 Transformer 架构已经成为当下所有大模型的基础。今天我们就从这篇最初的论文出发真正理解下 Transformer 究竟是何方神圣。本文不讨论公式只解读图表旨在让更多读者看完就能通俗地、成体系地给身边其他人讲清楚 Transformer 工作原理从而真正理解它究竟为什么如此火爆。首先先引用这篇论文中的关于 Transformer 这个模型的整体架构图上来直接就看架构图是不是有些晕没关系下面我们就来一步步通俗理解下这张架构图的深层含义。图的左边一侧Input输入整体代表Encoder右边一侧Output输出整体代表Decoder。01输入是怎么被 Transformer“看懂”的整个输入流程你只需要先记住下面的关键流程词 → 向量 → 加位置 → Q/K/V → 注意力 → FFN → 输出然后我们来一点一点看。① Input Embedding把词变成数字向量模型不认识“我”、“你”、“猫”这些词只能接受数字。所以需要把每个词转换成一个向量也就是一组数字例如我 → [0.12, -0.88, 0.43, …]这里简化了精度方便阅读向量化这一步非常基础但也是理解后面一切的起点。② Positional Encoding给模型装上“位置感”Transformer 没有像传统 RNN 那样按顺序逐词处理输入因此模型本身无法“天然”感知词的先后关系。所以需要额外告诉模型“这是第 1 个词这是第 2 个词……”论文使用了 sin cos 函数计算的位置编码方式让每个词清楚自己的“位置”。sin/cos 位置编码乍一看有点数学味但对模型来说是非常简单高效的。它像给每个位置贴上一段独一无二的“节奏标签”让 Transformer 能分辨词的“位置”同时又不需要多余的训练成本。③ Q / K / VSelf-Attention 的灵魂这是最让人拍案叫绝的设计之一。句子中的每个词都会生成 3 个向量QQuery我想找什么KKey我是谁我有什么特征VValue我的实际含义是什么它们不是概念而是实实在在的矩阵乘法结果。接下来句子里的每个词都会拿着自己的 Q 到其他词的 K 那里去“打分”问“你跟我有多相关”打分越高就越关注这个词。最后对 V 进行加权求和得到“新含义”。这就是单一的 Self-Attention。02为什么需要 Multi-Head Attention有了单一的 Self-Attention为啥又需要 Multi-Head Attention 呢因为我们需要从多个角度来理解自然语言。注意力头的数量是一个超参Hyperparameter每个注意力头可以关注不同的视角例如有些头专注于主谓关系有些头捕捉代词指代有些头看句子情感有些头看名词短语边界有些头看长距离依赖有些头捕捉句法树结构…Transformer 不是只看一个角度论文中的例子是并行开 8 个注意力头。实际可以开12 个、48 个甚至更多的注意力头从更多视角扫描句子。下图是论文最后给出的一个简单示例描述了针对同一段文字两个不同的注意力头所展现出的各自关系可以看到确实存在明显区别这就是 Multi-Head Attention 的直观体现。03残差连接 LayerNorm让训练更稳定Self-Attention 只是“加工”了一遍词向量但我们肯定还不能丢掉原始信息。于是原始输入 注意力结果 → 做 LayerNorm 归一化对应架构图中 Add Norm这个残差结构让训练稳定得多也能堆更多层。04Feed Forward 网络FFN进一步加工语义Attention层负责广撒网把相关信息搜集到一起FFN则负责深加工对这个信息进行更复杂、更深度的非线性变换。又晕了其实通俗来讲就是Attention 负责找关系FFN 负责提升表达力。论文中描述FFN的关键内容参考如下简单理解它就是一个非常朴素的两层全连接网络Linear → ReLU → LinearFFN 的结果是让每个 token 得到更丰富、更抽象的特征表达这样模型才能表达更复杂的模式而不仅仅是做简单的线性组合。05重复 N 次论文是 6 层可以加更多论文里 Encoder Nx 这里是堆了 6 层。但这其实也是一个 超参Hyperparameter。后来的 BERT、GPT、Llama 都堆到了几十层甚至上百层。一般来讲层数越多、模型越大、理解力越强。这其实也是模型训练堆GPU能“大力出奇迹”的理论基础。06Decoder 如何像人一样“输出”内容Decoder是模型的“写作器”其工作严格遵循架构图右侧流程核心是 “从左到右逐词生成”。为了理解这个过程我们以翻译任务为例输入 “I Love You”输出 “我爱你”。① Output Embedding先把输出词变向量理解方式和输入一样每个词被映射成一个向量用于后续计算。② Shifted Right防止模型“偷看答案”在模型训练阶段需要把标准答案整体右移一位并在开头加上起始符 相当于给模型做一个填空题题目: 我 爱此时模型看到的是我 爱