Appearance
架构·Transformer:那颗祖师爷
要懂 MoE,先得懂它的老底子——Transformer。这东西堪称大模型世界的"蒸汽机":2017 年一篇论文横空出世,之后几乎你能叫上名的所有模型,都是它的子子孙孙。ChatGPT 是它,Claude 是它,Llama 是它,DeepSeek 的底子也是它。
这一篇不堆公式,只讲清楚三件事:
- Transformer 解决了什么天大的问题,才一举封神?
- 它的核心机制到底是啥意思?
- 它靠什么吃饭,又有什么天生的软肋?
它之前的世界:为什么"记性"是最大的瓶颈
想象你要让机器写一段话。最早的循环神经网络(RNN)是这么干的:一个字一个字地读,读完把这个字的"印象"传给下一个字。 一句话里有顺序,它靠一个队列去传递"上下文记忆"。
听着挺合理,可一旦句子变长,就很糟糕:
- 记不住前面:读到第 100 个字时,第 3 个字的"印象"早被冲淡得没影了。这叫人话叫长依赖丢失——前面说了啥,后面忘了。
- 不能同时干活:因为只能一个字接一个字地排队等,没法一次把整句话一起处理。处理速度被卡在"串行"上,想加速非常难。
Transformer 想讲的其实是句大白话:"别一个字一个字传话了,干脆把整句都摆上台面,每个字都能同时看看其他所有字,自己决定谁重要。"
核心机制:自注意力(Self-Attention)
Transformer 最关键的一招,叫自注意力。名字唬人,意思很简单——让句子里的每个词,自己回头打量所有别的词,算出"谁对我最重要"。
举个例子,"小明把球递给小红,因为他喜欢她"——这里的"他"指谁?"她"指谁?靠一个一个字顺序读很难,但自注意力会让"他"主动去"看看"附近的词,发现"小明"跟"他"关系最近,于是"他"就联系上了"小明"。
这个过程拆细一点,是三步:
- 每个词先把自己问一个问题:我该怎么看别人才合适?(生成了"查询")
- 每个词也把自己包装一下:我身上有什么值得别人注意的?(生成了"键")
- 两两配对打分:每个词拿自己的"查询"去跟所有词的"键"比,算出一个亲密度,越亲密权重越大。
于是,一句话里任意两个词之间的关联度都被精确算出来了。长句不再记不住,因为"他"和"小明"隔多远都能直接"看对眼"。
你可以把它理解成:整句话是一群人,自注意力就是让每个人同时环顾四周,掂量谁跟自己的关系该更亲。关系谱记成一张表,谁重要一目了然。
它凭什么封神的两大功劳
功劳一:能抓住"远距离"和"关系"了。 因为所有词之间是直接"两两对视"的,前面的信息不会被冲淡,很远的关键词也能被照顾到。这让模型真的能做到"理解上下文",而不是"猜下一句"。
功劳二:可以并行计算,速度飞起。 所有词之间的"打分"互相独立、可以同时算。就像一屋子人同时两两对眼神,而不是一个一个传话。这让大模型可以靠堆芯片、堆算量把规模做大——能吃进海量数据去训练,模型智商跟着水涨船高。
它的"软肋":越想越大,越烧钱
Transformer 没有免费的午餐。它有个著名的麻烦,叫**"注意力平方"**——意思是一句话里如果有 N 个词,它要计算的关系数量大概是 N 的平方;句子加长一倍,计算量要暴涨四倍。
于是:
- 处理短文本,很从容;
- 处理超长文档,运算成本像坐火箭一样往上蹿。
这个软肋,直接催生了后面的两派人:MoE(想在"不动结构的前提下换个更省的方式变大")和线性架构(想从根上换掉这个平方复杂度)。接下来两篇就是它们的故事。
小结
Transformer 靠"让所有词同时两两看"解决了记性和速度两大难题,封神为一切模型的祖师爷。但它的"越多越烧钱"的软肋,也埋下了 MoE 和线性架构出场的伏笔。
下一篇,架构·密集型与 MoE:一对亲兄弟,就讲你早就好奇的 MoE——它究竟怎么在最贵的 Transformer 上"开源节流"。