Home AI Infra 面试题(三):大模型多维并行
Post
Cancel

AI Infra 面试题(三):大模型多维并行

本文是AI Infra 面试题系列的 Level 3,覆盖 Q27-Q40。重点是Tensor、Sequence、Context、Pipeline、Expert Parallel 及组合选型。

上一篇:DDP、FSDP 与训练运行时 · 系列总索引 · 下一篇:推理引擎与在线服务


4. Level 3:Tensor、Sequence、Context、Pipeline 与 Expert Parallel

Q27. 以两层 MLP 为例,Megatron tensor parallel 如何切分?

高分回答要点

  • 设输入 X:[B,S,H],第一层权重 W1:[H,4H]。Column Parallel 把 W1 的输出维切到 T 个 rank,每 rank 得到 [B,S,4H/T],通常不需先合并即可做局部 activation。
  • 第二层 W2:[4H,H] 用 Row Parallel 按输入维切,每 rank 对局部分片做 matmul,产生 [B,S,H] 的 partial sum,再通过 AllReduce 得到完整输出。
  • attention 中 QKV projection 和 output projection 使用相似的列切/行切;head 数和 hidden size 必须满足切分约束。
  • 要说明 bias、dropout、LayerNorm 和 residual 在哪个 rank 上执行,以及是否引入 sequence parallel,否则数据流不完整。

追问:每层 TP 的通信字节与参数量还是 activation shape 更相关?为什么 sequence length 增大会加重 TP 通信?

Q28. 为什么 TP 在 PCIe V100 上更像容量手段,而不是加速手段?

高分回答要点

  • TP 降低每 rank 参数和局部 GEMM 大小,但每层引入 activation collective;通信位于层级关键路径,难以像 DDP 梯度那样跨多层充分 overlap。
  • PCIe 带宽低于 NVLink/NVSwitch,且本机跨 PHB/SYS 路径更慢;切小后的 GEMM 也可能降低 Tensor Core 效率。
  • 若单卡本就能容纳模型,TP 节省的计算时间可能小于 collective、同步和 kernel launch 增量。
  • 评价 TP 需同时看单请求延迟、总 tokens/s、每 GPU 效率和可容纳模型/KV 容量,不能只看 aggregate GPU 数。

实验锚点:TP1/DP8 约 84,626 tok/s,而 TP8/DP1 约 14,667 tok/s;TP8 单 rank 显存降到约 0.47 GiB,但吞吐显著下降。

Q29. Megatron sequence parallel 做了什么?

高分回答要点

  • SP 通常与 TP 绑定,把原本在 TP rank 间复制的 sequence 维 activation 分片,让 LayerNorm、dropout 等逐 token 操作只处理本地序列片段。
  • TP 中某些 AllReduce 可重写为 ReduceScatter 与 AllGather,使通信总量近似不变,但中间 activation 不必一直在每个 TP rank 完整驻留。
  • 它不是把整个 attention 的 context 维彻底切开;attention 仍需满足 Q/K/V 依赖,不能把 SP 等同于超长上下文 context parallel。
  • 收益取决于可被 SP 分片的 activation 在总峰值中的占比,以及通信实现和 allocator 峰值。

追问:为什么 TP+EP 的一些现代配置要求启用 SP?候选人应从 tensor layout 和避免 TP 区域重复 token 的角度解释,再核对具体框架约束。

Q30. 序列长度到 4096,为什么 SP 的显存仍可能只节省几个百分点?

高分回答要点

  • “长序列”不自动意味着峰值由 SP 可切分 activation 主导;参数、optimizer、attention workspace、未切分张量、通信 buffer 和 caching allocator 都可能占主导。
  • 要看测量点是 forward peak、backward peak 还是进程保留显存,以及 FlashAttention/重计算是否已经减少中间 activation。
  • TP degree、microbatch、层数和 hidden size 会改变组成;若模型较小或 microbatch 很小,固定开销占比更高。
  • 正确后续实验是做显存快照/按 allocation 分类,并扫描 sequence、microbatch、TP,而不是只把 sequence 再加长然后猜测。

实验锚点:本项目 seq=4096 时 SP 只省约 1.3%-3.8%,这个负结果反而能证明候选人会修正“长序列必然让 SP 有效”的假设。

Q31. sequence parallel 和 context parallel 的区别是什么?

高分回答要点

  • SP 主要分片 TP 区域中可按 token 独立计算的 activation,降低 LayerNorm/dropout 等复制;一般不独立解决完整 attention context 的内存扩展。
  • CP 把整个 sequence/context 分到多个 rank,并设计 K/V 交换或 attention 归约,使每个 rank 能得到其 query 对全上下文的正确 attention。
  • CP 会影响 attention 通信、causal mask、position encoding、load balance 和 KV layout;实现可能采用 all-gather、ring P2P 或分层算法。
  • 选择 CP 要比较 activation/KV 节省与随 context 增长的通信,且应把 CP group 映射到高带宽链路。

追问:对 causal attention,为什么不同 context shard 的计算量可能不均?如何用 zig-zag/ring 调度改善?

Q32. activation recomputation 为什么省显存但增加计算?

高分回答要点

  • 正常 backward 需要保存 forward activation;checkpointing 只保留边界,backward 前重做部分 forward 来恢复中间量。
  • 粗粒度 full-layer recompute 节省更大但重复 FLOPs 多;selective recompute 只重做便宜或高存储占比的算子,能形成更好 Pareto 点。
  • 峰值节省取决于参数状态、通信 buffer 和不可重算张量占比,不是 activation 理论大小的简单相减。
  • 还需处理 dropout RNG、随机算子、autocast 和副作用,保证重算语义一致。

实验锚点:seq=4096 的 full recompute 节省约 77.6%-78.1% 显存,同时吞吐下降约 27%-30%,比本机 SP 的节省明显得多。

Q33. 长上下文训练的主要复杂度和优化手段有哪些?

高分回答要点

  • 标准 attention score 计算复杂度约 O(B*S^2*H),QKV/MLP 约 O(B*S*H^2);哪个占主导取决于 S/H、架构和 kernel。
  • 朴素 attention 中间矩阵显存随 S^2,FlashAttention 通过 IO-aware tiling 避免完整 materialization,但数学计算仍近似平方。
  • 系统手段包括 FlashAttention、activation recompute、CP、SP、sequence packing、变长 attention 和合适的 microbatch。
  • 算法手段还包括 sparse/sliding-window/linear attention,但这会改变模型,不应与系统无损优化混为一谈。

Q34. GPipe、1F1B 和 interleaved pipeline 的差异是什么?

高分回答要点

  • GPipe 先完成所有 microbatch forward,再全部 backward,调度简单但需要保存更多 activation,flush bubble 明显。
  • 1F1B 在 warmup 后交替执行一个 forward 和一个 backward,降低 activation 驻留并保持相似 flush bubble 量级。
  • interleaved 让每个物理 rank 持有多个 virtual stage,缩短逻辑 stage 间隔,可降低 bubble,但增加通信次数和调度复杂度。
  • pipeline 还要考虑 forward activation 与 backward gradient 的 P2P、权重版本、loss 所在 stage 和 tied embedding。

Q35. pipeline bubble 怎样估算?

高分回答要点

  • 对均衡、无 interleave、同步 flush schedule,p 个 stage、m 个 microbatch 的理想利用率近似 m/(m+p-1),bubble fraction 近似 (p-1)/(m+p-1)
  • p=8,m=1 时 bubble 约 87.5%;m=16 时理想 bubble 约 30.4%。这只是均衡 stage、忽略通信和其他开销的上界模型。
  • 增大 m 可摊薄 bubble,但可能改变 microbatch 大小、global batch、调度 overhead 和 activation 内存。
  • 实际吞吐还受最慢 stage、P2P、数据 stage、embedding/loss 和同步影响。

实验锚点:本项目 PP8/M1 的理论 bubble 为 87.5%;M16 相对 M1 吞吐约 2.59x,但扩展效率仍仅约 32.4%。

Q36. 如何发现并解决 pipeline stage imbalance?

高分回答要点

  • 分 rank 测 stage forward/backward wall time、kernel time、参数量、activation bytes 和 P2P wait;吞吐由最慢 stage 限制。
  • 参数量只是代理,attention/MLP FLOPs、embedding、vocab projection、MoE token 数和通信位置都会造成不均衡。
  • 可用非均匀 layer partition、virtual stage/interleave、把 embedding/loss 单独计价、调整 MoE expert placement 或复制轻量 stage。
  • 重分区后要验证显存峰值和通信;把计算均衡但让跨慢链路流量增大,可能得不偿失。

实验锚点:本项目各 PP stage 参数量最大/最小约 2.76x,能解释为什么实际结果低于只看 bubble 公式的理想值。

Q37. pipeline 的 microbatch 数越多越好吗?

高分回答要点

  • 更多 microbatch 降低 flush bubble,但单个 microbatch 可能变小,使 GEMM 效率下降、launch 数上升。
  • 若保持单 microbatch 不变,global batch 会增大,影响优化语义和数据并行组合;若保持 global batch 不变,局部计算形状改变。
  • activation memory 取决于 schedule 中同时 in-flight 的 microbatch 数,1F1B 与 GPipe 不同。
  • 最优点需扫描 throughput、峰值显存、bubble、P2P 和 time-to-quality,而不是只最大化 m

Q38. 怎样构造 DP/TP/PP/CP 的 rank mapping?

高分回答要点

  • 先满足 world_size = DP * TP * PP * CP;有 EP 时要明确 EP 与 DP/TP 的 group 关系,不能盲目全部相乘。
  • 给 rank 定义多维坐标,再按框架规定的维度顺序建立 process groups;用小 tensor collective 做成员校验。
  • placement 原则是通信频繁、位于关键路径的 TP/CP 优先放 NVLink/NVSwitch 域内;PP 相邻 stage 应有稳定带宽;DP 可跨节点但要考虑梯度流量和 NIC。
  • 同时配置 GPU-NIC affinity、NUMA 和容错域,避免一个节点故障摧毁过多复制或完整 pipeline。

追问:给 64 GPU、每节点 8 GPU,设计 TP=4, PP=4 的 group,并说明 DP group 为什么跨哪些节点。

Q39. MoE expert parallel 的通信和负载问题是什么?

高分回答要点

  • router 为 token 选择 top-k expert;若 expert 分布在不同 rank,需要 All-to-All dispatch token,再在 expert MLP 后 All-to-All combine。
  • 平均 FLOPs 稀疏,但通信、router、排序/permute、padding、grouped GEMM 和最慢 expert 决定实际性能。
  • token 分布不均会造成 rank straggler 或超过 capacity;辅助负载均衡 loss、capacity factor、token drop、expert replication 和动态重放置各有质量/系统代价。
  • 指标应包括每 expert token 数分布、max/mean、drop rate、All-to-All bytes/time、GEMM shape、overlap 和端到端 MFU。

追问:为什么单纯提高 capacity factor 可能降低 drop 却恶化吞吐和显存?

Q40. 给定模型和集群,如何选择并行组合?

高分回答要点

  • 先用参数/optimizer/activation/KV 预算判断最低必要分片:优先使用吞吐损失较小的 DP/FSDP;单模型放不下才逐步引入 TP/PP/CP/EP。
  • TP/CP 放高带宽域,PP 用于跨节点扩展层数,DP 利用剩余副本;长 context 可能迫使 CP,MoE 架构迫使 EP。
  • 枚举合法组合,建立每层 FLOPs、collective/P2P 字节、bubble、峰值显存和 topology-aware bandwidth 模型,再用小规模 sweep 校准。
  • 最终目标不是单步最快,而是满足显存、稳定性和目标 global batch 下的 tokens/s、MFU、成本及恢复要求。

评分上限提示:只说“8 卡就 TP8”或“越多并行越快”是 0-1 分答案。



上一篇:DDP、FSDP 与训练运行时 · 系列总索引 · 下一篇:推理引擎与在线服务

This post is licensed under CC BY 4.0 by the author.

AI Infra 面试题(二):DDP、FSDP 与训练运行时

AI Infra 面试题(四):LLM 推理引擎与在线服务