Transformer 结构整体介绍| 豆包MarsCode AI刷题

112 阅读3分钟

一、Transformer 结构整体介绍

Transformer 结构组件是包裹注意力机制的实体形式,其主要模块包括输入的 token embedding、Self-Attention(注意力模块)、Feed-Forward 层、norm 层、dropout 层、linear 层以及用于计算交叉熵损失函数的 softmax 层等。在 GPT3 及后续模型中,Self-Attention 采用稀疏的注意力结构,即稀疏 Transformer(Sparse Transformer)。

二、各结构组件详细介绍

(一)稀疏 Transformer

  • 思想基础:核心是稀疏自注意力机制(Sparse Self-Attention)。以补全语句 “掘金社区是一个便捷的技术交流______” 为例,说明原始 Self-Attention 计算时部分字符对应权重虽高但有些字符对填补空格影响微小,且其计算量较大。而稀疏 Transformer 可选择不计算某些不重要 token 位置的注意力值,以减少计算耗时、提高计算效率。
  • 原理:事先定义要计算注意力权重的 token 位置索引,计算时仅考虑这些索引位置,忽略其他位置。分别对 K、V 矩阵按索引位置抽取 embedding 进行计算,Q 矩阵则需为每个位置 token 计算权重。给出了计算某一位置注意力权重及完整稀疏 Attention 计算公式,并介绍了确定保留位置索引的两种常用做法:跨步分解注意力机制(Strided Factorized Attention)和固定分解注意力机制(Fixed Factorized Attention),同时指出固定注意力机制存在局限性,易造成计算结果错误,因此引入多头注意力机制综合多次 Attention 计算结果。

(二)多头(multi-head)注意力机制

在模型中多次进行注意力机制操作,将 N 次结果拼接起来完成输出,以让模型能注意到不同信息。

(三)Normalization 正规化

在每个 Attention 模块接入之前有 norm 模块,其作用是将分布松散的数据整合为分布集中的数据,以助于模型训练的快速推进和收敛。以两组具体的 token embedding 值为例,说明数据分布对模型训练的影响。介绍了计算均值、方差并进行正规化的具体方法,指出在 NLP 领域常用 Layer Normalization,即针对每条输入数据的所有数值元素做 norm 操作。

(四)Dropout 机制

在每个 Attention 模块接入之前有 dropout 模块,用于防止模型训练过程中的过拟合现象(模型在训练数据表现好但在测试数据表现差)。通过对某些计算结果进行随机置 0 操作简化模型,需预先设置置 0 的概率值 dropout ratio。

(五)ResNet 残差模块

Attention 模块的输入 embed 和输出结果有叠加操作,即残差模块,目的是使模型训练过程中梯度不会消失或爆炸,顺利完成训练达到目标效果。

(六)Linear Feed-forward 全连接层

针对 token 输入进行矩阵乘法运算,输出公式为,W 为要学习的参数,此步骤为线性全连接层,主要作用是增加模型参数,增强拟合能力。虽与 dropout 控制模型复杂度看似矛盾,但实际并不矛盾,dropout 控制训练到位,线性全连接层提升拟合能力上限。

三、总结

  • Transformer 组件的核心结构是 Self-Attention,其组件堆叠构成 ChatGPT 的语言模型。
  • GPT3 及 ChatGPT 等模型使用 Sparse Transformer,可减轻计算量,加速模型训练和使用。
  • Transformer 中运用 Normalization、残差计算、线性层等,增强了模型的拟合能力和适应性。