初探TransFormer

简述

Transformer是现今所有LLM的底层架构,作为序列模型彻底抛弃了RNN的循环结构,完全依赖注意力机制。

Transformer原始架构由多层编码器和多层解码器两个部分组成,其内部和连接引入了三种多头注意力来保证序列之间的语义性,又有逐位前馈神经网络来保证每个词语在每个序列位置中的特征。在外部引入了位置编码让模型感知语序,利用残差连接和层归一化保证模型梯度。

此外,单独的编码器代表模型有bert,解码器则是GPT。

相比RNN的串行,Transformer支持全量并行计算,极大提升了训练效率;相比CNN,它拥有全局感受野。这些特点保证了在堆参数的数量和质量下保证模型不过拟合。

不过,自注意力机制需要计算序列中每一个词与所有词的相关性,计算复杂度的平方级增长(O(n2)O(n2) 复杂度)。同时,过度依赖空间位置和数据量,带来极高的训练门槛和训练成本,同时有上下文窗口限制,内存占用随序列长度线性增长。

未来:

“Mamba 是 2023 年提出的一个挑战 Transformer 的新架构,它的核心是状态空间模型(SSM)

和 Transformer 每次都要看全部历史不同,Mamba 把所有历史信息压缩成一个固定大小的‘内部状态’,每次只更新这个状态。这让它的计算复杂度和内存占用从平方级降到了线性,在处理超长序列时,推理速度能快好几倍,显存占用也低得多

当然,它也有短板,比如早期的 Mamba 在复杂推理上比 Transformer 稍弱。不过最新的 Mamba-3 已经在性能和效率上有了很大提升。总的来说,Mamba 在效率上是 Transformer 的劲敌,尤其适合长序列和 AI Agent 这类场景,未来两者很可能会走向融合。

注意力机制

处理信息时,不是平均看待所有输入,而是计算‘哪些输入更重要’,再按照重要程度汇总信息。

  • 自注意力(Self-Attention):这是最核心的变体。Q、K、V都来自同一个输入。作用:让句子中的每个词都能“看一眼”句子里的其他词,从而理解上下文。例如,模型看到“苹果”时,会通过自注意力发现“手机”或“水果”来辅助判断语义。

在当今最主流的Transformer架构中,注意力机制通过三个向量实现:

  • Q(Query,查询):你想找什么?(比如你在搜索的关键词)。
  • K(Key,键):我有什么特征?(比如网页的标题和索引)。
  • V(Value,值):我的实际内容是什么?(比如网页的正文)。

三种多头注意力层

  • 掩码多头注意力(Masked Multi-Head Attention):核心物理意义:单向可见性(因果律)。掩码多头注意力是并行训练时代的“时间作弊器”—它通过给未来位置打上 −∞的标签,强行在数学上创造“因果错觉”,让模型在同时看到所有词的情况下,依然只能学到顺序依赖,从而保证了生成内容的时间逻辑自洽。
  • 交叉多头注意力(Cross Multi-Head Attention)用一个序列的“需求”(Q),去另一个序列的“知识库”(K/V)中检索并提取信息。作用:用于机器翻译或图文生成,让文本去“检索”图片中的重点区域。自注意力是“同一份简历的自我审视”,而交叉多头注意力是“面试官(Q)拿着岗位要求,去翻阅应聘者的简历(K/V),并且 8 个面试官(多头)分别从学历、经验、性格等不同维度给简历打分,最终汇总决定录用哪部分信息
  • 多头注意力(Multi-Head Attention):并行运行多组注意力机制(比如8组或32组)。将高维语义空间“切分”成多个子空间,在每个子空间里独立做注意力。这强制每个头只能在特定的 64 维“语义切片”中寻找相关性。因为维度降低了,每个头不得不“专注”于提取某一种特定的关系模式

Q、K、V & softmax

一个词,通过三个不同的线性层产生的QKV:

假设输入句子是 “猫追老鼠”,模型正在生成下一个字:

  1. 当前生成位置产生 Q(猫的追击意图)
  2. Q 去和 “猫”、“追”、“老鼠” 各自的 K 做点积。
    • 和“追”的 K 得分最高(动作匹配),和“老鼠”的 K 得分中等(宾语候选),和“猫”的 K 得分最低(自己不能追自己)。
  3. 原始分数传入 Softmax,被放大差距,变成权重:80% 给“追”,15% 给“老鼠”,5% 给“猫”。
  4. 用这组权重去加权求和对应的 V(真实语义内容)
  5. 最终输出向量里包含了 80% 的“追”的语义和 15% 的“老鼠”的语义,模型据此顺利预测下一个词是 “到”“跑”

计算过程(以“缩放点积注意力”为例)

  1. 打分:计算每个 Q 和所有 K 的匹配度(点积)。
  2. 缩放:为了防止分数过大导致梯度消失,除以一个缩放因子。
  3. 归一化:通过 Softmax 函数将分数转换为概率(权重总和为1)。
  4. 加权求和:用这些权重去乘以对应的 V,得到最终输出。image-20260830152055856

缩放因子的物理意义 :

你提到的公式里有除以 dk,这是另一个关乎“物理存亡”的细节。

  • 当维度 dk很大时(比如 512 或 4096),Q 和 K 的点积数值会变得非常大(几十甚至上百)。
  • 物理后果:巨大的数值会被塞进 Softmax 的指数函数,导致输出极度接近 One-hot(一个接近1,其余接近0)。
  • 梯度灾难:此时函数的导数趋近于 0,模型权重几乎无法更新,训练就“僵死”了。
  • 缩放物理意义:除以 dk,相当于把方差拉回 1,把分数稳定在 [-3, 3] 的合理区间。这让 Softmax 进入“敏锐但不过激”的状态,既能区分主次,又能保证每个 V 都获得微弱的“活着”的梯度。

如果说 Q/K 决定了“谁更配”,那么 Softmax 就是决定“怎么分钱”

物理作用:将 Q 和 K 算出的原始分数(可能是有正有负、尺度不定的数),转换为一个总和为 1 的概率分布

它的核心物理特性有两层:

  • (1)竞争性(Winner-takes-most): 它通过指数运算 e分数e分数,把分数间的微小差距急剧放大。假设两个原始分数是 2 和 4,经过 Softmax,权重可能变成 0.12 和 0.88。这强迫模型“做取舍”——即使所有词都有用,也必须把绝大部分“注意力预算”集中到最相关的那个词上。这就模拟了人类大脑无法多线程深度处理信息的生理限制。
  • (2)可微的软选择(非 Argmax): 为什么不直接用 Argmax(只取最高分,设为1,其余为0)?因为 Argmax 不可导,没法反向传播训练。Softmax 虽然放大了差距,但依然保留了微弱的梯度——哪怕某个词的权重只有 0.001,它在反向传播时依然能收到信号,告诉模型“下次稍微多给我点分”,这就是深度学习能“学会”注意力的根本。

逐层前馈网络(Position-wise FNN)

关键物理动作——“逐位置(Position-wise)”

  • 含义:序列中每个位置的向量 xx(比如“猫”这个词的向量),独立地、互不干扰地经过完全相同的 W1,W2*W*1,*W*2 权重矩阵
  • 对比:注意力机制是“位置之间混合信息”(词看词);而 FFN 是“位置内部变换特征”(词想词)。
  • 共享权重:无论序列长度是 10 还是 10000,所有位置都共用同一组 W1,W2W1,W2。这保证了模型能处理任意长度的输入,且极大地减少了过拟合风险。

内部结构:“升维-激活-降维”(计算放大器)

FFN 是一个两层的全连接网络,中间夹着一个非线性激活函数(ReLU/GELU)。它的隐藏层维度 dffd**ff 通常是模型维度 dmodeldmode**l4 倍(例如 dmodel=4096dmode**l=4096,则 dff=16384d**ff=16384)。

物理动作分解

  1. 第一层升维(xW1*x**W*1):将 4096 维映射到 16384 维。
    • 物理意义:高维空间拥有更强的线性可分性。这相当于给模型发了一张“超大草稿纸”,允许它将注意力提取到的有限特征,在 4 倍大的空间里进行“展开”和“分解”,细化出极其复杂的子特征(比如同时区分时态、单复数、情感强度)。
  2. 非线性激活(ReLU/GELU):将负值置零或压缩(非线形映射)。
    • 物理意义(极其重要):多头注意力无论怎么算,归根结底是 线性加权求和(QKTVQKT**V)。两个线性变换堆叠依然是线性变换。激活函数是全网唯一的“非线性来源”之一,它让模型具备了拟合任意复杂函数的能力——没有它,100层 Transformer 等价于一个线性回归。
  3. 第二层降维(ReLU(⋅)W2*R*e*LU*(⋅)*W*2):将 16384 维压缩回 4096 维。
    • 物理意义:提取高维空间中最重要的“激活模式”,将其蒸馏成“精华”,输出给下一层。这保证了模型维度恒定,便于残差连接。

近年来(特别是 2022-2024 年)的可解释性研究(如 Anthropic 的 Toy Models of Superposition)揭示了一个反直觉的真相:

  • 注意力(Attention)负责“路由(Routing)”:它只决定“当前词应该去查资料库里的哪个位置”。
  • FFN 负责“检索与回填(Retrieval & Copy)”:FFN 的第一层(W1W1)存储了成千上万个“模式探测器(Pattern Detectors)”,第二层(W2W2)存储了对应的“结果输出器(Output Responders)”

现在的 GPT-4、LLaMA、DeepSeek 几乎不再使用原始 ReLU FFN,而是采用更先进的结构:

  • SwiGLU(门控线性单元变体):将 xW1x**W1 拆分成两部分,一部分经过激活(SiLU/Swish),另一部分不做激活,两者逐元素相乘(GLU(x)=激活(xW1)⊙(xW3)GLU(x)=激活(x**W1)⊙(x**W3))。
    • 物理优势:引入了“门控机制(Gating)”,让模型学会动态开关特定的神经元。只有当前语境需要时,才激活对应的知识通道,表达能力更强。
    • 代价:参数比原始 FFN 多了 1/3(因为多了一个 W3W3 矩阵)。
  • MoE(混合专家,Mixture of Experts):将单个巨大的 FFN 替换成几十上百个“专家 FFN”(如 8 个或 256 个)。推理时,路由器(Router)只挑选最相关的 1-2 个专家进行计算。
    • 物理意义:将“全才”变为“专才”团队。参数总量增加(存储知识更多),但计算量不变(仅激活部分专家)。这也是 GPT-4 和 DeepSeek-V3 能做到万亿参数但推理速度尚可的核心机密。

回到完整旅程中,FFN 在每一层的位置极其固定:

输入 → 归一化 → 注意力(信息交换) → 残差相加 → 归一化 → FFN(独立思考) → 残差相加 → 输出给下一层

这形成了一个鲜明的职责分工:

  • 注意力层:负责“民主”,把大家的智慧汇集到每个词身上。
  • FFN 层:负责“集中”,每个词根据汇集到的集体智慧,独立进行复杂的非线性变换和知识检索。

残差连接&层归一化

  • 残差:解决了退化问题。允许梯度直接回传(恒等映射)。但这是有代价的——它限制了表达能力吗?不,它允许网络偏向恒等映射。
  • LayerNorm:稳定分布。但为何是LayerNorm而非BatchNorm?独立性于批次大小,适用于序列(可变长度)。
  • 交互作用(关键点):它们共同创建了一个平滑的优化地形。残差连接提供了“零映射”路径(如果F(x)为0,则x无损通过),而LayerNorm确保进入F(x)的输入不会爆炸,从而使F(x)更容易学习微小的调整(增量更新)。
  • 新焦点:它们如何影响信号传播。在初始化时,残差块表现为近似恒等映射。LayerNorm将方差缩放回1,防止深层中的方差爆炸/消失。这称为“动态平衡”。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇