oneflow-documentation
oneflow-documentation copied to clipboard
Update 05_ddp.md
sbp示例代码中,DistributedSampler封装使dataloader进行分布式数据划分
代码没问题后。记得英文版(en 目录下)的对应文章中的代码也要更新下。
- 当前问题:根据文档描述,由单机单卡改为并行训练时,只需设置
placement,模型集群广播以及split切分即可。但在运行示例代码与单机单卡进行比对时发现,如果只做以上三处改动,会导致模型训练结果变差。 - 猜测:测试发现,目测单机双卡batchsize为64时的训练效果与单机单卡batchsize为128时类似。 ~~可以观察到双卡训练时两张卡的输出完全相同,是否意味着数据输入有问题?~~
- 实验数据:
以下分别为单机双卡batchsize=64
单机单卡batchsize=128
单机单卡batchsize=64

我发现原文档中已经提示过 sampler 的问题
https://docs.oneflow.org/master/parallelism/05_ddp.html#distributedsampler

所以最开始的例子还是保持不变吧,在 05_ddp.html#distributedsampler 那节做修改,添加一个有 distributedsampler,所以单机单卡和分布式训练效果会一致的例子。
我发现原文档中已经提示过 sampler 的问题
https://docs.oneflow.org/master/parallelism/05_ddp.html#distributedsampler
所以最开始的例子还是保持不变吧,在 05_ddp.html#distributedsampler 那节做修改,添加一个有 distributedsampler,所以单机单卡和分布式训练效果会一致的例子。
这一条要求好像还没有更新
我发现原文档中已经提示过 sampler 的问题 https://docs.oneflow.org/master/parallelism/05_ddp.html#distributedsampler
所以最开始的例子还是保持不变吧,在 05_ddp.html#distributedsampler 那节做修改,添加一个有 distributedsampler,所以单机单卡和分布式训练效果会一致的例子。
这一条要求好像还没有更新
我的理解是,上面的那个sbp例子是有问题的,因为没有加distributedsampler,导致训练时两张卡拿到了一样的数据,global_tensor就没起效果,客户跑了之后就产生了疑问。