为了满足研究人员和开发者日益增长的各种需求,微软亚洲研究院于日前将分布式机器学习工具包(DMTK)通过Github开源。DMTK由一个服务于分布式机器学习的框架和一组分布式机器学习算法构成,是一个将机器学习算法应用在大数据上的强大工具包。
无论是学术界的研究人员还是工业界的开发者,DMTK可以帮助他们在超大规模数据上灵活稳定地训练大规模机器学习模型。当前版本的工具包包含以下几个部分:
1. DMTK分布式机器学习框架:它由参数服务器和客户端软件开发包(SDK)两部分构成。参数服务器在原有基础上从性能和功能上都得到了进一步提升——支持存储混合数据结构模型、接受并聚合工作节点服务器的数据模型更新、控制模型同步逻辑等。客户端软件开发包(SDK)支持维护节点模型缓存(与全局模型服务器同步)、节点模型训练和模型通讯的流水线控制、以及片状调度大模型训练等。
2. LightLDA:LightLDA是一种全新的用于训练主题模型,计算复杂度与主题数目无关的高效算法。在其分布式实现中,我们做了大量的系统优化使得LightLDA能够在一个普通计算机集群上处理超大规模的数据和模型。例如,在一个由8台计算机组成的集群上,我们可以在具有2千亿训练样本(token)的数据集上训练具有1百万词汇表和1百万个话题(topic)的LDA模型(约1万亿个参数),这种规模的实验以往要在数千台计算机的集群上才能运行。
3. 分布式词向量:词向量技术近来被普遍地应用于计算词汇的语义表示,它可以用作很多自然语言处理任务的词特征。我们为两种计算词向量的算法提供了高效的分步式实现:一种是标准的word2vec算法,另一种是可以对多义词计算多个词向量的新算法。
此外,DMTK提供了丰富且易用的API接口,能够有效降低分布式机器学习的门槛。机器学习的研发人员只需要专注于数据、模型和模型训练等机器学习的核心逻辑部分。
DMTK还将在未来的版本中提供更多的功能和算法。我们希望开源分布式机器学习工具包可以促进学术界和工业界在大规模机器学习方面的创新。更多信息,请访问http://www.dmtk.io/。