大语言模型实战(二)——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:将线性层的输出转换为词汇表中每个词的概率,取概率最大的词作为最终输出。
相关推荐
Shockang4 小时前
AI Slop 治理实战
人工智能
寒霜雨刃5 小时前
【原创】海光Z100 DCU适配vLLM实录(二):W4A16大M Prefill结构重写、GDN融合与长上下文HIP Attention
深度学习·神经网络·amd·rocm·ai infra·海光z100·gfx906
Mr数据杨5 小时前
医学影像分类实战复盘 从 Kaggle 竞赛到可落地建模流程
人工智能·数据分析·kaggle竞赛
AI情绪识别开源6 小时前
检信 ALLEMOTION OS 加密打包可执行程序 — 全面测试报告版本: v1.3功能测试 / 性能测试 /
开发语言·数据结构·人工智能·功能测试
ZGIAI7 小时前
ZGI 迭代节点:批量资料的逐项处理
人工智能·架构
ZGIAI7 小时前
ZGI 知识检索:让业务回答有据可查
人工智能·架构
Asize7 小时前
框架的说明书是写给 AI 看的:我用 Next.js 搭了个博客
人工智能·代码规范·next.js
2601_955662467 小时前
AI 配音工具 7 款实测:短视频、影视解说、小说推文音质横向对比
人工智能·音视频·语音识别·视频
AI创界者7 小时前
PinkCherry-MiniMax-H3 全能AI视频整合包:8G显存开箱即用,支持首尾帧/超分补帧/自动提示词
人工智能·aigc