找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1378

积分

0

好友

186

主题
发表于 3 天前 | 查看: 8| 回复: 0

Transformer 是一种基于注意力机制(Attention)构建的模块化神经网络结构。它的核心思想是:在处理一个序列时,能够同时考虑所有历史状态与当前状态,并进行加权融合,从而基于更全面的上下文信息来预测未来的状态。在自然语言处理领域,基于 Transformer 的语言模型以词序列作为输入,根据给定的上文来预测下一个词出现的概率。本文将深入解析 Transformer 的基本原理,并阐述如何利用它构建强大的语言模型。

1 Transformer 核心架构

Transformer 本质上是由两种基本模块重复堆叠构成的网络:

  1. 注意力(Attention)模块
  2. 全连接前馈(Fully-connected Feedforward)模块

其中,自注意力模块由自注意力层(Self-Attention Layer)、残差连接(Residual Connections)和层正则化(Layer Normalization)组合而成。全连接前馈模块则由全连接前馈层、残差连接和层正则化组成。两个模块的结构如下图所示:

Transformer模块结构示意图
模块内部细节图

下面我们详细拆解每个组件的原理与作用。

1.1 注意力层(Attention Layer)

注意力机制是 Transformer 的灵魂,它使模型能够动态地关注输入序列中不同部分的信息。

注意力机制计算示意图

1.2 全连接前馈层(Fully-connected Feedforward Layer)

该层占据了 Transformer 模型近三分之二的参数量,主要负责信息的非线性变换与记忆。它可以被视作一种 Key-Value 模式的记忆存储与管理模块。全连接前馈层包含两层线性变换,中间以 ReLU 函数作为激活层。设其输入为 ( x ),则该层的计算可表示为:

全连接前馈层公式

其中,( W_1 )、( W_2 ) 和 ( b_1 )、( b_2 ) 分别是两层对应的权重与偏置参数。第一层的输出可类比为神经记忆中的“键(Key)”,而第二层的输出则对应“值(Value)”。

1.3 层正则化(Layer Normalization)

层正则化用于稳定训练过程,加速收敛。它对单个样本的所有特征维度进行标准化。

层正则化示意图

1.4 残差连接(Residual Connections)

引入残差连接能有效缓解深层网络中的梯度消失问题。在基础的 Transformer 编码块中,存在两个残差连接:

  1. 自注意力层的输入通过一条捷径(Skip Connection)叠加到其输出上,再送入层正则化。
  2. 全连接前馈层的输入通过捷径叠加到其输出上,再送入层正则化。

这种将层正则化置于残差连接之后的架构被称为 Post-LN Transformer。与之相对的是 Pre-LN Transformer,它将层正则化放在残差连接之前。两者各有优劣:Post-LN 应对表征坍塌(Representation Collapse)的能力更强,但缓解梯度消失稍弱;Pre-LN 则能更好地处理梯度消失,但对表征坍塌的抵抗力略弱。

Post-LN与Pre-LN结构对比图

2 Encoder-Decoder 原始架构

原始的 Transformer 采用经典的 Encoder-Decoder 架构,整体结构如图所示:

原始Transformer的Encoder-Decoder架构图

  • Encoder 部分:由 N 个(原论文中 N=6)相同的编码层(Encoder Layer)堆叠而成。每个编码层包含一个自注意力模块(Query, Key, Value 来源相同)和一个全连接前馈模块
  • Decoder 部分:同样由 N 个解码层(Decoder Layer)堆叠而成。每个解码层包含:
    • 一个掩码自注意力模块(防止看到未来信息)
    • 一个交叉注意力模块(Query 来自解码器,Key 和 Value 来自编码器最终的输出)
    • 一个全连接前馈模块

值得注意的是,Transformer 的 Encoder 和 Decoder 部分可以独立用于构建不同类型的语言模型,分别对应 Encoder-Only 模型(如 BERT)和 Decoder-Only 模型(如 GPT 系列)。

3 基于 Transformer 构建语言模型

在 Transformer 架构的基础上,通过设计不同的预训练任务,可以训练出功能各异的语言模型:

  • Encoder-Only 模型:利用 Transformer 的 Encoder,结合“掩码语言模型”(Masked Language Model)等任务进行训练,例如 BERT。
  • Encoder-Decoder 模型:同时使用 Encoder 和 Decoder,结合“文本到文本”的多种任务进行训练,例如 T5。
  • Decoder-Only 模型:仅使用 Transformer 的 Decoder 部分,通过“下一词预测”(Next Token Prediction)任务进行训练,例如 GPT-3。

下面以最常见的“下一词预测”任务为例,简要说明训练一个 Decoder-Only 的 Transformer 语言模型的流程。

模型的目标是最大化给定上文情况下,下一个词出现的概率。对于一个包含 ( T ) 个词的序列 ( s = (w_1, w_2, ..., w_T) ),其损失函数通常定义为负对数似然:

[
\mathcal{L} = -\sum{i=1}^{T-1} \log P(w{i+1} | w_1, ..., w_i; \Theta)
]

其中,模型参数 ( \Theta ) 通过反向传播和梯度下降进行优化。

训练完成后,模型可通过自回归(Auto-regressive) 方式生成文本:首先输入起始词,模型预测出第一个词;然后将预测出的词与输入拼接,作为新的输入预测下一个词,如此循环迭代,直至生成完整序列。与训练 RNN 类似,Transformer 在预训练阶段通常也采用“教师强迫(Teacher Forcing)”策略。

优势与挑战
相较于 RNN 的串行处理,Transformer 的并行输入特性使其能够充分利用现代硬件进行并行计算,极大提升了训练效率。然而,这种并行性也带来了挑战:其自注意力模块的计算复杂度随输入序列长度呈平方级增长(O(n²)),这给处理超长文本序列带来了显著的计算和内存压力。




上一篇:Proxmox VE 9.0虚拟化平台深度解析:基于KVM/LXC的私有云与超融合部署实战
下一篇:K8s适用场景与Docker容器化:理性评估运维成本的技术选型指南
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-24 19:01 , Processed in 0.247984 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表