ai-infra-interview-305

第 49 题:FSDP的auto_wrap_policy如何配置?size_based vs module_based

题目

FSDP的auto_wrap_policy如何配置?size_based vs module_based


完整讲解

一、为什么需要 wrap policy?

FSDP 不是「整模型一个大块」做分片,而是把模型切成多个子模块,每个子模块是一个 FSDP 单元:单元内做 all-gather → 算 → 丢,单元间顺序执行。Wrap policy 决定「哪些子模块被包成 FSDP 单元」:包得太粗(如整模型一块)显存峰值高、重叠少;包得太细(每层一个)通信次数多、开销大。auto_wrap_policy 用规则自动决定包装边界。


二、size_based


三、module_based


四、如何选?


面试要点


记忆要点

  1. 单元太粗→显存高;太细→通信多;policy 自动划界。
  2. size_based = 按参数量阈值;module_based = 按指定类(如 Block)。
  3. 有明确 block 用 module_based;否则或混合用 size_based。
返回模块 返回总览