426 Chapter 12. 基于自注意力的模型 肖桐 朱靖波
作:
• 小批量训练(Mini-batch Training):每次使用一定数量的样本进行训练,即每
次从样本中选择一小部分数据进行训练。这种方法的收敛较快,同时易于提高
设备的利用率。批次大小通常设置为 2048 或 4096(token 数即每个批次中的单
词个数)。每一个批次中的句子并不是随机选择的,模型通常会根据句子长度
进行排序,选取长度相近的句子组成一个批次。这样做可以减少 padding 数量,
提高训练效率,如图12.18。
随机:
按句长排序:
图 12.18 不同批次生成方法对比(白色部分为 padding)
• 丢弃法(Dropout)
[514]
:由于 Transformer 模型网络结构较为复杂,会导致过度拟
合训练数据,从而对未见数据的预测结果变差。这种现象也被称作过拟合。为
了避免这种现象,Transformer 加入了 Dropout 操作。Transformer 中这四个地方
用到了 Dropout:词嵌入和位置编码、残差连接、注意力操作和前馈神经网络。
Dropout 的比例通常设置为 0.1。
• 标签平滑(Label Smoothing)
[536]
:在计算损失的过程中,需要用预测概率去拟
合真实概率。在分类任务中,往往使用 One-hot 向量代表真实概率,即真实答
案所在位置那一维对应的概率为 1,其余维为 0,而拟合这种概率分布会造成两
个问题:1) 无法保证模型的泛化能力,容易造成过拟合;2) 1 和 0 概率鼓励所
属类别和其他类别之间的差距尽可能加大,会造成模型过于相信预测的类别。
因此 Transformer 里引入标签平滑来缓解这种现象,简单的说就是给正确答案
以外的类别分配一定的概率,而不是采用非 0 即 1 的概率。这样,可以学习一
个比较平滑的概率分布,从而提升模型的泛化能力。
不同的 Transformer 可以适应不同的任务,常见的 Transformer 模型有 Transformer
Base、Transformer Big 和 Transformer Deep
[23, 463]
,具体设置如下:
• Transformer Base:标准的 Transformer 结构,解码器编码器均包含 6 层,隐藏层
的维度为 512,前馈神经网络的维度为 2048,多头注意力机制为 8 头,Dropout
设为 0.1。
• Transformer Big:为了提升网络的容量,使用更宽的网络。在 Base 的基础上增
大隐藏层维度至 1024,前馈神经网络的维度变为 4096,多头注意力机制为 16
头,Dropout 设为 0.3。
• Transformer Deep:加深编码器网络层数可以进一步提升网络的性能,它的参数