【第四章:大模型(LLM)】09.最强开源大模型:Llama3 原理介绍与实现-(2)归一化方法:Normalization & RMSNorm

第四章:大模型(LLM)

第九部分:最强开源大模型:Llama3 原理介绍与实现

第二节:归一化方法:Normalization & RMSNorm


1.归一化的背景与作用

在深度学习中,尤其是大模型(LLM)中,网络非常深,训练中容易出现梯度消失或梯度爆炸的问题。归一化(Normalization)方法的出现,就是为了让每一层的输入分布更加稳定,从而提高训练效率与模型性能。

主要作用:

  1. 稳定训练:避免梯度消失或梯度爆炸。

  2. 加快收敛:梯度的尺度统一后,优化器可以更快找到最优解。

  3. 提高泛化能力:减少内部协变量偏移(Internal Covariate Shift)。

常见归一化方法:

  • BatchNorm:按批次归一化,常用于 CV。

  • LayerNorm:按层归一化,更适合 Transformer。

  • RMSNorm:LayerNorm 的一种变种,计算量更小,Llama 系列采用它。


2.Layer Normalization(层归一化)

原理

对输入向量 x \in \mathbb{R}^d(假设是 Transformer 一层的特征向量)进行归一化:

\hat{x}_i = \frac{x_i - \mu}{\sigma}

其中:

\mu = \frac{1}{d} \sum_{j=1}^{d} x_j, \quad \sigma = \sqrt{\frac{1}{d} \sum_{j=1}^{d} (x_j - \mu)^2 + \epsilon}

然后再进行仿射变换:

y_i = \gamma \hat{x}_i + \beta

  • γ,β 是可训练参数(scale 和 shift)。

  • ϵ 是防止除零的小常数。

特点
  • 归一化操作在特征维度上进行,而不是批次维度。

  • Transformer 中广泛采用,因为不依赖 batch size。


3.RMSNorm(Root Mean Square Normalization)

Llama 系列采用 RMSNorm 替代 LayerNorm,它可以减少计算量,同时保持性能。

原理

RMSNorm 只使用均方根(Root Mean Square)来归一化,不再减去均值:

\text{RMS}(x) = \sqrt{\frac{1}{d} \sum_{i=1}^{d} x_i^2}

归一化公式:

y_i = \frac{x_i}{\text{RMS}(x) + \epsilon} \cdot g

  • g 是可训练的 scale 参数(对应 LayerNorm 的 γ)。

  • 不使用 shift(β)参数。

  • RMSNorm 的核心是去中心化操作,只关注向量的整体幅度,而不减去均值。

优点
  1. 计算更高效:省略减均值操作。

  2. 梯度传播更稳定:只对尺度进行归一化。

  3. 效果接近 LayerNorm,尤其在 LLM 中表现优秀。


4.Llama3 中的归一化实现

在 Llama3 的 Transformer 层中,RMSNorm 被用于:

  • Self-Attention 模块前

  • FeedForward 模块前

核心 PyTorch 代码示例(伪代码):

import torch
import torch.nn as nn

class RMSNorm(nn.Module):
    def __init__(self, dim, eps=1e-6):
        super().__init__()
        self.eps = eps
        self.scale = nn.Parameter(torch.ones(dim))

    def forward(self, x):
        # 计算均方根
        rms = x.norm(2, dim=-1, keepdim=True) / (x.shape[-1] ** 0.5)
        # 归一化
        x_norm = x / (rms + self.eps)
        return x_norm * self.scale
注意点
  • x.norm(2, dim=-1) 计算的是每个向量的 L2 范数。

  • 除以向量长度的平方根,保证归一化结果不随向量维度改变。

  • self.scale 允许模型重新学习合适的尺度。


5.总结对比

方法均值中心化参数计算量应用
LayerNormγ, β较高Transformer、RNN
RMSNormγ较低Llama 系列 LLM

小结

  • RMSNorm 是 LayerNorm 的轻量替代方案。

  • 在大模型中,尤其是 Llama3,RMSNorm 可以减少显存和计算开销,同时训练更稳定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值