拿下技术面上传简历

8 卡 DDP 训练 1B 模型,梯度累积 4 步,global batch size 512。最近 loss spike,你加了 clip_grad_norm_=1.0。日志显示大多数 step 全局梯度范数 0.2-0.5,但偶尔某张卡局部范数 5-10,训练变慢且收敛变差。问:clip 应放在 loss.backward() 后、每个 micro-batch、还是 optimizer.step() 前?DDP all_reduce 与 clip 的先后顺序是什么?梯度累积时 global norm 要不要除以累积步数?

深度学习基础训练工程3-5 年知识点 1 个

面试官在考什么

判断候选人是否理解梯度裁剪的时机、DDP 同步语义、梯度累积下的全局范数计算,以及 clip 阈值选取。

梯度裁剪

回答框架 · 前两步

  1. 默认在 optimizer.step() 前、所有 micro-batch 反向累积完成且 DDP all_reduce 之后,对全局参数计算总范数再裁剪。
  2. 梯度累积若用 no_sync,多步只累积本地梯度,最后一步再 all_reduce;global norm 应基于最终准备送入 optimizer 的梯度。

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

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

延伸阅读

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

同一能力域的其他题