Spark Summitでは「Spark Streaming」を使って開発したストリーミング処理アプリケーションに、深層学習ベースの画像認識機能を組み込むデモを披露した。アプリケーション開発者がSQLクエリーだけを使って「画像認識を組み込んだストリーミング処理アプリケーション」を開発できることを示した。

 MicrosoftがSpark Summit 2017で発表した「MMLSpark(Microsoft Machine Learning Library for Apache Spark)」も、同社の深層学習フレームワーク「Microsoft Cognitive Toolkit(CNTK)」で学習済みのモデルを、Sparkアプリケーションに組み込むためのライブラリとなる。

 深層学習の学習処理をSparkで実行することを諦めていない企業もある。IntelとOath(旧Yahoo!)だ。IntelはSoftware and Service GroupのVice PresidentであるMichael Greene氏がSpark Summitの基調講演に登壇し、同社が2016年12月30日にOSSとして公開したSpark用の深層学習フレームワーク「BigDL」をアピールした。

 BigDLは、OSSの深層学習フレームワーク「Torch」をモデルにIntelが開発したもの。プログラミング言語としては「Scala」と「Python」が利用可能で、TorchやTensorFlowや「Caffe」など他の深層学習フレームワークで開発したモデルを取り込める。

 Greene氏は、BigDLが「Intel Math Kernel Library(MKL)」を使用することで、CPUを使った深層学習の高速化を実現したとし、Intelとして深層学習においてもGPUではなくCPUを推す立場を強調した。さらにBigDLがSparkにおける標準的な深層学習フレームワークになると主張した(写真2)。

写真2●「BigDL」をSparkの主要コンポーネントに位置付けようとする米Intelのスライド

1年で使用する技術が一変する例も

 OathはSpark Summit 2017で「TensorFlowOnSpark」の概要を説明した。TensorFlowをSparkクラスター上で稼働するという仕組みで、ストレージとしてSpark用の「HDFS」を利用できたり、Sparkが備える各種パイプラインをTensorFlowと組み合わせて使用できたりするようになる。ネットワークプロトコルとしては「gRPC」に加えて「RDMA(Remote Direct Memory Access)」を使用する(写真3)。SparkクラスターでRDMAを使用する仕組みは、自社で開発した。

写真3●「TensorFlowOnSpark」の概要

 今回TensorFlowOnSparkを解説したのAndy Feng氏は、2016年のSpark SummitではYahoo!の所属として「CaffeOnSpark」を解説していた。2016年の時点で同社は深層学習のスケールアウトにCaffeOnSparkを使用していたが、現在はTensorFlowOnSparkに移行したもようだ。