从零推导Transformer:你也能凭记忆发明它

Transformer并非魔法,而是从RNN瓶颈推导出的可复现工程选择,理解约束比背诵结构更重要。
文章指出Transformer并非从天而降的魔法架构,而是从RNN的串行瓶颈出发,一步步推导出来的工程选择。RNN按时间步处理序列,无法并行且长距离依赖衰减,LSTM和GRU的门控机制只是缓解而非根治。真正的突破是换一个问法:让每个位置直接访问全局信息,于是注意力机制成为自然答案,其核心公式softmax(QKᵀ/√d)V本质就是加权求和。多头注意力、位置编码、残差连接与LayerNorm都不是理论必需,而是针对表达能力、顺序缺失、深层训练等具体约束的自然扩展。作者主张,从需求出发重新推导结构,比死记API和论文公式更能让人真正掌握Transformer。
为什么说“你可以凭记忆发明Transformer”?
最近在Hacker News上有一篇讨论度很高的文章,标题非常直白:“You could have invented transformers from memory”。它想传达的核心观点并不复杂——Transformer并非某种从天而降的魔法架构,而是一步步从已有概念中自然长出来的工程选择。如果你理解了注意力机制要解决什么问题,再把它拆成矩阵乘法和加权求和,你会发现整个结构其实是可以“重新发明”出来的。
这种视角对学习者很有价值。很多教程直接从nn.MultiheadAttention写起,让人误以为必须记住某个API才能理解模型。但真正的理解路径恰恰相反:先有需求,再有设计。
从RNN的瓶颈说起
要理解Transformer为什么长成这样,得先回到它要取代的东西。循环神经网络(RNN)按时间步处理序列,第t步的隐藏状态依赖第t-1步。这带来两个硬伤:一是无法并行,训练速度被序列长度卡死;二是长距离依赖会衰减,早期信息传到后面已经所剩无几。
LSTM和GRU试图用门控机制缓解遗忘,但本质上仍是串行计算。真正的突破口不是把RNN改得更好,而是换一个问法:能不能让序列中每个位置直接看到所有其他位置?
这个问法一旦提出,注意力机制就成了自然答案。
LSTM(长短期记忆网络)通过遗忘门、输入门和输出门三个门控机制,让网络学会选择性地保留或丢弃历史信息,从而缓解梯度消失带来的长距离遗忘问题。GRU(门控循环单元)是LSTM的简化版本,把三个门合并为更新门和重置门两个门,参数更少、训练更快,在许多任务上效果接近LSTM。然而两者都保留了按时间步依次计算的结构,第t步必须等第t-1步完成,因此并行化依然无解。这个本质限制说明:只要沿用循环结构,无论门控设计多么精巧,都无法同时解决并行与长距离依赖两个问题。
注意力机制:一句话就能说清楚
注意力的直觉是:每个词在理解自己时,应该参考句子里其他词的信息,参考多少由相关性决定。数学上就是三样东西——Query、Key、Value。
- Query:当前位置“我在找什么”
- Key:每个位置“我有什么标签”
- Value:每个位置“我实际提供的信息”
用Query和所有Key做点积,得到相关性分数,softmax归一化成权重,再对Value加权求和。写成公式就是 softmax(QKᵀ/√d)V。这个式子没有任何神秘之处,它就是加权平均。
所谓“凭记忆发明”,指的就是:只要你从“让每个位置直接访问全局信息”这个需求出发,推导到加权求和,就已经复现了注意力的核心。
多头、位置编码与残差:工程上的必然
单头注意力只能捕捉一种相关性模式。多头注意力就是并行跑多组Q/K/V,让模型同时关注语法、语义、指代等不同维度。这不是理论必需,而是表达能力上的自然扩展。
位置编码则解决另一个问题:注意力本身对顺序不敏感,打乱词序结果不变。必须显式注入位置信息,无论是正弦编码还是可学习嵌入。
残差连接和LayerNorm也不是装饰。深层网络难训练是普遍问题,残差让梯度有捷径可走,LayerNorm稳定分布。这些组件在ResNet时代就已经是标配,Transformer只是把它们组装进来。
LayerNorm(层归一化)与BatchNorm不同,它是在单个样本内部对所有特征维度做归一化,而非跨样本的batch维度。这使得它在序列长度可变、batch较小的场景(如NLP)中更加稳定,也避免了训练与推理阶段统计量不一致的问题。残差连接则由ResNet在2015年提出,核心是让网络层学习"残差"而非完整映射,使梯度能够通过恒等路径直接回传,从而训练上百层的深层网络。Transformer把这两个组件组合成"前置LayerNorm + 残差"的标准子层结构,是深度学习工程实践的集大成,而非全新发明。
把Transformer拆成可复现的积木
如果从记忆里重建一个Transformer,路径大致是:
- 输入嵌入 + 位置编码
- 多头自注意力
- 前馈网络(两层MLP)
- 残差 + LayerNorm 包裹每个子层
- 堆叠N层
- 输出头
编码器负责理解输入,解码器负责生成输出,中间用交叉注意力连接。这套结构没有一处是“必须这样”,每一处都能追溯到某个具体约束。理解约束,比记住结构更重要。
原作者想强调的正是这种可推导性:Transformer不是需要背诵的咒语,而是可以重新走一遍的推理过程。对想真正掌握它的人来说,这比背下论文公式有用得多。
相关推荐

特斯拉Roadster为何要会飞?深度拆解马斯克的疯狂演示
特斯拉Roadster发布会演示了爬墙、倒立与飞跃特技,但The Vergecast拆解后指出:演示车或拆除电池、Rocket版为邀请制且不合法上路,官网条款甚至不保证交付。跳票九年后,这台车为何仍需存在?

AI不是替代者:从工厂根因分析看人机协作
从工厂根因分析场景出发,解析AI如何加速证据链构建而非替代人类专家,探讨「AI支持人而非取代人」的务实落地逻辑与商业价值。

AI Agent决策审计:受监管流程中的证据链怎么建
从Reddit讨论出发,分析受监管流程中AI agent决策审计的三个核心问题:审计记录该包含哪些字段、错误决策的反馈延迟如何应对、以及LLM评审员与人类判断的一致性如何持续校准。