选自Medium机器之心编译深度学习模型和数据集的规模增长速度已经让GPU算力也开始捉襟见肘,如果你的GPU连一个样本都容不下,你要如何训练大批量模型?通过本文介绍的方法,我们可以在训练批量甚至单个训练样本大于GPU内存时,在单个或多个GPU服务器上训练模型。2018年的大部分时间我都在试图训练神经网络时克服GPU极限。
使用torch.nn.DataParallel的前向和后向传播。在前向传播的第四步(右上),所有并行计算的结果都聚集在GPU-1上。这对很多分类问题来说是件好事,但如果你在大批量上训练语言模型时,这就会成为问题。我们可以快速计算语言模型输出的大小:语言模型输出中的元素数量。
使用DataParallelModel和DataParallelCriterion。
主服务器(服务器1)拥有一个可访问的IP地址和一个用于通信的开放端口。改写Python训练脚本以适应分布式训练首先我们需要改写脚本,从而令其可以在每台机器(节点)上独立运行。我们将实现完全的分布式训练,并在每个节点的每块GPU上运行一个独立的进程,因此总共需要8个进程。
领取专属 10元无门槛券
私享最新 技术干货