「パラメーターの調整には一時的に大量のGPU(Graphics Processing Unit)リソースが必要になるため、クラウドのGPU搭載仮想マシンが適していた」――。ディー・エヌ・エー(DeNA) AIシステム部 リードエンジニアの瀬尾直利氏は、機械学習基盤構築の取り組みをこう振り返る。

 DeNAは次世代事業の柱として、人工知能(AI)において、深層学習(ディープラーニング)を含む機械学習を使った新サービス開発に注力している。瀬尾氏は「インターネット企業からAI企業に変わるくらいの気合いを入れて進めている」と力を込める。

 機械学習の活用はPreferred Networks(PFN)との協業で進めている。DeNAとPFNは2016年7月14日、人工知能(AI)を活用した商品やサービスの企画、開発をする合弁会社「PFDeNA」を設立。「数千万ユーザーから1日に数十億の行動ログが集まる」(瀬尾氏)というDeNAのサービスから収集したデータを基に、両社が協業して新製品やサービスを開発する。ゲーム事業や自動車関連、医療分野などでの活用を見込む。

ハイブリッドで基盤構築

 事業を支える機械学習基盤は、オンプレミス環境とクラウドを併用するハイブリッドクラウドとして構築している(図1)。瀬尾氏は「深層学習の基盤には並列処理が得意なGPUが欠かせない」と語る。深層学習では大量の行列計算が必要であり、CPUよりGPUのほうが処理時間を短縮できるからだ。瀬尾氏は「CPUでは30日掛かった処理が、GPUだと4日で済んだ」と一例を挙げる。

図1 オンプレミス環境とクラウドを使った機械(深層)学習基盤を構築
図1 オンプレミス環境とクラウドを使った機械(深層)学習基盤を構築
[画像のクリックで拡大表示]

 機械学習基盤では、大きく二つの段階でGPUを活用している。一つは学習モデルの開発だ。PFNが開発・提供する深層学習フレームワークの「Chainer」を利用し、プログラミング言語はPythonを使っている。

 学習モデルの開発は、GPUにNVIDIAの「Tesla M40」を搭載したオンプレミス環境のサーバーを使う。「学習モデルの開発では、コードのバグ修正など試行錯誤を繰り返す。エンジニアがGPUを専有できる環境が望ましい」(瀬尾氏)ためだ。

 次の段階では開発した学習モデルを基に、各種パラメーターを調整する。「パラメーターを少し変えて並列で学習させて、機械学習の精度を高める」(瀬尾氏)。パラメーターの調整には、一時的に大量のGPUリソースが必要になる。開発段階で使うサンプルデータより大量のデータを使うため、「学習に10時間以上掛かる場合がある」(同氏)という。

 「使い終わったら仮想マシンを削除しても構わないことや、学習処理中にほかの開発作業も進められる」(瀬尾氏)ことから、パラメーターの調整にはクラウドで提供されるGPU搭載仮想マシンを採用した。

 AWSの仮想マシンサービスであるEC2で、GPUにNVIDIAの「Tesla K80」を用いた「P2」シリーズの「p2.xlarge」を利用している。P2シリーズは東京リージョンではまだ使えないため、米バージニア北部リージョンのサービスを使う。

 学習結果はAPI(Application Programming Interface)サーバーを使い、各サービスに提供する。APIサーバーはGPUが不要なため、AWSの汎用的な仮想マシンである「T2」シリーズの「t2.large」を利用する。