拿下技术面上传简历

一个稠密模型训练到中后期,loss 大部分平稳,但每几千步出现一次尖峰,梯度范数日志显示偶尔从常态跳两个数量级;同时你们开了混合精度。团队现在用 global norm clipping,clip 值是一个很久以前调好的常数。你要不要动这个值、怎么动?裁剪应该在 micro-batch 上做还是梯度累加之后做、在 all-reduce 之前还是之后做?你怎么区分尖峰来自真实梯度爆炸、loss scaling 溢出、脏数据还是通信异常?

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

面试官在考什么

判断候选人能否把梯度裁剪放进混合精度加分布式的完整链条里定位和设计,而不是单点调一个超参。

梯度裁剪

回答框架 · 前两步

  1. 先分类根因:真实梯度爆炸(数据或优化器问题)、loss scaling 溢出前的数值抖动、某些 rank 的数据异常、通信或累加误差,这三类在 per-rank 曲线上的形态不一样。
  2. 裁剪位置:在梯度累加完成后的全局梯度上做;分布式下要保证所有 rank 用同一个系数,通常在 all-reduce 前统一算全局范数或做等价的一致性处理。

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

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

延伸阅读

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

同一能力域的其他题