Skip to content

语言模型重要组件

📅 发表于 2025/07/04
🔄 更新于 2025/07/04
👁️ -- 次访问
📝 0 字
0 分钟
llm
#Attention
#Batch Norm
#Layer Norm
#PreLorm
#PostNorm
#RMSNorm
#QK-Norm
#RoPE
#GeLU
#TopK
#TopP
#Temperature

参考好文

Attention 机制

整体移动至页面 LLM Attention 系列

Normalization

为什么需要归一化

参见之前的笔记网络优化-数据预处理

  • 未归一化:各样本欧式距离度量不准,梯度下降法搜索效率低,模型训练困难
  • 归一化:各维度特征归一化到同一个区间;消除不同特征的相关性

Batch Norm(2015)

Batch Normalization 笔记

Batch Normalization

BN定义

  • 范围:对一个Batch的样本为每个通道数据做归一化
  • 求均值、方差让数据标准化到(0, 1)正态分布,避免发生梯度消失
  • 加入缩放γ和平移变量β:使数据在归一化后保留原有学习来的特征
y=γx^+β,x^=xE(x)Var(x)+ϵ

BN优点

  • 允许大学习率,降低对初始化的依赖
  • 让中间层数值更稳定,为后面的网络提供坚实基础
  • 轻微正则作用 (隐藏层+噪声,类似dropout)

存在的问题

  • bs太小:效果不好,均值方差不足以代表整个数据
  • bs太大:超过内存;会固定梯度下降方向导致难以更新;需跑更多epoch导致训练时间变长

Layer Norm(2016)

层归一化笔记

Layer Norm

定义

  • 范围对同一层所有神经元的输入 / 某条数据(tensor)的多个维度 做归一化
  • 算法:同BN,归一化+缩放平移参数

优点

  • 不需要Batch训练,在单条数据内部就能归一化
  • LN可以有效缓解RNN的梯度消失和爆炸问题,但在CNN上效果不如BN

Post & Pre Layer Norm(2020)

Post-LN & Pre-LN

Pre-LN

  • LN在MHA之前做归一化
  • 行业标准更稳定
    • 大模型训练难度大,使用Pre-LN居多。
  • 优点
    • 防止梯度爆炸或消失:一部分参数直接加在后面,没有正则化,可在反向时防止梯度消失或爆炸。
  • 缺点
    • 会削弱模型深度:梯度可以直接通过残差连接抄近道,不完全流经每一层

Post-LN

  • 定义:LN在残差之后做归一化,最初Bert的LN。
  • 优点
    • 性能可能更好:迫使信息和梯度必须流过每1层,完全利用模型深度
    • 对参数正则化更强、模型收敛性更好
  • 缺点
    • 训练不稳定、很容易失败。
    • MiniMax-01 使用Hybrid Lightning Attention
      • 实验Post-LN比Pre-LN 效果好,从43.9 -> 50.2。
      • 稳定训练。

Deep Norm(2022)

Deep Norm

定义

  • 范围:对Post-Layer Norm的改进。
    • Post-LN问题:不稳定性来自梯度消失以及太大模型更新。
  • 算法:
    • 在LN之前,乘以α扩大残差连接LayerNorm(x * alpha + f(x))
    • 以β减小部分参数的初始化范围,Xavier均匀分布初始化

优点

  • 具备Post-LN的好性能,且具有Pre-LN 的稳定训练

RMS Norm(2019) & pRMS Norm

RMS Norm

RMS Norm

  • 针对LayerNorm改进,主要区别在于去掉了减去均值的部分,采用根均方

  • RMS 操作 (Root Mean Squre):RMS(x)=1ni=1nxi2

    xi^=xiRMS(x)γ+β=xi1ni=1nxi2γ+β

pRMS Norm

  • 核心思想:用部分数据,代替全部的计算,p为前p%的数据
RMS(x)=1ki=1kxi2

Instance Norm(图像, 2017)& Group Norm (2018)

Instance Norm & Group Norm

Instance Norm

  • 范围:针对图像做Norm,对每个样本的H、W维度做,保留N、C维度。
  • 算法:只在Channel内部求均值做标准差

Group Norm

  • 范围:对每个Chanel,再继续划分g个组,每组去做归一化。

QK-Norm

QK-Norm
  • 核心
    • 在MHA中引入额外RMSNorm用在Q、K之前
  • 优点
    • RoPE之前对输入做归一化,减少训练中数值不稳定性

各种Norm对比

位置编码

LLM位置编码笔记

FFN 层

早期笔记 Transformer-FFN

FFN

两个全连接层+激活函数:

  • 接在attention输出后面,带有激活函数,做复杂非线性变换,对最终性能非常重要。

  • 增加FFN的维度有利于提升效果,一般比attention层维度大。

    • 如Transformer里 attention输出是512,FFN是2048。
  • 注:后期多用GeLU。ReLU 更适用于CNN,而 GeLU FFN。

FFN(x)=Linear(ReLU(Linear(x)))=ReLU(xW1+b1)W2+b2

激活函数

GeLU

GeLU
  • ReLU缺点当输入为负数值为0,可能导致神经元死亡,降低模型表达能力。
  • GeLU很像ReLU,是一个连续的S曲线更平滑
    • 优点:一定程度上缓解死亡问题。
    • 缺点:计算比ReLU慢
GeLU(x)=0.5x(1+tanh(2π(x+0.044715x3)))

Swish

Swish
  • 特点:接近0时,像线性函数;远离0时,具有非线性特性。
  • 优点:相比ReLU/Tanh等具有更好性能和收敛速度。
  • 缺点:计算使用sigmoid,开销大。
  • 公式如下,β是可调节参数。
Swish(x)=xsigmoid(βx)

解码策略

整体移动至文档 LLM解码相关

杂项

Encoder和Decoder 可做权重共享

  • 每一层由Self-Attention和FFN组成,在Encoder或Decoder内部,做层共享。
  • 但是现在大模型时代,每一层都有独立的参数,增强表达能力
  • Masked Self-Attention:Decoder解码过程,当前位置不能看到未来的内容。

Bert

  • Bert的非线性来源:来自于self-attention和FFN中的gelu函数
  • WarmUp策略:在训练初期,把学习率小初始值逐步增加到预设最大值,提高稳定性和加快收敛。
    • 初期使用较小学习率,避免早期训练不稳定和过拟合。
总访客数:   ·   总访问量:
PLM's Blog @ 2016 - 2026