同样的 Transformer 积木,拼出了完全不同的东西。有人用它理解语言,有人用它生成语言,还有人想出了一种方法让模型拥有万亿参数但只用其中一小部分。

两条路的分叉

2018 年,Transformer 已经证明了自己在机器翻译上的实力。接下来的问题是:能不能把它用在所有 NLP 任务上?

两组人给出了不同的答案,各自开创了一个时代。

BERT:双向理解 (2018)

Google 的团队想做一个能理解语言的通用模型。理解——不是生成——是关键词。

他们的洞察是:要真正理解一个词的含义,你需要同时看它的左边和右边。”银行”在”河岸”旁边和在”贷款”旁边意思完全不同。只从左到右看(像 GPT 那样),你会错过右边的关键线索。

但怎么训练一个”双向”的模型?如果模型能同时看左右,那做”预测下一个词”的训练就没意义了——它直接看到答案了。

BERT 的训练方式很巧妙:随机遮住 15% 的词,让模型猜被遮住的是什么。这叫 Masked Language Model(MLM)。因为被遮住的词可能在任何位置,模型必须学会从两个方向利用上下文。

效果:BERT 在 11 个 NLP 基准上同时创造了纪录。情感分析、问答、推理……它像一个万能的语言理解引擎。微调一下下游任务的最后一层,就能用于几乎任何理解类任务。

GPT:自回归生成 (2018-2020)

OpenAI 走了另一条路:只保留 Transformer 的解码器,做最简单的事——预测下一个词

给模型看 “今天天气很”,它预测 “好”。就这么简单。

听起来很原始?但 OpenAI 的赌注是:如果把这件简单的事做到极致——用更大的模型、更多的数据——会发生什么?

GPT-2(2019,15 亿参数)给出了第一个惊喜:它不只是预测下一个词,它可以写出连贯的文章、编故事、甚至做简单的问答——没有人专门教过它这些。

GPT-3(2020,1750 亿参数)彻底改变了游戏:你给它看几个例子(比如”情感分析:’我爱这部电影’→正面;’简直浪费时间’→”),它就能学会新任务。不需要微调,不需要标注数据。这就是 in-context learning(上下文学习)——一种在 GPT-2 规模上不存在、但在 GPT-3 规模上突然涌现的能力。

两种哲学的本质区别

BERT 和 GPT 其实是对同一个工具的不同使用方式:

  • BERT:能同时看全文(双向),但不能生成新文本。适合理解、分类、问答。
  • GPT:只能从左往右看(单向),但能逐词生成文本。适合写作、对话、创作。

2022 年之后,GPT 路线胜出了——不是因为”理解”不重要,而是因为人们发现”生成”能力在规模足够大后包含了理解。一个能写出好文章的模型,必然已经理解了它在写什么。

但做大有成本

GPT-3 有 1750 亿参数。推理时,生成每个词都要经过所有这些参数——1750 亿次乘法和加法。

这很贵。不只是 GPU 贵——电费也贵,延迟也高。有没有办法让模型”很大”(拥有大量知识),但每次只用其中”一小部分”?

Mixture of Experts:只激活你需要的

想象一家大医院。它有上百位专科医生——心脏科、骨科、眼科、脑科……但一个病人来了,不需要所有医生同时看诊。挂号处根据症状把你分配给 1-2 个相关科室,其他医生该干嘛干嘛。

这就是 Mixture of Experts (MoE) 的核心思想。

flowchart TD
    Token["输入 Token"] --> Router["路由器<br/>(轻量线性层+softmax)"]
    Router --> TopK["选择 Top-K 专家"]
    TopK --> E1["✅ 专家1<br/>FFN₁(x) × 权重₁"]
    TopK --> E2["✅ 专家2<br/>FFN₂(x) × 权重₂"]
    TopK -.->|"未激活"| E3["❌ 专家3"]
    TopK -.->|"未激活"| E4["❌ 专家N"]
    E1 --> Merge["加权合并输出"]
    E2 --> Merge

在标准 Transformer 中,每层有一个”前馈网络”(FFN)——所有 token 都经过同一个网络。MoE 的做法是:把这一个 FFN 替换成N 个独立的小 FFN(称为”专家”),加一个”路由器”来决定每个 token 去哪些专家。

结果:模型的总参数可以很大(因为有很多专家),但每个 token 只激活 1-2 个专家——计算量远小于同参数量的稠密模型。

Switch Transformer (2021):极致简化

Google 的 Switch Transformer 把路由简化到极致:每个 token 只去一个专家(top-1)。

这大大降低了通信开销(不需要把一个 token 的结果从多个专家汇总),也简化了负载均衡。代价是每个 token 能获得的专家知识有限——但通过增加专家数量来弥补。

最大的 Switch Transformer 有 1.6 万亿参数。但因为每次只激活一个专家,实际计算量和一个小得多的模型相当。训练速度比同等计算量的稠密 T5 模型快 4-7 倍。

Mixtral 8×7B (2023):MoE 的实用化

Mistral AI 的 Mixtral 让 MoE 真正走进了实用:

  • 8 个专家,每个 token 选 2 个(top-2 路由)
  • 总参数 467 亿,但每个 token 只激活 129 亿
  • 推理速度相当于一个 13B 的模型
  • 性能超过 LLaMA 2 70B(一个 700 亿参数的稠密模型)

同等质量,推理速度快 6 倍。或者说,同等速度,质量高一个级别。这就是稀疏的威力。

DeepSeekMoE (2024):更精细的专家分工

DeepSeek 团队发现传统 MoE 有一个问题:16 个大专家,选 2 个——组合只有 120 种。这限制了路由的灵活性。

他们的创新:把大专家切成更多小专家。原来 16 个专家选 2 个,变成 64 个小专家选 8 个。组合数暴增,路由可以更精细地匹配每个 token 的需要。

同时,他们留了几个”共享专家”始终对所有 token 开放——处理通用知识(语法、常识),让其他专家可以放心地专注于细分领域。

效果:16B 参数(只激活 2.8B)逼近 LLaMA 2 7B(稠密 6.7B)的性能。同等效果下参数效率提高了一倍。

一个趋势的形成

从 2018 到 2024 年,我们可以看到一条清晰的线:

2018:BERT 和 GPT 证明 Transformer 是强大的通用框架 2020:GPT-3 证明规模带来涌现能力 2021-2023:MoE 证明可以”又大又快”——大不等于慢 2024:混合架构(Jamba、Zamba)证明 Attention 不必占据每一层

每一步都在回答同一个问题:怎么用有限的计算获得最大的智能?

答案从”把模型做大”演变为”把模型做聪明”——不是每个参数每时每刻都需要工作,让该休息的休息,该干活的干活。

下一篇,我们来看另一种”聪明”:不只是模型架构的选择,还有训练策略上的深刻认识——Scaling Laws 告诉我们 AI 进步是可预测的,而对齐(RLHF/DPO)告诉我们如何让强大的模型乖乖听话。