Transformer 是一种让所有词同时互相看彼此的神经网络而不是像之前的 RNN 那样一个字一个字地读。一、为什么要抛弃 RNN先看痛点在 Transformer 出现之前处理语言的主流方法是RNN循环神经网络它像人一样一个字一个字地读——必须处理完第1个字才能处理第2个字依此类推。三大致命缺陷问题具体表现串行瓶颈无法并行1000个字的句子要走1000步GPU利用率极低梯度消失第1个字的信息传递到第1000个字时梯度近乎为零忘了开头说了什么长距离依赖弱小明……中间500字……他喜欢中的他很难关联回小明Transformer 的核心思路是把一个字一个字读改成所有字同时互相看一步到位捕捉所有位置间的关系。二、整体架构总览先看整体骨架 三、词嵌入Token Embedding把文字变成数字新手核心问题计算机怎么理解苹果这个词计算机只认数字所以第一步是把所有词映射成一个高维数字向量比如 768维或 4096维的浮点数列表。词表把所有可能的词/子词列成一个大表3.2万12.8万个每个词在表里有一个编号Token ID通过嵌入层一张巨大的查找表编号 → 向量类比就像字典但字典里每个字的解释是一串768个数字而不是文字说明。四、位置编码Positional Encoding告诉模型你在第几位新手疑问Transformer既然所有词同时看那它怎么知道我爱你和你爱我是不同的意思答全靠位置编码。每个词的向量 该词所在位置的向量叠加在一起模型就能区分位置1的我和位置3的我 。现代升级——RoPE 旋转位置编码原始 sin/cos 位置编码有个缺点训练时只见过512个位置推理时遇到1000个位置就懵了。LLaMA、Qwen 等大模型用的RoPE通过旋转矩阵编码相对位置外推能力更强支持 32k、128k 甚至更长上下文。五、核心灵魂自注意力机制Self-Attention这是整个 Transformer 最难理解、也最重要的部分。用一个生活类比来理解你在读银行存了钱然后去河岸散步这句话。看到银行时你的大脑会自动把它和钱关联而非河岸。这种词与词之间的关联度计算就是注意力机制在做的事。三个角色——Q、K、V名称全称类比作用QQuery查询你想找什么当前词发出的提问KKey键档案的标签每个词的索引标签VValue值档案的内容每个词实际携带的信息计算步骤5步用当前词的Q去和所有词的K点积 → 得到相似度分数除以 √d√d 是一个缩放系数防止点积值过大导致 Softmax 梯度消失是让 Transformer 能正常训练的关键细节。防止数值过大梯度消失 →缩放过 Softmax 归一化 → 得到 0~1 的注意力权重所有词权重之和1把数字变成概率分布用权重对所有词的V加权求和 → 得到融合了上下文的新表六、多头注意力Multi-Head Attention同时从多个角度看新手疑问为什么需要多个头head单头注意力一次只能聚焦一种语义关系。比如处理小明让小红帮他做作业时第1个头 → 专注指代关系他小明第2个头 → 专注动作关系让的施受者第3个头 → 专注实体关联人物关系……通常 832 个头多个头并行计算最后把结果拼接起来表达能力远强于单头。类比用多台摄像机从不同角度拍同一场景最后剪辑在一起比单一视角信息更丰富。七、掩码MaskGPT 类模型如何防止作弊GPT 在训练时是给定前文预测下一个词——但如果训练时允许模型偷看答案后面的词那预测就没意义了。掩码自注意力用一个下三角矩阵把未来的词遮住这就是单向的含义。八、前馈神经网络FFN注意力之后的深度加工注意力层负责收集信息从其他词那里取来相关内容FFN 层负责深度加工对每个词的向量做独立变换。结构很简单两层线性变换 一个激活函数。组件作用类比第1层线性升维例768→3072把信息展开成更大空间激活函数引入非线性GELU/SwiGLU筛选有用的特征第2层线性降维3072→768压缩回原始维度九、残差连接 层归一化训练稳定性的关键这两个组件不显眼但极其重要——没有它们几十层深的 Transformer 根本训练不收敛。残差连接Residual Connection输出 子层(x) x ← 把输入直接加回来好处梯度可以直接从后面跳回前面不用穿越重重非线性有效防止梯度消失。类比高速公路旁边还有辅路——主干道走注意力/FFN辅路直接走原始信号两者汇合。层归一化LayerNorm把每层的激活值归一化到均值0、方差1防止数值爆炸让训练更稳定。为什么这能解决梯度消失训练时梯度要从最后一层反向传回第一层。每经过一个子层梯度就要乘以该层的导数——如果导数小于 1乘几十次就接近 0 了梯度消失。十、训练 vs 推理两种完全不同的工作模式十一、现代大模型的关键优化优化点原始设计现代大模型改进代表模型位置编码绝对正弦/余弦RoPE 旋转位置编码LLaMA、Qwen、GPT激活函数ReLUGELU / SwiGLULLaMA2/3、Qwen归一化Post-LN LayerNormPre-LN RMSNormLLaMA、Mistral注意力效率标准 MHAGQA 分组查询注意力LLaMA3、Qwen2显存优化标准注意力FlashAttention几乎所有主流模型超大模型全激活 FFNMoE 混合专家Mixtral、DeepSeek几个名词解释RMSNormLayerNorm 的简化版省掉均值计算只保留方差归一化速度更快效果相当GQA分组查询注意力多个 Q 头共享一组 K/V大幅减少显存推理速度提升 2-4×FlashAttention重写注意力计算内存访问模式减少显存读写次数对用户透明MoE混合专家FFN 拆成 N 个专家网络每次只激活其中几个实现万亿参数量但计算成本只有百亿的效果十二、复杂度一眼看懂自注意力O(n² × d) n 序列长度d 向量维度 ↑ 瓶颈在 n²序列加倍 → 计算量变4倍RNNO(n × d²) ↑ 瓶颈在 d²短序列时比 Transformer 慢结论短文本512 tokens→ Transformer 完全碾压 RNN超长文本100k tokens→ 需要滑动窗口、稀疏注意力Mistral Sliding Window或 FlashAttention 降低 n² 开销十三、一句话总结各核心组件组件一句话理解Token Embedding词嵌入把文字翻译成数字向量Positional Encoding位置编码在向量里塞入这个词排第几位的信息Self-Attention自注意力机制每个词去问所有词你和我有多相关加权收集信息Multi-Head多头注意力同时从8/16/32个角度做注意力并行捕捉不同语义关系Masked Attention掩码遮住未来的词保证自回归生成合法Cross-Attention让解码器看一眼编码器的全局理解翻译/多模态用FFN前馈神经网络对每个词独立做非线性变换深度加工语义残差连接给梯度开辟直行通道防止训练崩掉LayerNorm/RMSNorm每层数值归一化训练稳定KV Cache推理时缓存已算的 K/V不重复算提速数倍看完之后是不是有所收获呢若有内容不当的地方欢迎交流