angel

Angel的设计理念


Angel的整体设计理念,是简约而不简单,做一个灵活而强大的参数服务器,并在此之上,提供多种机器学习算法,和PS服务,扩展为一个分布式机器学习平台。

因此,在开发之时,Angel从如下5个方向,对整体进行了改进和设计,并在它们之间进行了平衡。包括:

  1. 易用性
  2. 灵活性
  3. 性能
  4. 可扩展性
  5. 稳定性

另外,Angel设计之初,并没有特地为深度学习量身定做,但随着深度学习日趋流行,而PS模式,也是深度学习实现多机多卡的方向之一,Angel后续会加入更多对深度学习的针对性优化。

灵活性

Angel在设计上,考虑到现有的机器学习框架众多的问题,提供了2种模式。Angel支持两种运行模式:ANGEL_PS_WORKER & ANGEL_PS_SERVICE。通过这2种方式结合,Angel本身的Worker模式,追求最大化的性能优势,主打速度。而PS-Service模式,主打对接,可以接入Spark,TensorFlow,Torch等平台,主打生态,从而实现最大程度的灵活性。

性能

  1. 同步协议

    • 支持多种同步协议:除了通用的BSP(Bulk Synchronous Parallel)外,为了解决task之间互相等待的问题,Angel还支持SSP(Stale Synchronous Parallel)和ASP(Asynchronous Parallel)

易用性

扩展性

稳定

Angel在稳定性上,做了大量的工作,保证在机器学习过程中,单个Worker和PS挂掉,都不会影响整个作业的进度,而且能最快的找到备用的机器,快速启动,加载模型或者数据,继续训练过程。