拿下技术面上传简历

你在 8 张卡上用 DDP 训练,per-GPU batch size 设为 16,梯度累积步数为 2,global batch size 是 256。同事问:(1) DDP 下每张卡上是不是只保存了 1/8 的参数?(2) 他把 world_size 从 8 改成 4、并保持 global batch size 不变之后,收敛曲线明显不同,为什么?(3) 如果他想要的其实是让每张卡显存占用降下来,应该改用什么方案?

深度学习基础训练工程校招知识点 1 个

面试官在考什么

能否把 DDP(完整副本 + 梯度 all-reduce)与 ZeRO(分片优化器状态/梯度/参数)在“省什么、通信什么”上分开,并算清 global batch 与 world_size 的关系。

分布式训练(DDP/ZeRO)

回答框架 · 前两步

  1. DDP 是数据并行:每张卡持有完整的模型副本,各自跑不同的数据,反向得到本地梯度后用 all-reduce 求平均,各卡参数保持一致。它省的是训练时间,不省单卡显存。
  2. 想省显存要用分片方案(如 ZeRO/FSDP):ZeRO-1 分片优化器状态,ZeRO-2 再分片梯度,ZeRO-3 连参数也分片,每卡只存约 1/N。

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

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

延伸阅读

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

同一能力域的其他题