cpu分布式训练论文阅读
Large Scale Distributed Deep Networks
Downpour SGD:

模型的副本采用异步方式从参数服务器(Parameter Server)中获取参数w和上传Δw到参数服务器
- 模型副本之间运行独立
- 参数服务器组各节点之间同样是独立的
优点:
同步SGD: 如果一台机器失效,整个训练过程将会延时;但是对于异步SGD来讲,如果某个模型副本的一台机器失效,其他模型副本仍然继续处理样本并更新参数服务器中的模型参数
Downpour SGD带来的多种异步处理形式给优化过程带来了进一步的随机性,模型实例最可能是使用一个稍微过时的参数来计算梯度,因为这时其他的副本可能已经更新了参数服务器上的参数。但是,除此之外还有其他随机的来源:因为参数服务器组的每台机器是行为独立的,所以无法保证在给定时间点上,每个节点的参数被更新的次数相同,或者以同样的顺序被更新。更进一步的,因为模型副本使用不同的线程来获取参数和推送梯度值,故在同一时间戳上,单个副本内的参数将有额外的稍微不一致的现象
使用adagrad方法可以提高downpour sgd的鲁棒性. 能增加并发训练的副本数量. 采用热启动训练的方式可以消除可能的稳定性问题.

Sandblaster L-BFGS
主要思路:
- 将参数的存储和操作分布化,算法(如L-BFGS)的核心位于协调器(coordinator)中。该协调器并不直接获取模型参数, 它发出一系列命令(如内积,向量缩放,系数相关加法,乘法)到参数服务器节点,并且这些命令能在节点范围内执行
- 一些额外的信息如L-BFGS的历史数据缓存,同样保存在计算出它的参数服务器节点上。这使得运行大型模型(10亿级参数)成为现实,而且不会因传输参数和梯度过度集中在一个节点上而导致性能下降。 在典型的L-BFGS的并行实现中,数据被分布到许多机器上,每个机器负责对样本数据的一个特定的子集计算梯度,而后梯度值被传输回中心服务器
- 协调器分配给这N个模型副本一小部分的任务量,并且该计算任务远小于总批量,每当副本完成计算处于闲置状态时,立即给其分配新的计算任务,如此下去。为了在整个批量计算的最后阶段进一步优化慢速副本的任务处理,协调器调度最快结束的副本同时计算未完成的任务,从最先结束的副本处取得计算结果, 计算快的节点多计算

实验数据:
当具有2000数量CPU或更少时,Downpour SGD和Adagrad自适应学习速率方法的结合是最有效的方法。 Adagrad方法本身不是为异步SGD的使用而设计的,并且该方法最典型的应用也不是在非凸问题上。但是,在高度非线性的深度网络中,两者的结合的效果却如此的好。我们推测,在面对剧烈的异步更新时,Adagrad自动地对不稳定参数起到了稳定的效果,并且很自然地根据不同的深度网络层数的变化来调整学习速率
实验结果表明,即使在中等规模的模型训练上,使用我们的大规模(分布式)方法,集群方法也比GPU要快,并且没有GPU对模型规模的限制。为了证明其训练更大模型的能力,我们通过训练一个超过10^9数量参数的模型,在ImageNet物体识别上获得了比先前最优的更好的精度水平。
参考文章:
cpu分布式训练论文阅读的更多相关文章
- 分布式多任务学习论文阅读(四):去偏lasso实现高效通信
1.难点-如何实现高效的通信 我们考虑下列的多任务优化问题: \[ \underset{\textbf{W}}{\min} \sum_{t=1}^{T} [\frac{1}{m_t}\sum_{i=1 ...
- [论文翻译] 分布式训练 Parameter sharding 之 ZeRO
[论文翻译] 分布式训练 Parameter sharding 之 ZeRO 目录 [论文翻译] 分布式训练 Parameter sharding 之 ZeRO 0x00 摘要 0x01 综述 1.1 ...
- [源码解析] 分布式训练Megatron (1) --- 论文 & 基础
[源码解析] 分布式训练Megatron (1) --- 论文 & 基础 目录 [源码解析] 分布式训练Megatron (1) --- 论文 & 基础 0x00 摘要 0x01 In ...
- [论文翻译] 分布式训练 Parameter Sharding 之 Google Weight Sharding
[论文翻译] 分布式训练 Parameter sharding 之 Google Weight Sharding 目录 [论文翻译] 分布式训练 Parameter sharding 之 Google ...
- [源码解析] 模型并行分布式训练Megatron (2) --- 整体架构
[源码解析] 模型并行分布式训练Megatron (2) --- 整体架构 目录 [源码解析] 模型并行分布式训练Megatron (2) --- 整体架构 0x00 摘要 0x01 启动 1.1 分 ...
- 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...
- 论文阅读:《Bag of Tricks for Efficient Text Classification》
论文阅读:<Bag of Tricks for Efficient Text Classification> 2018-04-25 11:22:29 卓寿杰_SoulJoy 阅读数 954 ...
- [源码解析] 深度学习分布式训练框架 horovod (7) --- DistributedOptimizer
[源码解析] 深度学习分布式训练框架 horovod (7) --- DistributedOptimizer 目录 [源码解析] 深度学习分布式训练框架 horovod (7) --- Distri ...
- [源码解析] 模型并行分布式训练 Megatron (3) ---模型并行实现
[源码解析] 模型并行分布式训练 Megatron (3) ---模型并行实现 目录 [源码解析] 模型并行分布式训练 Megatron (3) ---模型并行实现 0x00 摘要 0x01 并行Tr ...
- [源码解析] 模型并行分布式训练 Megatron (4) --- 如何设置各种并行
[源码解析] 模型并行分布式训练 Megatron (4) --- 如何设置各种并行 目录 [源码解析] 模型并行分布式训练 Megatron (4) --- 如何设置各种并行 0x00 摘要 0x0 ...
随机推荐
- Java网络编程----通过实现简易聊天工具来聊聊NIO
前文我们说过了BIO,今天我们聊聊NIO.NIO 是什么?NIO官方解释它为New lO,由于其特性我们也称之为,Non-Blocking IO.这是jdk1.4之后新增的一套IO标准.为什么要用NI ...
- Kotlin难点
目录 高阶函数 双冒号 函数引用 类引用 属性引用 匿名函数 Lambda 表达式 例子 作用域函数 高阶函数 高阶函数是将函数用作参数或返回值的函数,还可以把函数赋值给一个变量. 所有函数类型都有一 ...
- vs2022的一些调试技巧——远程调试&线程检查&性能检查
visual studio一直都是.net/c#开发人员最受欢迎的编译器,除了强大的代码提示和项目模板,还拥有大量的调试工具,这一期我们介绍下code freeze阶段的一些调试技巧.包括测试环境/生 ...
- Python实现猜拳小游戏的多种方式
简介 猜拳小游戏是一个经典的小游戏项目,也是初学者学习编程的必要练手题目之一.在 Python 中,我们可以使用多种方式来实现一个简单的猜拳小游戏. 本文将依次介绍六种Python实现猜拳小游戏的方法 ...
- Spring Boot实现高质量的CRUD-2
(续前文) 5.Dao类 Dao类提供操作访问数据库表的接口方法.常规的CRUD,将考虑下列接口方法: 1)插入单条对象记录: 2)批量插入对象记录: 3)修改单条对象记录: ...
- CKS 考试题整理 (08)-Pod指定ServiceAccount
Context 您组织的安全策略包括: ServiceAccount 不得自动挂载 API 凭据 ServiceAccount 名称必须以 "-sa" 结尾 清单文件 /cks/s ...
- 自己动手实现rpc框架(二) 实现集群间rpc通信
自己动手实现rpc框架(二) 实现集群间rpc通信 1. 集群间rpc通信 上一篇博客中MyRpc框架实现了基本的点对点rpc通信功能.而在这篇博客中我们需要实现MyRpc的集群间rpc通信功能. 自 ...
- 《设计模式的运用》使用策略模式+工厂模式优化代码中的if else
使用策略模式优化if else 有这样一段逻辑 function{ for{ if() if() if( if( ) ) ... } } 公司有的祖传的代码,是一段规则校验,校验的越多,每一个请求都会 ...
- ElementUi使用el-tooltip实现超出部分显示省略号
效果前: 效果后: 创建myTooltio.vue组件 <template> <div class="tooltip-container"> <el- ...
- wireshark 怎么过滤字符串 和 复制data中的可读文本
设置 首先点击,[捕获]下面的小放大镜 选择 分组字节流 - 窄(UTF-8/ASCII)- 字符串 (注意,要向选择字符串) 效果 复制报文中的可读数据 右键报文,复制,...as Printabl ...