wuliang_trick

1.wuliang相对于其他框架来说,增加了一步对特征的压缩,目前能想到两个好处:

1.减少通信量。只push\pull一部分参数即可,不需要的参数不需要exchange。
2.由于是稀疏数据,并且使用了eigen库进行加速运算。重索引的话,避免了构建值为0的特征参与运算,这样减少了内存消耗,同时加快了运算速度。

2.SGC的优势:

1.我们在实现优化器的时候,最直观的想法是把优化器放到server。DGC证明了在实现关于动量的梯度压缩时,应该把优化器放到worker,这样避免了信息的丢失。
2.DGC增加了worker的内存存储量,因此首先SGC通过一步动量近似,减少了内存需求,同时避免了丢失重要信息。
3.第二步。DGC有一步momentum factor masking,是为了缓解参数陈旧问题,但是这个操作在极端情况下,会使Momentum算法退化为SGD。我们在动量近似的基础上,再在server端启用动量优化器,它的作用是补偿momentum factor masking带来的信息损失,这一步显著提升了收敛速度。
4.对于稀疏模型来说,梯度压缩带来的参数陈旧问题更加严重,因为每个特征被遍历到几率更小,因此被延迟的周期更长。我们的第三步就是为了解决参数陈旧问题。延迟更新和全局模型的不一致,影响了模型效果。我们在pull到最新全局模型的时候,先用worker端的梯度累积量对模型进行更新再计算梯度,这样最新的梯度其实是考虑了延迟信息的影响的,这样减少了全局模型和延迟信息的不一致性,加快了收敛速度。

本文标题:wuliang_trick

文章作者:Alfred

发布时间:2018年12月19日 - 09:12

最后更新:2018年12月19日 - 11:12

原始链接:http://blog.hbsun.top/2018/12/19/wuliang_trick/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。