整理一下FSDP1相关的实现,偏源码级,适合想读代码的同学来看 Core 核心流程如图 图中可以看到,FSDP虽然shard了模型,但是在计算(forward)的过程中,还是需要收集所有的参数做计算。所以他还是被划分成DataParallel Init 主要分为两块: 把模型切分成fsdp unit 把每一个fsdp unit的参数展开成FlatParameter 以一个CausalTransformer为例,模型会被组织成一个树形的结构。每一个节点都会有自己的Parameter,定义自己的forward计算逻辑。…