Pre-Norm 把归一化放在子层更新之前:
x = x + Attention(Norm(x))
x = x + MLP(Norm(x))这会保留干净的残差流恒等路径,从而改善深层 transformer 堆叠的优化行为。
关键洞察
理解 Pre-Norm 最好的入口是残差流:原始状态可以继续向前流动, 每个模块只贡献一个经过归一化计算得到的更新。
一种 transformer 模块布局:归一化发生在注意力或 MLP 更新之前。
Pre-Norm 把归一化放在子层更新之前:
x = x + Attention(Norm(x))
x = x + MLP(Norm(x))这会保留干净的残差流恒等路径,从而改善深层 transformer 堆叠的优化行为。
理解 Pre-Norm 最好的入口是残差流:原始状态可以继续向前流动, 每个模块只贡献一个经过归一化计算得到的更新。