【发布时间】:2021-12-26 12:18:18
【问题描述】:
我们目前正在开展一个涉及 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 - 当前问题的任何可能解决方法?
提前谢谢...????????
【问题讨论】:
标签: python google-cloud-platform ray pytorch-lightning distributed-training