GPU捉襟见肘还想训练大批量模型?谁说不可以

选自Medium机器之心编译深度学习模型和数据集的规模增长速度已经让GPU算力也开始捉襟见肘,如果你的GPU连一个样本都容不下,你要如何训练大批量模型?通过本文介绍的方法,我们可以在训练批量甚至单个训练样本大于GPU内存时,在单个或多个GPU服务器上训练模型。2018年的大部分时间我都在试图训练神经网络时克服GPU极限。

使用torch.nn.DataParallel的前向和后向传播。在前向传播的第四步(右上),所有并行计算的结果都聚集在GPU-1上。这对很多分类问题来说是件好事,但如果你在大批量上训练语言模型时,这就会成为问题。我们可以快速计算语言模型输出的大小:语言模型输出中的元素数量。

使用DataParallelModel和DataParallelCriterion。

主服务器(服务器1)拥有一个可访问的IP地址和一个用于通信的开放端口。改写Python训练脚本以适应分布式训练首先我们需要改写脚本,从而令其可以在每台机器(节点)上独立运行。我们将实现完全的分布式训练,并在每个节点的每块GPU上运行一个独立的进程,因此总共需要8个进程。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181021A0IB8N00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券