40 分钟
大模型内核:从经典机器学习到对齐与前沿

Encoder、Decoder 与现代大模型架构:从 BERT/GPT 到 MoE

讲清编码器、解码器、编码器-解码器三种架构的区别与各自适合的任务,重点理解仅解码器路线为何成为生成式大模型主流,以及因果掩码、KV Cache、MoE 稀疏专家这些现代架构的关键机制

  • 区分 Encoder-only / Decoder-only / Encoder-Decoder 三类架构与代表任务
  • 理解因果掩码如何保证自回归生成「只能看左边」
  • 理解训练并行与 KV Cache 推理加速的关系
  • 建立对 MoE 稀疏专家、参数量与计算量关系的正确直觉

三种架构,三种注意力可见范围

同样是 Transformer Block,堆叠方式和注意力能看到谁,决定了模型擅长什么。区别的核心是掩码(mask):它规定每个位置允许关注哪些位置。

三大架构谱系
Encoder-only(双向)

每个词能看到左右全部上下文

双向注意力

擅长理解/编码:分类、抽取、语义向量

代表路线:BERT 类

Decoder-only(单向/因果)

每个词只能看它和它左边

因果掩码,适合逐词生成

擅长生成:对话、写作、通用大模型

代表路线:GPT 类,现代大模型主流

Encoder-Decoder

编码器双向读输入,解码器因果生成并交叉注意输入

擅长输入到输出的转换:翻译、摘要

代表路线:T5 类

因果掩码:自回归生成的护栏

Decoder 训练时整句是一次性并行喂进去的(教师强制),但生成任务要求第 i 个词只能依据前 i−1 个词预测,绝不能「偷看答案」。因果掩码是一个下三角矩阵:把右上部分(未来位置)的注意力分数设为负无穷,Softmax 后权重为 0,于是每个位置只能关注自己和左侧。这样训练目标和逐词生成的推理方式完全一致。

Decoder-only 的训练与生成

训练:整句并行,因果掩码挡住右侧未来词

学会 P(第i词 | 前i−1词)

推理:从左到右逐词采样生成

已生成内容作为新的左侧上下文

KV Cache:让逐词生成不必每次重算

自回归生成时每新增一个词,朴素做法是把整句重新算一遍注意力,代价随长度平方增长、极其浪费。注意到历史词的 Key、Value 在它们生成后就不再变化,于是把它们缓存下来(KV Cache):每步只算新词的 Q,去和缓存里全部历史 K/V 做注意力,再把新词的 K/V 追加进缓存。这是大模型推理加速的标准机制,代价是占用显存——也是后续各种推理优化(分页注意力、量化 KV)的对象。

ℹ️训练并行 vs 推理串行

训练时整句并行(靠因果掩码保证不偷看),所以训练高效;推理生成天然是一个词接一个词的串行过程,靠 KV Cache 避免重复计算。理解这对矛盾,就理解了很多推理工程优化的出发点。

MoE:把「参数量」和「计算量」解耦

稠密模型每个输入都要经过全部参数。混合专家(MoE)把前馈层换成多个「专家」子网络,再加一个路由器(门控):每个 token 只被分给少数几个专家计算。于是模型可以拥有极大的总参数量(知识容量大),但每个 token 实际激活的参数很少(单步计算可控)。

MoE 稀疏激活:总参数大、单 token 计算小

token 进入 MoE 层

路由器为它打分、选 Top-k 专家

只激活被选中的少数专家计算

其余专家不参与,省算力

按路由权重加权合并输出

MoE 的代价是显存仍要装下全部专家、且负载均衡与路由稳定性是工程难点。它体现了一个重要直觉:模型「有多少知识(总参数)」和「每次调用多少算力(激活参数)」可以分开设计。

🐍建立架构判断力

今天绝大多数通用对话/生成式大模型走 Decoder-only + 因果掩码 + KV Cache 推理这条主线,再叠加 RoPE、RMSNorm、SwiGLU、MoE 等改进。不必追每个新名词,先把「注意力可见范围、训练/推理方式、参数/计算关系」这三把尺子拿到手,任何新架构都能快速定位。

选择题

Decoder-only 大模型中的「因果掩码」作用是?

资深工程师加餐

底层原理 · 大厂视角 · 工程经验,点卡片展开

从线性回归到神经网络,本质都一样:定义一个带参数的函数 fθ(x),用损失函数衡量它和真实答案的差距,再沿梯度方向更新参数。监督、无监督、强化学习的区别,只在「训练信号从哪里来」。先把这套统一视角立住,后面遇到的任何模型都是它的具体实例,就不会被层出不穷的名词淹没。