[控场AI]
· 3 分钟阅读· 1,932 字

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

从零推导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,路径大致是:

  1. 输入嵌入 + 位置编码
  2. 多头自注意力
  3. 前馈网络(两层MLP)
  4. 残差 + LayerNorm 包裹每个子层
  5. 堆叠N层
  6. 输出头

编码器负责理解输入,解码器负责生成输出,中间用交叉注意力连接。这套结构没有一处是“必须这样”,每一处都能追溯到某个具体约束。理解约束,比记住结构更重要。

原作者想强调的正是这种可推导性:Transformer不是需要背诵的咒语,而是可以重新走一遍的推理过程。对想真正掌握它的人来说,这比背下论文公式有用得多。

#Transformer#注意力机制#多头注意力#位置编码#RNN#深度学习架构#自注意力
分享:

相关推荐