先日ベルリンで行われたGOTOカンファレンスで,MahoutのコミッタのSebastian Schelter氏は,RやPythonと同じくらい使いやすく,スケーラブルなデータ解析の基盤を開発するという,Mahoutの継続的な取り組みの最新状況について概説した。
主な目標として氏が挙げたのは,Rなどの言語と同じ行列表記で,しかも大規模な行列をクラスタ上に分散して並列計算を行うことの可能な,シンプルなScalaベースのDSL(ドメイン固有言語)を提供することだ。
完成するライブラリでは,氏によれば,シームレスに相互利用が可能なローカル行列と分散行列が提供される予定だ。Mahoutチームは,特定のプラットフォームに縛られず,さまざまなプラットフォームをターゲットにできる,プラグイン可能なバックエンドを備えるようにライブラリを設計している。
現時点ではApache Spark用の開発が最も進んでいるが,同じく次世代ビッグデータプラットフォームのインキュベートプロジェクトであるApache Flinkも検討を予定している,とSchelter氏は語った。
この新しいアーキテクチャにはもうひとつ,例えば関連する行列のサイズに基づいて,演算を別々に扱うことが可能であるという重要な側面があり,広範な最適化の可能性が期待されている。氏が挙げた設計上の主要な目標は,データ科学者が並列化についてあまり考えずに,スケーラブルなコードを記述できるようにすることだ。デモページを見れば,結果インターフェースがどのようなものかを確認することができる。
Apache Mahoutは当初,Hadoop上にさまざまな機械学習アルゴリズムを実装するプロジェクトとしてスタートした。 現在はクラス化,クラスタリング,レコメンデーション,文書モデルの学習といった分野のアルゴリズムをカバーしているが,これまではApache Sparkプロジェクトが提供するような柔軟なモデルではなく,HadoopとMapReduceの計算モデルがベースだった。Apache Sparkでは現在,mllibと呼ばれる独自の機械学習ライブラリの開発を始めている。現時点でカバーできているアルゴリズムの数はMahoutより少ないが,同プロジェクトのホームページでは,計算処理をメモリ上に移したことや,反復アルゴリズムのサポートが向上したことによって,はるかに高速になったと主張している。
分散コンピューティングに対するさまざまな代替アプローチが現れたのに合わせて,Mahoutも,MapReduceのみに依存していたそれまでの状況から踏み出す決定を下した。
Google自身もしばらく前から,Google演算データベースにこれまで以上の増分更新を可能にするPercolatorや,グラフ演算の分散実行を目的として構築されたシステムのPregelなど,新たな計算スキームの模索を始めている。このPregelは,Apache GiraphやStanford GPSのようなオープンソースプロジェクトとも結び付きを持っている。
その他のツールボックスとして,機械学習アルゴリズムのさまざまな分散実装を提供するGraphLabが,カーネギメロン大学で開発されている。