PyTorch Lightning在GCP上的多节点训练错误



我们目前正在进行一个项目,该项目涉及Pytorch Lightning的培训。该代码通过DistributedDataParallel(DDP)使用GPU。目前,它在Vertex AI Training作业的单机和/或笔记本电脑上运行时运行良好。

但是,当我们尝试多节点训练(涉及主池和工作池)时,训练不会启动,因为代码只是在主节点上运行,而不使用工作机器。这是培训代码-

trainer = pl.Trainer(
max_epochs=num_epochs,
weights_summary='full',
callbacks=callbacks,
accelerator='ddp',
gpus=-1,
num_sanity_val_steps=0,
limit_train_batches=limit_train_batches,
limit_val_batches=limit_val_batches,
)

Q1-是否有任何方法可以调用培训工作中的工人节点?


我们还偶然发现了一个名为Ray Lightning的模块,它可以帮助实现同样的目标。但同样的实现会导致一些错误。。。尽管在代码中指定了以下命令,但它并没有被初始化

os.system('ray up cluster.yml')
ray.init(address="auto")
trainer = pl.Trainer(
max_epochs=num_epochs,
weights_summary='full',
callbacks=callbacks,
accelerator='ddp',
plugins=[RayPlugin(num_workers=num_workers, use_gpu=use_gpu)],
num_sanity_val_steps=0,
limit_train_batches=limit_train_batches,
limit_val_batches=limit_val_batches,
)

Q2-对当前问题有任何可能的解决方案吗?

提前感谢。。。

我也遇到了类似的问题,我的0级吊舱正在训练和日志记录,但非0级吊舱只是挂起了。我ssh进入非秩0的pod;nvidia smi";他们都在使用自己的GPU。这可能意味着他们只是因为没有登录而看起来没有进行训练。不过我不能肯定。也许值得为你的系统检查同样的东西?

p.s我的系统是pytorch闪电,部署在内部的kubernetes集群上

最新更新