参数服务器
用于分布式机器学习,通过多个节点在多台机器上运行来求解机器学习问题。通常是有一个schedule node、多个worker和多个nodes。
- worker:读取数据、计算梯度。通过push和pull操作来和其他server nodes通信。比如,将计算的梯度上传到server,或者pull 最近的模型。
- server:维护和更新模型权重
- scheduler:监控其它nodes的状态,也可以用于发送控制信号给其它节点、收集他们的进展。
1.1.1 Asynchronous SGD
server node:用servers维护权重w,server k得到w的第k个部分。
worker node:做四件事
ps-lite提供push和pull函数用相应的数据和servers进行通信。
asynchronous SGD与单机版不同,workers间没有通信,
1.1.2 Synchronized SGD
2. 并行
in-graph:也就是模型并行,比如神经网络的不同层在不同的GPU上并行训练。
between-graph:也就是数据并行,每个节点模型相同,使用不同的训练样本。
parameter server是key, value扩展;
3. 广告/推荐系统
参考
1.https://ps-lite.readthedocs.io/en/latest/
2. http://www.sohu.com/a/219588169_633700
3. https://getstream.io/blog/factorization-recommendation-systems/