学透 Transformer & MOE

学透 Transformer & MOE封面

这篇不是又一篇概念解读,而是一张学习地图

Transformer 和 MOE 不是凭空冒出来的——它们是一层一层垒起来的:先有神经网络,再有 RNN/LSTM 处理序列,然后 Transformer 用注意力一把解决串行和长距离问题,最后 MOE 在不动单次计算量的前提下把模型容量做大。这 37 个概念,就是这条路上的一块块路标。

怎么用这张地图:按下面的五站顺序读,能看懂"全局怎么拼";任何时刻想深挖某一个点,点链接跳到对应的单篇解读就行。每一站前面有一句话说明"这一站在解决什么"。

🧭 推荐学习顺序

如果你是零基础,建议严格按这条线走(先过一遍 PyTorch 极简入门,后面的代码才看得懂):

  1. 打地基神经网络向量神经元权重偏置前向传播激活函数矩阵运算Softmax损失函数交叉熵梯度下降链式法则反向传播优化器学习率过拟合
  2. 看前人的方案RNNLSTM(体会"记性短"的痛)
  3. 拆 TransformerToken 与分词词向量位置编码注意力机制多头注意力残差连接层归一化前馈神经网络因果掩码Transformer 整体架构(收口)
  4. 分清三大流派Decoder-Only/GPTEncoder-Only/BERTEncoder-Decoder/T5
  5. 进阶省显存GQAMLA
  6. 以小博大MOE 基础版稀疏 MOE共享专家

走完这条线,你就能从"一个神经元"一路理解到"DeepSeek 这类现代大模型为什么这么设计"。任何一步卡住,点进对应单篇深挖即可。


🧰 第零站:先认得 PyTorch

这个系列每篇文章都附 PyTorch 代码。如果你对 PyTorch 不熟,先花一刻钟过这一篇——它只教你「读懂本系列代码需要的最小够用集」:张量怎么存、形状怎么变、网络怎么搭、训练循环怎么转。不展开原理(那些系列里逐篇讲),只让你不再卡在 .view().transpose() 这类语法上。

  • PyTorch 极简入门 — 读懂本系列代码的最小够用集:张量、形状操作、nn.Module、训练循环。

🧱 第一站:神经网络基础

Transformer 再神,底层也是一个神经网络。这一站搞定"一个神经网络是怎么训出来的"——数据怎么往前算、误差怎么往后传、权重怎么一点点调好;末尾再串一下 Transformer 之前处理序列的 RNN/LSTM。这些都是后面所有内容的地基。

  • 神经网络 — 一大群会自我纠正权重的"数字助理",把复杂信息压成一个判断。
  • 向量 — AI 里万物皆是一串数字:向量是什么、维度怎么数、点积为什么能衡量"像不像"(神经元、词向量、注意力都靠它)。
  • 神经元 — 网络的最小单元:接收输入 → 加权求和 → 套激活函数。
  • 权重 — 连在每条输入上的可调数,决定这条线索"该听多少":数越大越看重,是训练时要学的核心参数。
  • 偏置 — 神经元里的一个可调常数,像"默认倾向",决定神经元有多容易被激活——和权重一样是训练时要学的参数。
  • 前向传播 — 数据从输入层一路算到输出层、得到预测的过程。
  • 激活函数 — 给网络装上"非线性",否则再深的网络也等价于一条直线(重点讲 ReLU)。
  • 矩阵运算 — 神经网络里那些矩阵相乘,到底在算什么、形状怎么对上。
  • Softmax — 把一堆有正有负的原始得分,变成一组加起来等于 1 的概率。
  • 损失函数 — 用一个数衡量"预测和真相差了多少"。
  • 交叉熵 — 分类任务的标准损失,衡量预测分布和真实分布的差异(和 Softmax 是黄金搭档)。
  • 梯度下降 — 沿着"下坡"方向,一步步把损失往低调。
  • 链式法则 — 反向传播的数学内核:复合函数怎么一层层求导。
  • 反向传播 — 误差从输出层倒流回每一层,告诉每个权重该往哪调。
  • 优化器 — 梯度下降的升级版(SGD / Adam 等),更聪明地更新权重。
  • 学习率 — 每一步走多大:太大会震荡,太小会龟速。
  • 过拟合 — 模型把训练集连噪声都背死了:练习册满分、一到新数据就拉垮(泛化差)。

以上是"一个网络怎么训出来"的训练机制。再顺手过一下 Transformer 之前处理序列的两个循环网络——背景知识,快速浏览即可,看懂它们的痛才知道 Transformer 好在哪:

  • RNN — 一个字一个字读、边读边记的循环网络;致命弱点是记性太短,句子一长就忘。
  • LSTM — 给 RNN 装上"门"(遗忘门/输入门/输出门),缓解长距离遗忘,但仍然是串行计算、仍然偏慢。

🧩 第二站:Transformer 核心组件

这一站是全书重头戏。把一个 Transformer 拆成零件,一个个讲透,最后一篇再拼回整台机器。建议按顺序读——后面的零件依赖前面的。

  • Token 与分词 — 大模型不认字,先把文本切成 token(BPE 子词分词为什么成为主流)。
  • 词向量 — 把 token 变成稠密向量,让语义相近的词在空间里彼此靠近(one-hot 为什么不行)。
  • 位置编码 — 自注意力本身无序,要用位置编码告诉模型"这是第几个位置"。
  • 注意力机制 — 让每个词去"看"其它词;Q/K/V 与缩放点积公式的核心。
  • 多头注意力 — 多个头从不同子空间同时关注不同关系(语法/指代/相邻词)。这是「标准」形态——现代大模型为省显存还演化出 GQA、MLA 等变体,先留个印象,深入见⚡第四站。
  • 残差连接y = F(x) + x,让几十上百层的超深网络也能训(来自 ResNet)。
  • 层归一化 — 把每层数值分布稳住,加速收敛(Post-LN vs Pre-LN 的取舍)。
  • 前馈神经网络 — attention 之后再过一遍 FFN,把非线性塞回去(含现代的 SwiGLU)。
  • 因果掩码 — 生成时不能偷看未来:用下三角遮布把"未来 token"压成 0。
  • Transformer 整体架构收口篇:把上面所有零件串成一台完整机器,并讲清它击败 RNN 的三大优势。

🏛️ 第三站:三大架构变体

同一套 Transformer 零件,有三种主流组装方式,分别擅长不同任务。这一站帮你彻底分清"理解"和"生成"两条路线。

  • Decoder-Only / GPT — 只保留解码器,自回归逐字生成下一个 token(GPT / Qwen / Llama 都是这一类)。
  • Encoder-Only / BERT — 只保留编码器,双向看全文做"理解"(文本分类、情感分析)。
  • Encoder-Decoder / T5 — 双子塔:编码器读懂源序列、解码器生成目标序列,交叉注意力是连接两座塔的桥(机器翻译、摘要)。

⚡ 第四站:注意力变体进阶

大模型推理时,KV 缓存随上下文长度膨胀,成为显存和速度的瓶颈。这一站讲注意力机制怎么"瘦身"。

  • GQA — 分组查询注意力:让多个 Query 头共享同一组 K/V,在精度和速度间取折中(Llama 2/3、Mistral)。
  • MLA — 多头潜注意力(DeepSeek):把 K/V 压成一个低维潜向量再缓存,压得比 GQA 更狠,支撑超长上下文。

🎯 第五站:MOE 混合专家

不动单次计算量、却把模型容量做大的关键架构创新。这一站讲清"以小博大"——参数很多,但每次只激活一小部分。

  • MOE 基础版 — 多个"专家"小网络 + 一个门控 router,把输入加权融合(router / 专家 / 融合三要素)。
  • 稀疏 MOE — 每个 token 只激活 Top-K 个专家,其余不计算:总参数大、单次计算小。
  • 共享专家 — DeepSeek 版:在稀疏 MOE 上加常驻"共享专家"承载通用知识,减少冗余、训练更稳。