真实面经题目 · 原创解析

你对大模型分布式训练的底层了解多少?

大模型分布式训练的底层要围绕并行策略、通信开销、显存拆分和容错监控来讲。面试回答不能只说“多卡训练”,要能解释数据并行、张量并行、流水线并行、ZeRO/FSDP 以及 AllReduce 等通信模式各自解决什么问题。

出现于:拼多多 · 算法

60 秒回答模板

我会从四层回答:第一是为什么要分布式,核心瓶颈是参数量、激活、优化器状态和 batch 规模超过单卡能力;第二是并行方式,数据并行复制模型、张量并行切分矩阵计算、流水线并行切分层,ZeRO/FSDP 则拆分参数、梯度和优化器状态;第三是通信,常见有 AllReduce、ReduceScatter、AllGather,要关注通信计算重叠和网络带宽;第四是工程稳定性,包括混合精度、梯度累积、checkpoint、监控、故障恢复和吞吐优化。

考点 拆存储和计算
难度 算法岗真实面经题
回答目标 讲清方法、取舍和追问

深入解析

01

先讲瓶颈来源

大模型训练的瓶颈来自参数、梯度、优化器状态、激活值和 batch 规模。单卡显存放不下完整训练状态时,就必须用分布式把存储和计算拆开,同时还要保证梯度更新语义接近单机训练。

02

再讲并行策略

数据并行让每张卡处理不同样本并同步梯度,简单但会复制模型状态;张量并行把大矩阵切到多卡上计算;流水线并行按层切分模型;ZeRO/FSDP 会进一步拆分参数、梯度和优化器状态来节省显存。

03

补通信机制

分布式训练的性能通常卡在通信。梯度同步常用 AllReduce,参数或分片状态会涉及 ReduceScatter 和 AllGather。回答时要说明通信量、拓扑、带宽、延迟和通信计算重叠会直接影响吞吐。

04

落到工程稳定性

真实训练还要考虑混合精度、梯度累积、checkpoint、随机种子、数据加载、监控和失败恢复。好的答案会把并行策略和显存、吞吐、收敛一致性、调试成本联系起来,而不是只列框架名。

易错点

  • 不要把分布式训练等同于简单多卡 DataParallel,面试通常会追问显存分片和通信。
  • 不要只说框架名,要说明每种并行策略解决的具体瓶颈。
  • 不要忽略优化器状态,Adam 的状态常常比参数本身占用更多显存。
  • 不要只谈速度,收敛一致性、checkpoint 和故障恢复也是底层能力的一部分。

面试官追问

数据并行和模型并行的核心区别是什么?

数据并行复制模型、切分样本,最后同步梯度;模型并行切分模型本身,包括张量切分和层切分,主要解决单卡放不下或单卡计算不够的问题。

为什么 ZeRO 能省显存?

传统数据并行每张卡都保存完整参数、梯度和优化器状态。ZeRO 按阶段把这些状态分片到不同设备,训练时再按需通信恢复计算所需部分。

分布式训练吞吐低应该先排查什么?

先看 GPU 利用率、数据加载、通信耗时、batch 配置、梯度累积、网络拓扑和是否实现通信计算重叠,再判断瓶颈在计算、I/O 还是通信。