Deep Learning の学習は、計算コストが高いため、通常はオンプレミス環境で実施されることが多いのが実情です。しかし最近、GPUを使用できるクラウド環境が整ってきたため、クラウド環境での学習も検討の一つとなってきています。
今回は、クラウド環境でのDeep Learning の学習の例として、SaaSタイプのクラウドHPCであるRescaleを使ったデモを紹介します。
なお、本デモは、2016/10/5(水) ヒルトン台場で開催された「GTC Japan 2016」CTC/Rescaleセッションにて、デモンストレーションを行いました。
Rescaleとは
Rescale はHPCに特化した従量課金のクラウドで、ハードウェアだけでなく解析ソフトウェアまで提供されており、専用のWebGUI から簡単にジョブ投入し解析を行うことが可能です。
詳細は、下記リンク先を参照してください。
HPC クラウド Rescale (外部サイト)
デモンストレーションのアーキテクチャ
一般物体認識の判別機に用いているcaffemodelを、Rescale上で学習させた結果と置き換えます。これを応用することで、IoTにおけるエッジ機器を、クラウド側のDeep Learning/機械学習の結果を用いて制御することが可能になります。
- 一般物体認識の判別機をJetson TX1上で動作させます。
- Rescale上でDeep Learning の学習を行います。今回はフレームワークとしてcaffeを利用しました。
- Amazon EC2上に実装したWebアプリケーションから、RescaleのAPIを利用して学習結果を取得、Amazon S3上にcaffemodelを、Amazon SQS上に更新情報のキューを展開します。
- Jetson TX1は、Amazon SQSのキューを定期的に監視し、最新版のcaffemodelを取得し、自身の判別機を更新します。
Rescaleでの学習(画面操作)
Rescale上での学習は、画面に従って操作していくことで、簡単に実行できます。
- クローン機能を用いることで、学習履歴からワークフローを選択し再現したり、既存ワークフローを微修正して実行することができます。
- テンプレートファイルと、csvを組み合わせることで、複数のパラメータ設定で学習を行うことができます。またこれを並列実行させることができます。
- 複数の学習結果を、3D表示するなどして、簡単に学習結果の比較/検証を行うことができます。
- 外部に公開されたAPIを使って、学習結果を取得し利用することも可能です。
Jetson TX1での一般物体認識/判別機更新
- Jetson TX1上で一般物体認識のアプリケーションを動かしています。
- マウス、ゴルフボール、ボールペンの認識を試みますが、あまり認識精度は良くありません。
- 先程Rescaleで学習を行った結果を、S3/SQS上に配置します。
- Jetson TX1上のアプリケーションがSQSを定期的に監視しており、学習結果の更新があった場合はこれをダウンロードします。
- 一般物体認識のアプリケーションを再起動し、判別機を更新します。
- 学習により、認識精度が向上しています。
まとめ
計算コストのかかる学習をクラウド環境で手軽に実施できるようになることで、IoTでのDeep Learning/機械学習の応用が身近になります。
また、オンプレミス環境では、実行環境の構築にテクニックが必要であったり、マシンのメンテナンスなどの手間が発生しますが、クラウド環境を用いることで、そのような煩わしさから開放され、本質的な作業に集中することができます。
今回のデモでは、クラウド側で学習を行い、判別と制御をエッジ側(Jetson TX1)で行うアーキテクチャとなっていました。エッジ側の演算能力が高くない場合などは、学習と判別までをクラウド側で行い、制御のみをエッジ側で行うというアーキテクチャも有効だと思います。
様々な分野でIoTが話題になる中、ネットワークに繋がれた多くの機器を、よりインテリジェンスに制御するために、Deep Learning/機械学習は、大変有効な手段だと考えられます。
Rescaleのようなクラウド環境でのHPCを活用していくと、よりIoTが充実したものになっていくでしょう。