本项目为经典分布式机器学习算法的的PySpark/Pytorch实现, 主要参考了刘铁岩的《分布式机器学习》和CME 323: Distributed Algorithms and Optimization课程。主要内容包括图/矩阵计算(graph/matrix computation)、随机算法、优化(optimization)和机器学习。
运行以下命令安装环境依赖:
pip install -r requirements.txt
注意我的Python版本是3.8.13,Java版本11.0.15。注意PySpark是运行与Java虚拟机上的,且只支持Java 8/11,请勿使用更高级的版本。这里我使用的是Java 11。运行java -version
可查看本机Java版本。
(base) ➜ ~ java -version
java version "11.0.15" 2022-04-19 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.15+8-LTS-149)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.15+8-LTS-149, mixed mode)
最后,Pytorch的torch.distributed.rpc
模块只支持Linux操作系统,故务必保证您在Linux操作系统上运行相关代码,否则会报错(参见GitHub issues: torch.distributed.rpc)。
- 图计算
- PageRank [explanation]
- Transitive Closure
- 机器学习
- K-means
- Logistic Regression [explanation]
- 矩阵计算
- Matrix Decomposition
- 数值优化
- 同步算法
- Synchronous Stochastic Gradient Descent (SSGD) [explanation] [paper]
- SSGD in Pytorch [explanation] [paper]
- Model Average (MA) [explanation] [paper]
- Block-wise Model Update Filtering (BMUF) [explanation] [paper]
- Elastic Averaging Stochastic Gradient Descent (EASGD) [explanation] [paper]
- Synchronous Stochastic Gradient Descent (SSGD) [explanation] [paper]
- 异步算法
- Synchronous Stochastic Gradient Descent (ASGD)[explanation] [paper]
- Hogwild! [explanation] [paper]
- 同步算法
- 随机算法
- Monte Carlo Method