【LLM】从零开始学大语言模型 | 5 | Transformer

从多头注意力到完整 Transformer Block:结构、原理与训练逻辑的系统讲解 本文假设你已经了解词向量、位置编码以及单头 Self-Attention 的基本思想。在这个基础上,我们继续向前推进:为什么单头注意力不够用?多头注意力到底在做什么?Attention 之后为什么还要接一个前馈网络?残差连接和层归一化为什么是深层 Transformer 能够训练的关键?最终的 Transformer Block 又如何组成一个完整的语言模型? 我们会尽量把这些问题放在同一条主线里讲清楚:以一个"预测下一个词"的语言模型为例,从输入词向量开始,一步一步说明数据如何被加工,参数如何被训练,以及每个组件为什么必须存在。 一、从任务出发:Transformer 在语言模型中做什么 1. 语言模型的核心任务 为了让讨论有明确的目标,我们采用现代大语言模型最常见的训练任务之一:预测下一个词。 给定一句话的前半部分,例如: 今天天气真好,我想去 模型的任务是预测下一个最可能出现的词,例如: 公园 这看起来只是"猜下一个词",但要做好这件事,模型需要理解词义、语法、指代关系、常识推理,甚至语气和语境。因此,Transformer 并不是简单地查表,而是要把原始词向量逐层加工成更适合预测的语义表示。 2. Transformer 的整体流水线 一个典型的 Decoder-only 语言模型,前向过程大致可以概括为: 词编号 → 词嵌入与位置编码 → 多个 Transformer Block → LM Head → 下一个词的概率分布 更具体地说: 输入文本首先被切成 token,并转换为整数编号。 每个 token 编号通过词嵌入矩阵变成一个稠密向量。 为了让模型知道 token 的位置,再加入位置编码。 得到的向量矩阵进入第一个Transformer Block。 经过多个 Block 的逐层加工后,得到更高层的语义表示。 最后的 LM Head 将某个位置的隐藏向量映射到词表大小的 logits。 通过 Softmax 得到下一个词的概率分布。 如果输入序列的形状是 [batch_size, seq_len, d_model],那么经过每一个 Transformer Block 后,形状通常保持不变,仍然是 [batch_size, seq_len, d_model]。也就是说,Block 的工作不是改变序列长度或向量维度,而是不断改变每个 token 向量内部的语义内容。 ...

August 21, 2026 · 6 min · 1135 words · c.w.