大规模训练的一些奇技淫巧
1. 分布式训练
1.1 数据并行
数据并行是指,通过将将模型(整个)在不同的设备部署多个副本,每个设备可以处理不同的batch,那么整体而言,我们就增大了训练时数据的吞吐量。从而加速了训练:
1.2 模型并行
对不起,我没用过这么大的模型。。。但是,基本思路就是你在一个device算完模型的一部分之后,在to到另一个device就行了,参考下面:
2. torch里的一些奇技淫巧
在torch里进行dataParallel, 我们大概来说有两个接口可以用使用:
- torch.nn.DataParallel 好多人叫做DP模式
- 前向过程的时候,DataParallel 会将输入数据平均分配成多个子部分,然后送入