输入数据分割与数据并行训练详解
1. 单节点训练的瓶颈
通常认为,在单节点训练中,输入数据规模越大,训练时间就越长。但从数据流的角度来看,并非如此。从系统层面分析,数据加载带宽和模型训练带宽不匹配才是真正的问题。如果能在单节点训练中使这两个带宽相匹配,就无需进行并行模型训练,因为分布式数据处理总会引入控制开销。
1.1 真正的瓶颈
单节点训练中,输入数据规模大并非训练时间长的根本原因,数据加载带宽和模型训练带宽的不匹配才是关键。
1.2 单节点在不同数据集上的训练时间
以 NVIDIA Tesla M60 GPU 作为加速器,对 VGG - 19 和 ResNet - 164 在 CIFAR - 10 和 CIFAR - 100 数据集上进行训练,达到模型测试准确率超过 91% 时,VGG - 19 的总训练时间约为 2 小时,ResNet - 164 约为 10 小时。这一训练时间可以接受,主要是因为 CIFAR - 10/100 数据集的图像分辨率低(32x32),模型训练阶段产生的中间结果较小,在固定硬件内存下能一次训练更多输入图像,从而提高了模型训练带宽,缓解了数据加载带宽和模型训练带宽的不匹配。
然而,对于 ImageNet - 1K 这样的现代机器学习模型训练数据集,使用单 GPU 训练 VGG - 19 或 ResNet - 50 模型大约需要 2 周时间,训练速度慢的主要原因是图像分辨率提高到约 256x256,每个训练图像存储激活值所需的内存增大,一次能训练的图像数量减少,导致模型训练带宽和数据加载带宽的差距更大。对于更宽更深的模型训练,训练时间会更长。对于机器学习从业者来说,仅使用单 GPU
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



