核心接口类


核心接口 - 图1

如上图所示,Angel的核心接口类,在Train的过程中,按照调用的流程,大体为:

  1. MLRunner
    • MLRunner根据Conf,从工厂类,创建AngelClient,按照标准的Train流程开始依次调用AngelClient的各接口
  • AngelClient

    • 启动PSServer
    • 在PSServer上进行初始化,加载空白的模型
    • 训练完成后,将模型从多个PSServer,保存到HDFS
  • TrainTask

    • 被AngelClient调用后,开始Train过程
  • DataBlock

    • TrainTask调用parse和preProcess方法,将数据从HDFS中读取,并组装成为多个LabeledData组成的DataBlock
    • TrainTask调用Train方法,创建MLLearner对象,并将DataBlock传给MLLearner
  • MLLearner

    • MLLearner调用自己的Learn方法,读取DataBlock,计算出模型的更新,并通过MLModel中的PSModel,和PSServer进行不停的Push和Pull,最终得到一个完整的MLModel
  • MLModel

    • 根据算法的需要,创建并容纳多个PSModel
  • PSModel

    • 封装了AngelClient中和PSServer的所有通信接口,方便MLLearner调用

了解这些核心类和流程,对基于Angel实现高性能的机器学习算法,将会有不错的帮助。