游乐游手机版

AI 热词解释

首页/AI热词解释/热词详情

FSDP(全分片数据并行)

类型:分布式计算2026-06-01
FSDP(Fully Sharded Data Parallelism)是PyTorch实现的一种分布式训练策略,将模型参数、梯度和优化器状态分片到多个GPU上,从而训练超出单卡显存的大模型。

本次查询:FSDP

中文解释:全分片数据并行

常见场景:大模型训练

一句话解释

FSDP(Fully Sharded Data Parallel)是一种让大模型训练时不再受单卡显存限制的分布式技术:它把模型的参数、梯度和优化器状态切分成小份,分散存储在不同GPU上,训练时动态收集所需部分。

简单来说,FSDP让多卡训练时每张卡只保存模型的一小部分,从而支持训练参数量远超单卡显存容量的模型,同时保持数据并行的高吞吐特性。

为什么会被关注

随着GPT、Llama等大模型参数突破百亿甚至千亿,单张GPU(如A100 80GB)已无法装下完整模型。传统的模型并行(如流水线并行)配置复杂,而FSDP却能几乎“零改动”地将现有单卡训练代码扩展至多卡。

相比DeepSpeed ZeRO,FSDP深度集成于PyTorch原生生态中,无需额外安装第三方库,且支持混合精度、激活检查点等功能,大幅降低了分布式训练的入门门槛。

在Hugging Face Transformers等主流框架中,FSDP已被设为首选分布式策略之一,许多开源大模型的微调教程都默认推荐使用,社区活跃度高。

核心逻辑

FSDP的核心思想是“分片+通信”。训练开始时,每个GPU只持有模型参数的(1/N)分片。前向计算时,通过all-gather操作从其他GPU收集所需完整参数,计算完立即释放;反向传播时类似地收集梯度并做reduce-scatter。

这种设计让每张GPU的显存占用从O(模型大小)降到O(模型大小/N),代价是额外通信开销。实际训练中可通过调整分片粒度(如参数、梯度、优化器状态全分片)在显存与通信之间做平衡。

FSDP支持三种分片模式:仅分片参数、分片参数+梯度、分片参数+梯度+优化器状态。模式越深,显存节省越多,但对通信带宽要求更高。用户可根据集群配置和模型大小灵活选择。

常见场景

用多张消费级显卡(如RTX 4090)微调7B以上大模型:显存不足时,FSDP可将模型切分到4张或8张卡上,让普通开发者也能跑起Llama 2-13B甚至更大的模型。

企业级训练集群中训练千亿级模型:配合混合精度和激活检查点,FSDP能有效利用数百张GPU,保持接近线性的加速比,同时避免传统数据并行因复制完整模型导致的显存爆炸。

在Hugging Face Trainer中一键启用:只需在训练脚本中设置`--fsdp full_shard`或配置策略文件,即可完成分布式部署,无需自己写通信逻辑,极大提升研发效率。

容易混淆的点

FSDP与DeepSpeed ZeRO-3在功能上非常相似,都是实现全分片方案,但FSDP更原生融入PyTorch,而DeepSpeed提供更多进阶优化(如offload、CPU训练)。两者不可同时启用。

FSDP不是模型并行也不是张量并行。模型并行将不同的层分配给不同GPU(流水线并行),张量并行将一个层的计算拆分到多卡。FSDP本质仍是数据并行,只是将模型副本分片。

使用FSDP时,代码中所有模型参数必须通过`fsdp_auto_wrap_policy`正确包装,否则参数不被分片,导致显存未节省。许多新手直接套用普通数据并行代码,效果不佳。

来源:AI 热词解释频道整理
上一篇ZeRO:大模型训练的显存救星 下一篇Gradient Checkpointing(梯度检查点)

相关热词

继续查看关联概念解释。

最新热词

最近新增和整理过的热词内容。