大语言模型实战(二)——Transformer网络架构解读

1. Transformer 网络架构

这幅图是Transformer模型的核心架构图(源自经典论文《Attention Is All You Need》),同时补充了自注意力机制的计算逻辑,完整展示了Transformer的结构组成与核心模块的工作原理,是大语言模型(如GPT、BERT)的基础架构。

1.1 整体结构:Encoder-Decoder(编码器-解码器)框架

Transformer由**左侧的Encoder(编码器)右侧的Decoder(解码器)**两部分组成,是一个"输入→编码→解码→输出"的序列转换模型(常用于机器翻译、文本生成等任务):

  • Encoder(左侧):接收原始输入序列(如待翻译的句子),将其编码为包含语义信息的向量表示;
  • Decoder(右侧):接收Encoder的输出向量,结合已生成的部分输出序列(如已翻译的前半部分句子),生成最终的目标序列。

1.2 Encoder(编码器)的内部结构

Encoder由N个相同的层堆叠而成(论文中N=6),每一层包含2个核心子模块:

  1. Multi-Head Attention(多头注意力)
    • 核心作用:让模型同时关注输入序列的不同位置(如翻译时,同时关注"主语"和"修饰语");
    • "多头":将输入分成多个子空间分别计算注意力,再合并结果,提升模型对复杂语义的捕捉能力。
  2. Feed Forward(前馈神经网络)
    • 核心作用:对多头注意力的输出做非线性变换,进一步提取特征;
    • 结构:由两层线性层+ReLU激活函数组成,每一层的参数在不同位置共享。
  3. Add & Norm(残差连接+层归一化)
    • 每个子模块(多头注意力/前馈网络)的输出都会与模块的输入做"残差连接"(避免梯度消失),再通过"层归一化"(加速训练、稳定模型)。
  4. Positional Encoding(位置编码)
    • Transformer本身没有序列位置信息(不像RNN有时间步),因此在输入Embedding后添加"位置编码",让模型感知输入序列的顺序。

1.3 Decoder(解码器)的内部结构

Decoder同样由N个相同的层堆叠而成(论文中N=6),每一层包含3个核心子模块:

  1. Masked Multi-Head Attention(掩码多头注意力)
    • 核心作用:在生成输出序列时,只允许模型关注"已生成的部分"(如生成第3个词时,只能看前2个词),避免"提前看到未来的词";
    • "掩码":通过遮挡未来位置的注意力权重,强制模型按顺序生成序列。
  2. Multi-Head Attention(多头注意力)
    • 核心作用:让Decoder同时关注Encoder输出的全局语义信息(如翻译时,结合原句的整体语义);
    • 输入:Q(来自Decoder的掩码注意力输出)、K/V(来自Encoder的输出)。
  3. Feed Forward(前馈神经网络):与Encoder的前馈网络结构一致,对注意力输出做非线性变换。
  4. Add & Norm:与Encoder的残差连接+层归一化逻辑一致。

1.4 自注意力机制的计算逻辑

图展示了自注意力(Attention)的核心计算公式:
Attention ( Q , K , V ) = softmax ( Q K T d k ) V \text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V Attention(Q,K,V)=softmax(dk QKT)V

  • Q(Query)、K(Key)、V(Value):由输入向量通过线性变换得到的三个矩阵,分别代表"查询""键""值";
  • Q K T QK^T QKT:计算每个查询与所有键的相似度(注意力得分);
  • 1 d k \frac{1}{\sqrt{d_k}} dk 1 :缩放因子( d k d_k dk是K的维度),避免相似度得分过大导致softmax后梯度消失(图中文字详细解释了其作用);
  • softmax:将注意力得分转换为概率分布,代表每个位置的重要程度;
  • 乘V:按注意力概率对V加权求和,得到最终的注意力输出。

缩放因子是为了归一化注意力得分的方差,防止 softmax 输出过于极端,保证模型训练的稳定性和注意力机制的有效性。

1.5 最终输出流程

Decoder的最后一层输出会经过:

  1. Linear(线性层):将Decoder的输出向量映射到目标词汇表的维度;
  2. Softmax:将线性层的输出转换为词汇表中每个词的概率,取概率最大的词作为最终输出。
相关推荐
冬奇Lab22 分钟前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab22 分钟前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP4 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年4 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼4 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS5 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区6 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈6 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang6 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx
shengjk18 小时前
NanoClaw 深度剖析:一个"AI 原生"架构的个人助手是如何运转的?
人工智能