深度学习模型的并行训练:数据并行VS模型并行

本文探讨了深度学习模型训练中的两种并行方法:数据并行和模型并行。数据并行通过将大型数据集分割在多个GPU上,进行梯度求导和同步更新。模型并行则是因模型过大,将其拆分在不同GPU上,依次进行前向和反向传播。在选择时,需根据实际模型大小和资源考虑。PyTorch中,推荐使用DistributedDataParallel(DDP)而非DataParallel(DP)进行数据并行训练,因为DDP的效率更高,适用于多节点分布式训练。
摘要由CSDN通过智能技术生成

数据并行

由于训练数据集太大,而无法一次将其全部载入内存。因此将数据集分为N份,分别装载到N个GPU节点中去进行梯度求导,然后将所有节点的求导结果进行加权平均,再sync update给所有节点(对于每个节点来说,我们使用相同的模型参数进行前向传播。)。然后继续进行下一步的训练,直到模型收敛或者提前停止训练。

如上图所示,GPU1和GPU2上都装载有完整的模型,但是它们使用不同的子数据集Batch进行训练,每次每个节点的推导结果进行加权平均然后sync到所有的GPU节点上,再继续下一步迭代。

 

模型并行

由于模型太大(层数太深,参数太多),而无法将整个模型载入一个GPU。因此将模型分为N个部分,分别加载到不同的N个GPU节点中。例如模型有1000层,使用10块GPU,GPU0装载模型的前1000层,以此类推,GPU9装载模型的最后1000层。在训练的时候,GPU0先进行前向传播,其结果传给GPU1,然后GPU1接着进行前向传播,以此类推,直到GPU9拿到GPU8给的结果进行反向传播。反向传播过程与前向传播过程类似&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值