拆解 Transformer 架构:从输入到编码器的核心模块解析

在理解了 Transformer 诞生的背景后,我们自然会追问:这个颠覆行业的架构,究竟是由哪些模块组成的?它如何将 “并行计算” 与 “全局依赖捕捉” 的理念落地为具体结构?本文将聚焦 Transformer 的整体框架与编码器核心模块,用通俗的语言拆解其设计逻辑,帮你建立对这一架构的直观认知。

一、Transformer 的整体架构:编码器与解码器的 “双核心” 模式

Transformer 的架构整体呈 “对称式” 设计,核心分为两大模块 ——编码器(Encoder) 与解码器(Decoder),二者协同完成 “输入序列→特征提取→输出序列” 的全流程。这种设计并非凭空创造,而是精准匹配了机器翻译等序列转换任务的需求:比如将英文句子(源序列)翻译为中文句子(目标序列)时,编码器负责 “读懂” 英文,解码器负责 “写出” 中文。

1. 架构的 “三层结构” 逻辑

从宏观视角看,Transformer 的架构可拆解为 “输入层→中间处理层→输出层”,其中中间处理层是核心:

  • 输入层:将原始文本(如英文句子)转换为模型能理解的 “嵌入向量(Embedding)”,并加入 “位置编码(Positional Encoding)”—— 这一步是为了弥补 Transformer 无循环结构的缺陷,让模型知道每个词的位置信息(比如 “我吃饭” 和 “饭吃我” 的区别);
  • 中间处理层:由 “编码器堆叠模块” 和 “解码器堆叠模块” 组成(通常各堆叠 6 层),是信息处理的核心区域;
  • 输出层:将解码器的输出向量转换为 “目标词汇表的概率分布”,最终选择概率最高的词汇作为输出(比如翻译任务中,输出 “我”“吃”“饭” 等中文词汇)。

2. 编码器与解码器的 “分工协作”

视频中用 “工厂流水线” 类比二者的关系:编码器是 “原料处理车间”,负责将输入序列的 “原始信息” 提炼为 “结构化语义特征”;解码器是 “成品组装车间”,基于编码器的特征,一步步生成目标序列。

  • 编码器的输出会 “全量传递” 给解码器,就像处理车间将加工好的原料送向组装车间;
  • 解码器在生成每个词时,不仅会参考编码器的特征,还会关注自身已生成的内容(比如生成 “我吃饭” 时,生成 “我” 后会参考 “我” 的信息来生成 “吃”),避免逻辑脱节。

二、编码器的核心构成:单层结构与 “两大关键子层”

编码器是 Transformer “读懂输入” 的核心,虽然通常堆叠 6 层,但每一层的结构完全相同—— 理解单层编码器,就能掌握所有编码器的工作逻辑。视频通过动态拆解,清晰展示了单层编码器的两大核心子层:“多头自注意力层” 与 “前馈神经网络层”,以及保障模型稳定训练的 “残差连接” 和 “层归一化”。

1. 多头自注意力层:让模型 “选择性关注” 关键信息

“注意力机制” 是 Transformer 的灵魂,而 “多头自注意力(Multi-Head Self-Attention)” 是其具体实现形式。它的核心作用是:让序列中的每个词 “主动关注序列内的其他词”,并根据关联强度分配不同的 “注意力权重”—— 就像人类阅读时,会重点关注标题、关键词,而非逐字逐句同等对待。

(1)“自注意力” 的底层逻辑

“自注意力” 中的 “自”,指的是 “关注自身序列”(比如处理英文句子时,每个英文词只关注其他英文词)。它通过 “Query(查询)、Key(键)、Value(值)” 三个矩阵的运算,计算每个词对其他词的注意力分数:

  1. 为每个词生成 Q、K、V 向量(从嵌入向量转换而来);
  2. 计算 Q 与 K 的 “相似度”(通过矩阵乘法),得到初始注意力分数;
  3. 用 Softmax 函数将分数归一化(确保所有分数之和为 1),突出高关联词的权重;
  4. 将归一化后的分数与 V 相乘,得到 “加权后的语义向量”—— 关联度高的词,其 V 向量对当前词的贡献更大。

视频用 “颜色深浅” 直观展示了注意力权重的分配:比如处理句子 “ The cat sits on the mat ” 时,“ sits ”(坐)会对 “ cat ”(猫)分配深色(高权重),对 “ the ”(虚词)分配浅色(低权重),清晰体现了 “关注关键信息” 的逻辑。

(2)“多头” 的价值:多维度捕捉依赖关系

“多头” 指的是将 Q、K、V 向量拆分为多个 “头”(通常为 8 个),每个头独立计算注意力,最后将结果拼接 —— 这就像多个人从不同角度分析同一问题,最终汇总结论,让模型能 “多维度捕捉依赖关系”。
比如在处理 “小明在公园吃苹果” 时:

  • 一个头可能关注 “主谓关系”(小明→吃);
  • 另一个头可能关注 “动宾关系”(吃→苹果);
  • 还有一个头可能关注 “地点关系”(吃→公园);
    通过多头并行计算,模型能更全面地理解句子的语义结构,避免单一视角的信息遗漏。

2. 前馈神经网络层:对注意力输出做 “非线性变换”

经过多头自注意力层后,序列的语义信息已经带有注意力权重,但仍需通过 “前馈神经网络(Feed Forward Network, FFN)” 做进一步处理。它的核心作用是:对每个词的 “加权语义向量” 进行独立的非线性变换,提炼更高级的语义特征 —— 简单来说,就是 “把注意力层捕捉到的关联信息,转化为更抽象的语义表达”。

前馈神经网络的结构很简洁,通常包含两层线性变换和一层 ReLU 激活函数:

  • 第一层线性变换:将注意力层输出的向量维度 “升高”(比如从 512 维升到 2048 维),扩大模型的表达能力;
  • ReLU 激活函数:引入非线性,让模型能学习复杂的语义关系(比如 “因果关系”“条件关系”);
  • 第二层线性变换:将向量维度 “降回” 原维度(比如从 2048 维降回 512 维),与后续模块的输入维度匹配。

需要注意的是,前馈神经网络是 “逐词独立处理” 的 —— 每个词的向量变换不依赖其他词,这与多头自注意力层的 “全局关联” 形成互补,既保证了并行效率,又能深入挖掘单个词的语义信息。

3. 残差连接与层归一化:保障模型稳定训练

在多头自注意力层和前馈神经网络层之后,编码器还加入了 “残差连接(Residual Connection)” 和 “层归一化(Layer Normalization)”,这两个模块是 Transformer 能 “深度堆叠”(6 层编码器)且不出现梯度消失的关键。

(1)残差连接:解决 “深层网络信息衰减”

残差连接的逻辑很简单:将 “子层的输入” 直接 “跳接” 到 “子层的输出”,与子层输出相加 —— 就像给信息传递开了一条 “备用通道”,即使子层处理过程中出现信息丢失,原始输入也能直接传递到下一层。
比如多头自注意力层的输出 = 多头自注意力层的输入 + 多头自注意力层的计算结果,有效避免了深层网络中 “早期信息被逐渐稀释” 的问题。

(2)层归一化:稳定训练过程

层归一化的作用是 “将每个词的向量标准化”(让向量的均值接近 0,方差接近 1),避免因部分词的向量值过大或过小,导致模型训练不稳定(比如梯度爆炸或梯度消失)。它通常作用于残差连接之后,为下一层的输入提供 “稳定的特征分布”。

三、编码器的 “堆叠逻辑”:从 “单词” 到 “句子语义” 的逐层提炼

虽然单层编码器已能捕捉序列的关联信息,但 Transformer 仍选择堆叠 6 层编码器 —— 这背后是 “逐层提炼语义” 的设计思路。视频用 “滤镜叠加” 类比这一过程:每一层编码器就像一层滤镜,能过滤冗余信息、强化关键特征,经过 6 层处理后,输入序列的 “原始嵌入向量” 会逐步转化为 “抽象的句子级语义向量”。

  • 第 1-2 层编码器:主要捕捉 “单词级关联”(如主谓、动宾关系);
  • 第 3-4 层编码器:开始捕捉 “短语级关联”(如 “在公园”“吃苹果” 等短语的语义);
  • 第 5-6 层编码器:最终提炼 “句子级语义”(如整个句子表达的 “事件、场景、情感”);

这种逐层递进的逻辑,让模型能从浅到深理解输入序列的语义,为后续解码器的输出提供高质量的 “语义原料”。

结语:架构设计的 “克制与高效”

回顾 Transformer 的架构设计,我们会发现它的每一个模块都有明确的目标:多头自注意力层负责 “捕捉全局关联”,前馈神经网络层负责 “提炼语义特征”,残差连接与层归一化保障 “稳定训练”。这种 “模块化、低冗余” 的设计,既实现了并行计算的效率优势,又保证了语义理解的效果,最终奠定了大模型时代的架构基础。

理解编码器的核心逻辑后,我们下一步将深入解码器的特殊设计(比如 “掩码注意力”“交叉注意力”),看看它如何基于编码器的语义特征,一步步生成精准的目标序列。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐