<style>
blockquote { padding-left: 2px; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; border-left: 4px solid #ff7f0f; border-right: 4px solid #ff7f0f; border-top: 4px solid #ff7f0f; border-bottom: 4px solid #ff7f0f; background-color: #eeeeee; }
table, th, td { border: 2px solid black; border-collapse: collapse; }
.katex { font-size: 1.0em; text-indent: 0; text-rendering: auto; }
</style>
Scaling Distributed Machine Learning with the Parameter Server
[李沐本人讲解](https://www.bilibili.com/video/BV1YA4y197G8)
- 系统方向 (内核, 数据抽象, 安全, 网络, debug, 分布事务, 机器学习, 工具)
- 困难之处
- 数据量大 TB PB
- 全局参数量大 1 0 9 ∼ 1 0 12 10^{9} \sim 10^{12} 109∼1012
- 计算复杂度高 (时间接续全局同步)
- 数据通信量大 (所有节点频繁访问)
- 容灾性能
- 主要亮点
- 有效通讯 异步通讯算法 针对机器学习算法压缩通讯量 过滤不重要信息
- 较弱一致 允许延后 受限延迟
- 弹性扩大 加入新节点不影响计算
- 秒级容灾 向量钟 实时复制服务节点 链式备份
- 抽象易用 张量键值通信
- 工程难点
- 反复读写全局参数
- 收集整理节点及其统计量
- 服务节点 维护一部分全局参数
- 工作节点 计算参数
- 分布式梯度下降
- 任务调度者 读取样本 T次工作节点更新
- 工作节点 接收权重 计算梯度 发送梯度
- 服务节点 汇总梯度
- 工程实现
- 向量钟