LLM训练用的FSDP方案和zero-2或-3有什么区别吗?
2024-02-16 阅读 11
简要说一下核心区别:ZeRO-2 只把 optimizer state 和 gradients 分片,ZeRO-3 还把 parameters 一并分片;FSDP(PyTorch Fully Sharded)则以模块/张量为单位对参数、梯度和优化器状态做分片并在前向/反向通过 all-gather/reshard 管理全参视图。两者目标都是减内存,但实现和权衡不同:FSDP 更偏 PyTorch 原生、按模块粒度的 reshaping,通信集中在前向/反向的局部时刻;ZeRO 提供更丰富的 CPU/NVMe offload、优化器聚合和成熟的 checkpoint 支持,ZeRO-3 在显存最低但通信复杂度最高。实际选择取决于框架依赖、单/多节点拓扑、是否需要 offload 以及与张量/流水并行的组合。
更新于 2026年01月02日