深度学习分布式训练小结
分布式训练本质上是为了加快模型的训练速度,面对较为复杂的深度学习模型以及大量的数据。单机单GPU很难在有限的时间内达成模型的收敛。这时候就需要用到分布式训练。
分布式训练又分为模型并行和数据并行两大类。
1. 数据并行
数据并行在于将不同batch的数据分别交给不同的GPU来运算。如下图所示,灰色部分表示数据,蓝色表示模型。
数据并行中的一类就是参数平均,比如将第一个Batch的256个数据交给第一个U
第二个batch的256个数据交给第二个U
参数平均就是在他们分别通过整个神经网络计算出结果后取平均值,再修改模型中的参数。这样实现实际上在不考虑多GPU与CPU的通信成本上,与单GPU以batchsize为512来进行训练是一样的,但因为同时进行了两个batch的运算,运算速度在理想情况下是线性增加的。参数平均同时也是一个同步更新的过程,多个GPU的运算结果会统一结束并计算平均参数,这在我们使用同算力GPU的时候可以做到效率最大化。
除了同步更新,我们还有异步随机梯度下降。这意味着不同的GPU不需要等待每一个epoch中所有GPU的运算完毕就可以直接更新参数。这很显然进一步提升了多个U的效率,因为我们不再需要保证多个GPU的同步性,更大加快了模型的收敛。但不可避免地是,由于异步的特点,当某一个GPU完成运算并更新参数的时候,可能这时候模型中的全局参数已经经过了多次的改变,这可能会导致绝对误差的放大,优化过程可能不稳定。
2. 模型并行
说完了数据并行,我们来看一下专门用于优化非常复杂的深度学习网络的模型并行。与数据并行不同的是,这次我们通过将模型拆分为几个小的部分,分别交给多个GPU来进行运算。每次仍然给每个模型一个batch的数据来进行计算,将多个GPU作为节点。最后将运算结果进行合并。实际上是一种将模型切割为几个子模型按顺序计算的过程。
参考文本 :
【深度学习】— 分布式训练常用技术简介
【分布式深度学习part1】:神经网络的分布式训练
深度学习分布式训练小结相关推荐
- 程序如何在两个gpu卡上并行运行_深度学习分布式训练相关介绍 - Part 1 多GPU训练...
本篇文章主要是对深度学习中运用多GPU进行训练的一些基本的知识点进行的一个梳理 文章中的内容都是经过认真地分析,并且尽量做到有所考证 抛砖引玉,希望可以给大家有更多的启发,并能有所收获 介绍 大多数时 ...
- [源码解析] 深度学习分布式训练框架 horovod (11) --- on spark --- GLOO 方案
[源码解析] 深度学习分布式训练框架 horovod (11) - on spark - GLOO 方案 文章目录 [源码解析] 深度学习分布式训练框架 horovod (11) --- on spa ...
- [源码解析] 深度学习分布式训练框架 horovod (10) --- run on spark
[源码解析] 深度学习分布式训练框架 horovod (10) - run on spark 文章目录 [源码解析] 深度学习分布式训练框架 horovod (10) --- run on spark ...
- 张量模型并行详解 | 深度学习分布式训练专题
随着模型规模的扩大,单卡显存容量无法满足大规模模型训练的需求.张量模型并行是解决该问题的一种有效手段.本文以Transformer结构为例,介绍张量模型并行的基本原理. 模型并行的动机和现状 我们在上 ...
- 一文提升你对深度学习分布式训练的整体认知!
分布式技术是深度学习技术的加速器. 同时利用多个工作节点,分布式地.高效地训练出性能优良的神经网络模型,能够显著提高深度学习的训练效率.进一步增大其应用范围. <首席AI架构师--分布式高性能深 ...
- 如何理解深度学习分布式训练中的large batch size与learning rate的关系?
问题详情: 在深度学习进行分布式训练时,常常采用同步数据并行的方式,也就是采用大的batch size进行训练,但large batch一般较于小的baseline的batch size性能更差,请问 ...
- 聊一聊深度学习分布式训练
作者 | 杨阳 整理 | NewBeeNLP https://zhuanlan.zhihu.com/p/365662727 在深度学习时代,训练数据特别大的时候想要单卡完成训练基本是不可能的.所以就需 ...
- 深度学习分布式训练框架 horovod (3)
2.1 如何运行 官方给出的 Hovorod 运行范例之一如下: horovodrun -np 2 -H localhost:4 --gloo python /horovod/examples/ten ...
- 利用多 GPU 加速深度学习模型训练
01 - 前言 深度学习模型通常使用 GPU 训练,因为 GPU 具有相比 CPU 更高的计算能力,以 Tesla V100 为例,使用 Tensor Core 加速的半精度浮点计算能力达到 125 ...
最新文章
- Win Form登录机制的实现
- 我所理解的IRepository
- 2018-2019-2 20165234 《网络对抗技术》 Exp5 MSF基础应用
- Spring Cloud Sleuth + Zipkin 监控微服务(一)
- txt doc rtf html,JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例.docx
- Azure Data Studio:Postgres 专用的超强开源 GUI 编辑器了解一下?
- 大数据分析的环节有哪些
- 大数据系统应包含哪些功能模块
- TensorFlow中tf.ConfigProto()配置Sesion运算方式
- secoclient在Mac下使用无法上网的解决办法
- linux虚拟键盘onboard设置,求助,安装屏幕虚拟键盘onboard出错。
- u3d学习:helloworld
- Cobbler 3.x 部署实战
- C#中Dev配色修改
- 医学院交换去计算机学院,第一临床学院成功举办2018年国际医学生SCOPE交换项目...
- ArcGIS干货教程:DEM数字高程模型数据的生成
- 界面仅允许扫码枪录入禁止手工键盘输入
- 使用Python修改可执行文件-EXE的图标
- EMQ-保留消息 概述和案例
- AlarmManager详解