NECは、ベクトル型コンピュータに適した機械学習向けデータ処理技術を開発した。従来の同等システムに比べて、機械学習の実行時間は50倍以上になるなど極めて速い。
NECは2017年7月、ベクトル型コンピュータに適した機械学習向けデータ処理技術を開発したと発表した。従来の同等システムに比べて、機械学習の実行時間は50倍と極めて速い。
NECは、数値計算領域を得意とするベクトル型コンピュータの開発に注力している。今回の技術は、機械学習など大規模データ分析の領域にも、その応用分野を広げていくために開発した。
ベクトル型コンピュータは、複数の処理を同時に実行することで高速化を実現している。このため、一回の処理量が十分に大きくないと効率は悪くなる。ところが、機械学習で用いられるデータ「疎行列」は、ゼロでない部分の数が行ごとに大きく異なる。このため、単純に行単位で処理を行うと、ゼロでない部分が少ない行では、処理効率が低下するという課題があった。
そこで今回は、ゼロでない部分の数に応じて、列単位で処理を行うフォーマットと行単位で処理を行うフォーマットを使い分ける「ハイブリッドフォーマット」を開発した。これにより、データの処理量を常に大きく保つことができ、ベクトル型コンピュータでも高い処理効率を維持することが可能になるという。
もう1つはプロセッサ間の通信量を削減する技術である。機械学習を高速に実行するため、データを分割して複数のプロセッサで並列処理を行い、最終的に処理結果を1つにまとめる。この時、プロセッサ間の通信時間が重要となる。分割されたデータの中には、どの行にも値を持たない列が発生する。値を持たない列は処理結果が更新されないため、機械学習処理ではこれらの部分を通信から省くことで、通信量の削減を行うという。
NECは、これらの技術を利用するためのミドルウェアも用意した。複数のプロセッサにまたがる並列処理を容易に記述できるよう設計されており、「C++」と「MPI」を用いて機械学習用のプログラムに実装することが可能となる。また、「Spark」や「Python」が提供している機械学習ライブラリーと同じ形式で呼び出すことができる。
同社は開発した技術を搭載し、機械学習に要する実行時間も検証した。開発したミドルウェアをNEC製ベクトル型コンピュータ「SX-ACE」上で実行すると、複数サーバを接続したクラスター上でSparkを実行した場合に比べて、CPUコアが64個と同数のシステムでも、その処理速度は50倍以上になることを確認した。
今回の技術を用いると、Web広告出稿の最適化やレコメンド、文書分析などの分野で、時間短縮が可能になるとみている。また少数のサーバで、より安価な分析システムを構築することができるという。
Copyright © ITmedia, Inc. All Rights Reserved.