核心接口类
如上图所示,Angel的核心接口类,在Train的过程中,按照调用的流程,大体为:
- MLRunner
- MLRunner根据Conf,从工厂类,创建AngelClient,按照标准的Train流程开始依次调用AngelClient的各接口
-
- 启动PSServer
- 在PSServer上进行初始化,加载空白的模型
- 训练完成后,将模型从多个PSServer,保存到HDFS
-
- 被AngelClient调用后,开始Train过程
-
- TrainTask调用parse和preProcess方法,将数据从HDFS中读取,并组装成为多个LabeledData组成的DataBlock
- TrainTask调用Train方法,创建MLLearner对象,并将DataBlock传给MLLearner
-
- MLLearner调用自己的Learn方法,读取DataBlock,计算出模型的更新,并通过MLModel中的PSModel,和PSServer进行不停的Push和Pull,最终得到一个完整的MLModel
-
- 根据算法的需要,创建并容纳多个PSModel
-
- 封装了AngelClient中和PSServer的所有通信接口,方便MLLearner调用
了解这些核心类和流程,对基于Angel实现高性能的机器学习算法,将会有不错的帮助。