深度学习框架 SINGA 升级为 Apache 顶级项目
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