Closed LSC527 closed 5 months ago
Adam优化器需要保持参数(parameter)、一阶冲量(momentum)、二阶冲量(variance),都是以fp32精度保存,因此所需的内存是参数量的12倍。对于70B模型,CPUAdam需要840GB的CPU内存。
感谢回答。 那么按这个train_ppo_llama_ray_70b.sh的配置,如果70b的actor和70b的critic放置到同一个node上就需要1680GB的内存? 增加节点数量应该可以降低cpu adam的内存占用?(cpu adam的内存占用可以通过zero来parition到不同node?)
那么按这个train_ppo_llama_ray_70b.sh的配置,如果70b的actor和70b的critic放置到同一个node上就需要1680GB的内存?
train_ppo_llama_ray_70b.sh这个配置,actor和critic应该会调度到两个node上,所以每个node至少需要840GB的内存。
增加节点数量应该可以降低cpu adam的内存占用?(cpu adam的内存占用可以通过zero来parition到不同node?)
是的,zero-3可以将optimizer state划分到多个node。
好的,感谢回答!
跑examples/scripts/train_ppo_llama_ray_70b.sh出现内存OOM:
观察到内存占用到了600GB+后OOM了,感觉zero-offload optimizer的内存占用不太正常。 正常需要多少内存能跑起来呢?