為了滿足研究人員和開發(fā)者日益增長的各種需求,微軟亞洲研究院于日前將分布式機器學習工具包(DMTK)通過Github開源。DMTK由一個服務于分布式機器學習的框架和一組分布式機器學習算法構成,是一個將機器學習算法應用在大數(shù)據(jù)上的強大工具包。
無論是學術界的研究人員還是工業(yè)界的開發(fā)者,DMTK可以幫助他們在超大規(guī)模數(shù)據(jù)上靈活穩(wěn)定地訓練大規(guī)模機器學習模型。當前版本的工具包包含以下幾個部分:
1. DMTK分布式機器學習框架:它由參數(shù)服務器和客戶端軟件開發(fā)包(SDK)兩部分構成。參數(shù)服務器在原有基礎上從性能和功能上都得到了進一步提升——支持存儲混合數(shù)據(jù)結構模型、接受并聚合工作節(jié)點服務器的數(shù)據(jù)模型更新、控制模型同步邏輯等。客戶端軟件開發(fā)包(SDK)支持維護節(jié)點模型緩存(與全局模型服務器同步)、節(jié)點模型訓練和模型通訊的流水線控制、以及片狀調度大模型訓練等。
2. LightLDA:LightLDA是一種全新的用于訓練主題模型,計算復雜度與主題數(shù)目無關的高效算法。在其分布式實現(xiàn)中,我們做了大量的系統(tǒng)優(yōu)化使得LightLDA能夠在一個普通計算機集群上處理超大規(guī)模的數(shù)據(jù)和模型。例如,在一個由8臺計算機組成的集群上,我們可以在具有2千億訓練樣本(token)的數(shù)據(jù)集上訓練具有1百萬詞匯表和1百萬個話題(topic)的LDA模型(約1萬億個參數(shù)),這種規(guī)模的實驗以往要在數(shù)千臺計算機的集群上才能運行。
3. 分布式詞向量:詞向量技術近來被普遍地應用于計算詞匯的語義表示,它可以用作很多自然語言處理任務的詞特征。我們?yōu)閮煞N計算詞向量的算法提供了高效的分步式實現(xiàn):一種是標準的word2vec算法,另一種是可以對多義詞計算多個詞向量的新算法。
此外,DMTK提供了豐富且易用的API接口,能夠有效降低分布式機器學習的門檻。機器學習的研發(fā)人員只需要專注于數(shù)據(jù)、模型和模型訓練等機器學習的核心邏輯部分。
DMTK還將在未來的版本中提供更多的功能和算法。我們希望開源分布式機器學習工具包可以促進學術界和工業(yè)界在大規(guī)模機器學習方面的創(chuàng)新。更多信息,請訪問http://www.dmtk.io/。