GoogleによるTensorFlowのオープンソース化とほぼ時を同じくして、MicrosoftがGitHubにDMTK(Distributed Machine Learning Toolkit)をプッシュした。GoogleがリリースしたのはTensorFlowの単一マシンバージョンだが、MicrosoftのリリースしたDMTKはクラスタ上で動作する。
DMTKはクラスタ上で大量のデータを使って機械学習モデルをトレーニングするパラメータサーバーフレームワークだ。データストレージおよびオペレーション、プロセスおよびスレッド間通信の面倒を見てくれる。DMTKはC++で書かれており、クライアントAPIとSDKを備えている。通信にはZeroMQoおよび/またはMPIを使う。DMTKの能力を説明するのに、Microsoftはこう言っている。「このツールキットを使うと、たった24マシンのクラスタを使って、2000億トークンのWebドキュメント集合における100万トピックおよび2000万語彙のトピックモデルや、1000次元および2000万語彙のword-embeddingモデルをトレーニングできます。これまでこうした作業には数千台のマシンが必要でした。」
フレームワークをオープンソース化するにあたり、Microsoftは各種ツールも提供している。
- DMTK – 基本となる機械学習フレームワーク
- LightLDA – 大規模データに基づくトピックモデルをトレーニングするためのアルゴリズム。この論文によると、LightLDAは、8マシンからなるクラスタ上で「2000億トークンのドキュメント集合における100万トピックと100万語彙(全部で1兆パラメータ)をトレーニングするのに使える」そうで、MicrosoftはBingのモデルをトレーニングするのに使っている。
- Distributed Word Embedding (DWE) – Word2Vecアルゴリズムの並列化。
- Distributed Multi-sense Word Embedding (DMWE) - 多義語に使われるSkip-Gram Mixtureアルゴリズムの並列化。
DMTKはトピックモデリングとword embeddingに使われているが、Microsoftによると「コンピュータビジョン、音声認識、テキスト理解」にも使えるという。