Apache软件基金会(ASF)最近宣布,分布式深度学习框架SINGA升级为顶级项目(TLP,top-level project)。这表明了 SINGA 项目所达到的成熟度和稳定性。SINGA 已经得到了银行、医疗健康等多行业中企业的应用。
SINGA 最早由新加坡国立大学研究人员开发,并于2015年三月 进入 ASF 孵化器。SINGA 提供了一种在机器集群中分布式训练深度学习模型的计算框架,降低了模型训练所需的时间。SINGA 不仅仅是一种学术研究平台,而且已在花旗集团、世邦魏理仕等多家企业得到了商业应用,并在健康医疗行业得到多处应用,例如为糖尿病前期患者提供帮助的应用。
深度学习模型所取得的成功,是由大规模数据集的使用所驱动的。例如包括成千上万图像的ImageNet、具有上百万参数的复杂模型等。谷歌的自然语言模型BERT具有近 3 亿个参数,是在近 30 亿个单词上训练得到的。但是,完成这种训练通常需要数个小时,甚至数天时间。为加速训练过程,研究人员引入了并行处理技术,将计算任务分布到计算集群的多台设备上。SINGA 研究团队负责人黄铭钧教授指出:
深度学习必须扩展到分布式计算,因为…深度学习模型通常规模巨大,并需要在大型数据集上训练。如果使用单个 GPU,通常需要数百天时间。
分布式深度学习有两种并行策略。一种是数据并行,即多台机器分别处理不同的输入数据子集;另一种是模型并行,即多台机器分别训练神经网络模型的不同部分。SINGA 同时支持上述两种策略,也支持两种策略的组合使用。为协调集群机器间的工作,并行策略将引入额外的通信和同步开销。SINGA 实现了多种优化技术,力图降低上述开销。
SINGA 升级为 TLP 项目,表明该项目已经通过了包括软件质量和社区等在内的多个里程碑 。理论上看,成为 TLP 项目将会得到更多解决方案的考虑。但采纳该软件的一个可能障碍,就是 SINGA 设计人员选择了实现自身的 API,并未基于 Kera 等现有 API 去建模神经网络。与之不同,Uber 开源的Horovod计算框架支持开发人员导出现有模型到目前广为使用的两个深度学习框架,即TensorFlow和PyTorch。尤其是 PyTorch,近期得到大量研究论文采用。
ASF 还支持了多个顶级分布式机器学习数据处理项目,例如Spark和Ignite。SINGA 的独特之处在于,它是专门针对大规模神经学习模型而设计的。同时,ASF 也是另一个深度学习框架MXNet的孵化器。和 TensorFlow 和 PyTorch 一样,MXNet 依然在孵化器阶段。尽管AWS在2016下半年就内定其深度学习框架为MXNet,但是 MXNet 依然并未得到广泛使用。据KDNugget调查显示,MXNet 的使用率仅在不高于2%左右波动。
Apache SINGA 2.0版于 2019 年四月发布,源代码及SINGA Jira项目的可追踪问题列表提供在 GitHub 上。据 ASF 介绍,SINGA 即将推出的特性包括“实现 5G 边缘设备上深度学习的 SINGA-lite,以及易于非深度 AI 背景领域专家开展 AI 计算的 SINGA-easy”。
原文链接:
Deep-Learning Framework SINGA Graduates to Top-Level Apache Project
评论