在调试Meta初始化的场景下,发现预取配置下,fully_shard内部报错AllGather不支持metaTensor,根因在于root module 要将所有的HSDPState进行lazy_init, 此外,HSDPParam.reset_parameters方法中,当输入是普通Tensor时的处理分支,不应该进行settattr parameter 到对应module中,否则会导致优化器引用的参数和sharded_param不是同一个对象,引发严重的精度问题。
该问题是怎么引起的?
在调试Meta初始化的场景下,发现预取配置下,fully_shard内部报错AllGather不支持metaTensor,根因在于root module 要将所有的HSDPState进行lazy_init,
此外,HSDPParam.reset_parameters方法中,当输入是普通Tensor时的处理分支,不应该进行settattr parameter 到对应module中,否则会导致优化器引用的参数和sharded_param不是同一个对象,引发严重的精度问题。
重现步骤
报错信息