ニュース

NEC、ビッグデータ分析を高速化する分散処理技術を開発

Hadoopの機械学習処理を10倍高速化

 日本電気株式会社(NEC)は8日、ビッグデータの分析を高速化する分散処理技術を開発したと発表した。時間のかかるレコメンド・価格予測・需要予測などビッグデータの機械学習処理をHadoopで実行する際、従来の10倍以上の高速化を実現したという。

 ビッグデータの分析には、Hadoopを主とした分散処理基盤を用いるのが一般的だが、Hadoopはデータから規則性やパターンなどを抽出する機械学習などの複雑な処理を高速に実行することは困難だった。例えば、多量のデータを用いてレコメンド・価格予測・需要予測など高度な分析を行う場合、処理結果を基にさまざまな検討を行い、分析軸の変更や処理を何度も繰り返す必要があり、データ量によっては最終的な分析結果を得るために1週間以上かかることもあるという。このような場合、リアルタイムな分析ができず、機会損失につながってしまうという。

 今回、開発した分散処理技術では、「機械学習など複雑な処理の高速化」「処理の途中の状態を保存する手法により高速化と高い信頼性の両立」を実現した。

 機械学習では繰り返し演算と行列演算が頻繁に用いられる。Hadoopで繰り返し演算を実現するためには、分散処理手法であるMapReduceを多数組み合わせる必要がある。従来、MapReduce間のデータ受け渡しはHDD経由で行っていたが、新技術ではメモリ経由で行うことで、繰り返し演算を高速化する。また、行列演算をMapReduceで実現する場合、多数のMapReduceを組み合わせる必要があるとともに、処理を実行する際にサーバー間の通信が非効率になる場合がある。これを解決するため、別の分散処理手法であるMPI(Message Passing Interface)を利用した。これらにより、機械学習プログラムにおいてHadoopの10倍以上の速度を実現したという。

 一方、分散処理では多数のサーバーを用いるため、そのうちの1台が故障する確率も増大する。その場合も処理を継続できる高信頼な仕組みが必要となる。Hadoopでは、サーバー故障時にHDD上にある入力データを用いて、故障したサーバーが行った計算をやり直しているが、今回の新技術では入力データはメモリ上にあるため、サーバーが故障するとデータが失われてしまう。そこで高速化と信頼性を両立するため、メモリ上にある処理の状態を高速にHDDに保存する技術を開発した。同技術は世界初という。

 なお、今回の成果の一部は、平成21年度から平成24年度までNECが参画した独立行政法人 新エネルギー・産業技術総合開発機構(NEDO)の「グリーンネットワーク・システム技術研究開発プロジェクト(グリーンITプロジェクト)」によるもの。NECは今後、米国カリフォルニアで開催される国際学会「IEEE International Conference on Big Data 2013」において、10月8日に成果を発表する。

川島 弘之