社区活动专版
直播中

ele2022

2年用户 38经验值
擅长:可编程逻辑 模拟技术 存储技术
私信 关注

【大规模语言模型:从理论到实践】- 每日进步一点点

非常推荐大家去读 【大规模语言模型:从理论到实践】这本书,系统的讲解了大模型的前世今生,对各个环节知识进行了普及。
今天跟我一起学习归一化的部分。
图像.png
大模型训练中的归一化是一个关键步骤,旨在提高模型的训练效率、稳定性和泛化能力。以下是关于大模型训练归一化的详细介绍:
一、归一化的目的和重要性

  • 加快模型训练时的收敛速度:通过归一化,可以使得每层网络的输入数据分布更加稳定,有利于模型更快地收敛到最优解。
  • 提高模型的稳定性:归一化可以避免激活函数落到饱和区域,减轻梯度消失问题,同时避免上一层参数更新导致下一层分布剧烈抖动,从而降低模型的学习难度。
  • 提高模型的泛化能力:归一化操作有助于减少网络对数据中微小变化的敏感度,从而提高模型的泛化能力。
二、常见的归一化方法

  • Batch Normalization(BatchNorm)

  • 原理:在batch数据中对数据的一定维度进行归一化,通常用于深度神经网络中的激活层之前。
  • 流程:计算样本的均值和方差,对样本数据进行标准化处理,并应用可学习的缩放(scale)和偏移(shift)参数。
  • 优点:可以加速模型训练时的收敛速度,使模型训练过程更加稳定,同时起到一定的正则化作用。
  • 应用场景:主要用于图像数据,但在序列数据上效果可能不佳,因为序列数据的batch维度差异较大。

  • Layer Normalization(LayerNorm)

  • 原理:针对序列数据提出的一种归一化方法,主要在layer维度进行归一化,即对整个序列进行归一化。
  • 流程:计算一个layer的所有activation的均值和方差,利用均值和方差进行归一化。
  • 优点:适用于序列数据,特别是在NLP和大模型领域中被广泛使用。

  • RMS Normalization(RMSNorm)

  • 原理:为了提升LayerNorm的训练速度而提出的一种归一化方法,利用均方根进行归一化。
  • 特点:相比LayerNorm,RMSNorm去除了平移部分,只保留了缩放部分,从而减少了计算均值和平移系数的部分,训练速度更快。

  • Deep Normalization(DeepNorm)

  • 原理:由微软提出的一种Normalization方法,主要对Transformer结构中的残差链接做修正。
  • 作用:可以缓解模型参数爆炸式更新的问题。
三、归一化的位置
在大模型中,归一化的位置可以按照preNorm和postNorm进行分类。preNorm是在残差连接之前进行归一化,而postNorm是在残差连接之后进行归一化。在实际应用中,postNorm的使用更为普遍。

图像 (1).png
总之,归一化在大模型训练中起着至关重要的作用。通过选择合适的归一化方法和位置,可以显著提高模型的训练效率、稳定性和泛化能力。

更多回帖

发帖
×
20
完善资料,
赚取积分