ページの先頭です。
サイト内の現在位置を表示しています。
  1. ホーム
  2. プレスリリース
  3. NEC、ベクトル型コンピュータに適した機械学習向けデータ処理技術を開発
ここから本文です。

NEC、ベクトル型コンピュータに適した機械学習向けデータ処理技術を開発

~従来比50倍以上の高速化を実現~

2017年7月3日
日本電気株式会社

NECは、ベクトル型コンピュータ(注1)に適した、機械学習を高速実行するデータ処理技術を開発しました。本技術により、複数サーバを接続したクラスタ上のSpark(注2)での利用と比較し、50倍以上高速に機械学習を実行できます。

今回、大規模な機械学習でよく用いられる「疎行列(注3)」というデータ構造に着目した演算技術と通信技術を開発することで、機械学習においてもベクトル型コンピュータが持つ性能を最大限に発揮した高速実行を実現しました。

また本技術を取り込んだミドルウェアを開発し、本技術の利用を容易にしました。本ミドルウェアはSparkやPython(注4)から呼び出すことができ、これらのユーザは特別なプログラミング無しで使用できます。

これにより、例えば、Web広告出稿の最適化やレコメンド、文書分析の分野で分析が短時間で行えるようになるため、タイムリーに結果を利用できます。また、少数のサーバにより低コストな分析が可能になるため、大企業以外にも幅広いユーザ層で大規模なデータ分析が可能となります。

NECでは次世代ベクトル型コンピュータの開発を行っており(注5)、幅広い価格・性能レンジで提供する予定です。本技術を適用することで、従来ベクトル型コンピュータが得意としてきた数値計算領域に加え、機械学習などの大規模データ分析を対象とした領域へもその活用を拡大します。

NECは「社会ソリューション事業」に注力しており、今後も社会インフラを最適化・効率化するAIの活用を、プラットフォーム技術を強化することで拡大し、安全・安心な社会づくりに貢献していきます。

写真1. カード搭載型ベクトルプロセッサー

背景

近年、大規模なデータを用いた分析や予測を行うため、AIの一手法である機械学習技術の適用が拡大しています。機械学習技術を用いて大規模なデータを分析する際、一般的には、複数のサーバを接続したクラスタと呼ばれるハードウェア環境で、Sparkなどのミドルウェアを用いて分散処理を行います。しかし、データ量が膨大な場合、処理性能が追い付かないためタイムリーに分析結果を利用できない、あるいは多数のサーバを必要とするためコストがかかるという課題がありました。
NECは、長年、膨大かつ複雑な計算処理に圧倒的な高性能を誇るベクトル型コンピュータを開発しています。今回、その優れた性能を最大限に活かし、機械学習を従来比で50倍以上高速に実行できる技術を開発しました。

新技術の特長

  1. ベクトル型コンピュータに適した方式を開発し疎行列演算を高速化
    大規模データを用いて機械学習を行う際、「疎行列」と呼ばれるデータがよく用いられます。通常の表形式ではなく、ゼロとなる部分はデータを保持しない構造とすることでデータ量を削減できるため、大規模な行列でも効率よく扱うことが可能となります。
    一方、ベクトル型コンピュータは、複数の処理を同時に行うことで高速化を実現しているため、一回の処理量が十分大きくないと効率の低下につながります。機械学習で用いられる疎行列には、ゼロでない部分の数が行ごとに大きく異なるという特徴があるため、単純に行単位で処理を行うと、ゼロでない部分が少ない行では処理効率が下がるという課題がありました。
    本技術では、ゼロでない部分の数に応じて、列単位で処理を行うフォーマットと行単位で処理を行うフォーマットを使い分けるハイブリッドフォーマットを開発し、データの処理量を常に大きく保つことで、この課題を解決しました。

    図1. 疎行列演算を高速化するデータ処理方式

  2. 疎行列を対象とした機械学習における通信量を削減
    機械学習を高速に行うためには、データを分割し、複数のプロセッサで並列に処理を行います。得られた処理結果は再度一つにまとめますが、その際、プロセッサ間で通信を行う必要があるため、この通信時間が並列処理による性能向上を妨げるという課題がありました。
    ここで、機械学習の入力となる疎行列に注目します。元々の疎行列はすべての列でどこかの行に値があるような行列でしたが、これを分割するとどの行にも値をもたない列が発生します。機械学習処理では、列の値に対応して処理結果が更新されるため、値を持たない列に対応する部分は更新されません。このような更新されない部分を通信から省くことで、通信量の削減を実現しました。

    図2. 通信量の削減を実現するデータ通信方式

  3. 上記技術を取り込んだミドルウェアを開発
    機械学習を行う各種プログラムから上記の技術を容易に利用できるミドルウェアを開発しました。本ミドルウェアはC++とMPI(注6)を用いて実装することで効率的に実行できる他、Sparkと同様複数のプロセッサにまたがる並列処理を容易に記述できるように設計されています。さらに、本ミドルウェアはSparkやPythonから、これらが提供する機械学習ライブラリ(注7)と同じ形式で呼び出すことが可能です。これらのライブラリのユーザは、特別なプログラミング無しで、本ミドルウェアを利用することができます。
    今回、機械学習にかかる実行時間について、複数サーバを接続したクラスタ上でSparkを実行した場合と、NEC製ベクトル型コンピュータ「SX-ACE」上で本ミドルウェアを実行した場合を比較しました。ミドルウェアの効率の良さと、ベクトル型コンピュータを用いた高速化により、同一コア数(64コア)での比較で50倍以上高速に実行できることを確認しました(注8)。

    図3. 同一コア数(64コア)におけるデータ処理速度の比較

なおNECは、本技術を、7月3日(月)から6日(木)まで、オーストリア・インスブルックにて開催される「International Symposium on Parallel and Distributed Computing」において、5日に発表する予定です。http://ispdc2017.dps.uibk.ac.at/

NECグループは、安全・安心・効率・公平という社会価値を創造する「社会ソリューション事業」をグローバルに推進しています。当社は、先進のICTや知見を融合し、人々がより明るく豊かに生きる、効率的で洗練された社会を実現していきます。

以上

  • (注1)ベクトル型コンピュータ:ベクトルプロセッサという高速プロセッサを搭載し、一つのベクトル命令で配列要素を一括処理することにより大規模・複雑な計算を高速処理できるコンピュータ。
  • (注2)Spark:Apache Software Foundationが開発・公開しているオープンソースの分散処理基盤。
  • (注3)疎行列:行列のごく一部だけに値があり、それ以外の部分はゼロとなる行列
  • (注4)Python:データ分析などでよく用いられるプログラミング言語
  • (注5)http://jpn.nec.com/press/201411/20141117_02.html
  • (注6)サーバ同士の通信を高速に行うためのライブラリ
  • (注7)ある機械学習の機能をほかのプログラムから利用できるよう、部品として格納したもの。
  • (注8)ロジスティック回帰はCriteo社が公開しているデータセットを、特異値分解とK-meansは英文Wikipedia全文を対象に処理を行った。Sparkはバージョン1.6.0を利用し、Xeon E5 2630v3上で実行。

本件に関するお客様からのお問い合わせ先

NEC 研究企画本部 研究プロモーショングループ
お問い合わせ

NECは、社会ソリューション事業を推進する
ブランドメッセージ「Orchestrating a brighter world」のもと、
今後の世界の大きな変化(メガトレンド)に対応する
様々な課題解決や社会価値創造に貢献していきます。
詳細はこちらをご覧ください。
http://jpn.nec.com/profile/vision/message.html
Orchestrating a brighter world

ページの先頭へ戻る