在现在机器学习如日中天的大背景下,微软亚洲研究院的实习岗位中,机器学习组的工作也是维护DMTK,参与算法改进,那么在此之前我们得了解DMTK是个啥。
DMTK由一个服务于分布式机器学习的框架和一组分布式机器学习算法构成,是一个将机器学习算法应用在大数据上的强大工具包;无论是学术界的研究人员还是工业界的开发者,DMTK可以帮助他们在超大规模数据上灵活稳定地训练大规模机器学习模型。
官网:http://www.dmtk.io/
DMTK 包括以下几个项目:
-
DMTK framework(Multiverso): 参数服务器架构的机器学习
-
LightLDA: 用于大规模主题模型的可扩展、快速、轻量级系统.
-
Distributed word embedding:文字嵌入分布式算法.
-
Distributed skipgram mixture: 多义文字嵌入分布式算法
以Linux为例:
sudo apt-get install libopenmpi-dev openmpi-bin build-essential cmake git git clone https://github.com/Microsoft/multiverso.git && cd multiverso mkdir build && cd build cmake .. && make && sudo make install
使用文档:https://github.com/Microsoft/Multiverso/wiki
下面是一个简单的例子:
1 #include <multiverso/multiverso.h> 2 #include <multiverso/util/log.h> 3 #include <multiverso/util/configure.h> 4 #include <multiverso/table/array_table.h> 5 using namespace multiverso; 6 7 int main(int argc, char* argv[]) { 8 MV_SetFlag("sync", true); 9 MV_Init(&argc, argv); 10 11 ArrayTableOption<int> option; 12 option.size = 500; 13 ArrayWorker<int>* table = MV_CreateTable(option); 14 15 std::vector<int> model(100, 0); 16 std::vector<int> delta(100, 1); 17 18 for (int iter = 0; iter < 100; ++iter) { 19 table->Add(delta.data(), delta.size()); 20 table->Get(model.data(), model.size()); 21 // CHECK_EQ(model[i], (iter+1) * MV_NumWorkers()); 22 } 23 24 MV_ShutDown(); 25 }
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:微软分布式机器学习工具包DMTK——初窥门径 - Python技术站