拿下技术面上传简历

一个 12 层、d_model=768、8 头、FFN 隐层 3072 的 Transformer encoder 用 post-LN(LayerNorm 放在残差相加之后),Adam,lr=1e-3。不加 warmup 时前几百步 loss 剧烈震荡甚至变 NaN;加上前 4000 步线性 warmup 就正常。请解释 post-LN 为什么对 warmup 这么敏感,并说明改成 pre-LN 后训练行为会怎么变、代价是什么。

深度学习基础序列与注意力1-3 年知识点 1 个

面试官在考什么

判断候选人是否理解 post-LN 下深层网络的梯度尺度问题导致必须靠 warmup 压住早期更新,以及 pre-LN 的稳定性收益与它带来的新代价。

Transformer

回答框架 · 前两步

  1. post-LN 里每层输出先被 LN 归一化再进下一层,反向时梯度要穿过 LN 与残差路径,浅层梯度对前期参数更新非常敏感;而 Adam 早期二阶矩估计还不稳定,大 lr 会把这种不稳定放大成震荡甚至 NaN。
  2. warmup 的作用:前若干步把有效步长压小,等二阶矩估计稳定、模型进入较平滑的区域后再放大到峰值 lr。

还有 3 条答案要点、 3 层追问、 6 个常见坑, 以及针对你简历的追问路径,在定制报告里。

上传简历,生成我的题库先看示例报告

延伸阅读

想看这个方向的整体准备路线? 进入「深度学习基础」方向页

同一能力域的其他题