MLE / Research · ML Coding / Fundamentals

TikTok 两种 Norm 怎么比较:BN/LN 轴、统计与推理

用明确的BN/LN训练例子说明归一化轴和运行统计,保留未给的实际Norm名称缺口。

题目重点:用明确的BN/LN训练例子说明归一化轴和运行统计,保留未给的实际Norm名称缺口。

题意与假设

这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。

  • 题目只称“两种normalization”,未提供具体名称;本文限定BatchNorm与LayerNorm对照练习,不称实际一定是它们。
  • tensor例子[B,T,D],BN如何处理T依实现约定;LN此处逐token归一化D。

解题路线

  1. 归一化通式为(x−μ)/√(var+ε)再用γ/β仿射。第一步先说明统计轴,不能仅背公式,BN/LN区别主要在什么样本集合共同计算μ/var。
  2. 典型BN每feature跨batch(及约定空间/时间轴)统计,训练依当前batch;推理常用训练累积running mean/variance。小batch或分布变化会影响统计质量,冻结/重估策略需明确。
  3. LN在单样本某组特征上统计,示例每token的D维,不跨batch。常规训练和推理使用当前输入同样统计,没有BN式batch running均值切换。
  4. γ/β是可学习参数,不等于运行统计;epsilon防方差极小数值问题,方差分母以及running更新方式依框架,不能随便交换后说输出完全相同。
  5. padding、mask和序列长度影响参与统计的元素;BN跨T时必须明确padding是否污染统计,LN逐有效token仍需不让后续attention读无效位置。
  6. 部署不能仅“取训练norm值”统一回答:BN设置推理统计,LN仍对当前样本算。RMSNorm只用均方根不减均值,若实际问的是LN/RMSNorm,应重新比较而非硬套BN。
  7. 测试轴shape、batch大小变化、train/eval切换、零方差和dtype;单张输入重复成大batch时LN同token输出不因别的样本而变,BN可受batch成员改变。

手动走一遍

两个样本[1,3]和[100,102]按各自LN减自己的均值,都会得到相同相对形状;BN按同feature跨样本统计则依赖这两样本组合。具体ε/γ/β决定数值,不在缺题意时声称唯一答案。

规模与取舍

线性扫描参与张量O(BTD),统计/仿射工作与轴大小有关;BN运行统计O(D),LN每组临时统计按实现存储,训练反向激活另计。

易错点与追问

容易失分的边界

  • 两种norm未命名却声称原题确定BN/LN。
  • LN推理用历史batch统计。
  • γβ与running统计混为一谈。

继续深挖

  • LN与RMSNorm怎样比?
  • padding如何参与统计?
  • 分布漂移时BN统计怎样处理?

技术参考

✓已复制微信号!