微软发布分布式机器学习开源函数库SynapseML,该函数库的特色在于能够大规模创建机器学习工作管线,SynapseML标准化各种机器学习框架,支持以不同的机器学习生态系统组件,组成全新类别的机器学习系统。SynapseML让开发人员,不需要担心分布式机器学习工作管线的实例细节,在不需要更改程序代码的情况,就能简单地部署至各种数据库、集群和程序语言中。
微软提到,要构建用于生产的分布式机器学习工作管线通常很困难,即便对有经验的开发人员也不例外。组合不同生态系统统的工具,通常需要大量的胶水程序代码,来黏着不同的组件,更麻烦的是,许多框架在设计的时候,并没有考量千台机器的弹性集群使用案例。
SynapseML的功能,便是能够将现有的机器学习框架,和新的算法统一到一个可以跨Python、R、Scala和Java的可扩展API,SynapseML可以用来构建各种可扩展的智慧系统中,包括异常检测、微服务调度或是模型可解释性等。
通过统一的API,能够大幅简化分布式机器学习的开发,微软表示,要开发可容错的分布式程序很复杂,而且是一个容易出错的过程,像是要进行深度网络的分布式评估,除了需要考量部署多GB级模型到数百台机器,而不瘫痪网络之外,资料读取器还必须确保所有资料都在处理队列中,并且保持GPU满负荷,另外,还必需要处理当计算机加入或是离开集群时,工作负载的重新平衡。
目前有部分框架,像是Horovod能够提供类似的管理功能,但是当开发团队想要使用不同的机器学习框架,诸如LightGBM、XGBoost或SparkML进行比较,就需要构建新的环境和集群,而且因为这些训练系统的目的,都不是在提供服务或是部署模型,因此还需要独立的推理和流媒体架构。
SynapseML则能够以单一API来统一不同的机器学习框架,该API具有可扩展性,且独立于资料和各种语言,也能以不同的范式,包括批次、流媒体和提供应用程序的方式来运行,开发人员可以专注在资料和任务上,而不需要耗费心力在不同机器学习生态系统统与数据库的实例细节中。
当开发人员需要创建多框架的使用案例时,SynapseML便能用来组合不同机器学习框架,并且在单节点、多节点和可弹性调整大小的计算机集群上训练和评估模型。SynapseML的API除了可用于不同的程序语言之外,该API还对各种数据库、文件系统和云计算资料存储进行抽象,无论资料存储于何处,开发者都能简单地进行实验。