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