Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20180831 [DeLTA TECH] DeLTA-Liteを支える技術(システム構成編)

676 views

Published on

DeLTA-Liteを支える技術(システム構成編)

組込みシステムで使えるDeep Learningモデルを構築できるWebサービス「DeLTA-Lite」。本サービスの裏側では、機械学習ライブラリ・組込みシステム向けビルドツール・学習タスクキューなど、様々な要素が稼働しています。本講演では、各構成要素の役割と、それらを実現する技術の概要をご紹介します。

講演者:
LeapMind Inc,
Web Application Engineer
藤原 健利

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

20180831 [DeLTA TECH] DeLTA-Liteを支える技術(システム構成編)

  1. 1. DeLTA-Liteを支える技術 ~ システム構成編 ~ 藤原 健利 2018.08.31
  2. 2. LeapMind, Inc. © 2018 2 自己紹介 藤原 健利 LeapMind株式会社 Product Unit, Leader, Software Division 東京工業大学 工学部 卒業。 同大学院 機械宇宙システム専攻修了。 数値シミュレーションを用いた流体力学の研究。 人材系ベンチャー企業でWebサービス・社内シス テムの開発を担当。 LeapMindにジョイン。組込みDeep Learningモデ ル構築ソリューション「DeLTA-Lite」の開発に従 事。
  3. 3. LeapMind, Inc. © 2018 3 機械学習システム ✕ マイクロサービスアーキテクチャ
  4. 4. LeapMind, Inc. © 2018 4 機械学習システム クライアント Web アプリケーシ ョン 学習サーバ (GPU) 推論サーバ (GPU) 学習データ 学習済み モデル
  5. 5. LeapMind, Inc. © 2018 5 機械学習システム クライアント Web アプリケーシ ョン 学習サーバ (GPU) 推論サーバ (GPU) 学習データ 学習済み モデル 学習データをアップロードし モデルを学習 新しいデータで 推論を実行 推論結果をアプリ ケーションで利用 学習時のみ インスタンスを起動 必要に応じて スケーリング
  6. 6. LeapMind, Inc. © 2018 機械学習ライブラリ ● Python ● TensorFlow、PyTorch ● CUDA、GPU ● ... 6 機械学習システムの困りごと 構成要素ごとに異なる技術や手法を選択したい! Webアプリケーション ● PHP、Ruby、Python、Java ● Node.js、npm ● Nginx、Apache ● RDBMS ● NoSQL、KVS ● ...
  7. 7. LeapMind, Inc. © 2018 7 機械学習システムの困りごと 構成要素ごとにスペックをスケーリングしたい! Web Web Train Train Train Train Train Predict Predict Predict
  8. 8. LeapMind, Inc. © 2018 8 機械学習システムの困りごと 構成要素ごとにリリースタイミングが異なる! 別々の開発チームがそれぞれの 構成要素を開発し、リリース管 理をしている。 残りの要素は稼働させたまま、 目的の要素のみリリースしたい 。
  9. 9. LeapMind, Inc. © 2018 9 機械学習システムは、 マイクロサービスアーキテクチャの 利点が活かせる
  10. 10. LeapMind, Inc. © 2018 モノリシックアーキテクチャ マイクロサービスアーキテクチャ 10
  11. 11. LeapMind, Inc. © 2018 Webアプリケーション 認証処理 11 モノリシックアーキテクチャ 決済処理 メール通知処理 クライアント コントローラ
  12. 12. LeapMind, Inc. © 2018 12 マイクロサービスアーキテクチャ 認証サービス 12 決済サービス メール通知 サービス クライアント API API API Web アプリケーション サービス
  13. 13. LeapMind, Inc. © 2018 ● マイクロサービスでは、最大公約数的になることが多い標準 化された汎用的な手段を選ぶのではなく、ジョブごとに適し たツールを選ぶことができる。 ● マイクロサービスは、スケーリングが必要なサービスだけを スケールでき、システムの他の部分を非力なハードウェアで 動作させることができる。 ● マイクロサービスはそれぞれが独立して変更でき、コンシュ ーマを変更する必要なく単独でデプロイできる。 ● マイクロサービスでは、システムのあるコンポーネントに障 害が発生しても、システムの残りの部分は機能し続けること ができる。 (O’Reilly “マイクロサービスアーキテクチャ”より) 13 マイクロサービスアーキテクチャのいいところ
  14. 14. LeapMind, Inc. © 2018 14 DeLTA-Liteのシステム構成
  15. 15. LeapMind, Inc. © 2018 Converted models Trained models Train Queue 15 システム構成 Train queue consumer Datasets Convert Queue Convert queue consumer Web API Server Training Library Converting Tools Client App
  16. 16. LeapMind, Inc. © 2018 Webアプリケーション FPGAモデル出力 トレーニング管理 Converted models Trained models Train Queue 16 システム構成 Train queue consumer Datasets Convert Queue Convert queue consumer Web API Server Training Library Converting Tools Client App
  17. 17. LeapMind, Inc. © 2018 Webアプリケーション Converted models Trained models Train Queue 17 Webアプリケーション Train queue consumer Datasets Convert Queue Convert queue consumer Web API Server Training Library Converting Tools Client App
  18. 18. LeapMind, Inc. © 2018 18 Webアプリケーション ● React.js + Redux による Single Page Application ● サーバー側のデータとユーザーの間のインタフェース ● Gulp + webpackでトランスパイル
  19. 19. LeapMind, Inc. © 2018 Converted models Trained models Train Queue 19 トレーニング管理 Train queue consumer Datasets Convert Queue Convert queue consumer Web API Server Training Library Converting Tools Client App トレーニング管理
  20. 20. LeapMind, Inc. © 2018 20 トレーニング管理 ● AzureSDKによるGPUサーバー起動・停止管理 ● TensorFlowをベースとした学習ライブラリを開発 ● 自社開発のDNN: “LMNet”シリーズ
  21. 21. LeapMind, Inc. © 2018 Converted models Trained models Train Queue 21 FPGAモデル出力 Train queue consumer Datasets Convert Queue Convert queue consumer Web API Server Training Library Converting Tools Client App FPGAモデル出力
  22. 22. LeapMind, Inc. © 2018 22 FPGAモデル出力 ● Pythonで動作するモデルをFPGAで動作するモデルに変換 ● モデルはC++で記述され目的の環境に合わせてコンパイル ● 現在のターゲットデバイスは Intel® Cyclone® V FPGA
  23. 23. LeapMind, Inc. © 2018 Converted models Trained models Train Queue 23 システム構成 Train queue consumer Datasets Convert Queue Convert queue consumer Web API Server Training Library Converting Tools Client App
  24. 24. LeapMind, Inc. © 2018 24 インフラ構成 File StorageBLOB StorageMySQL Application Gateway Train VMManage VM Web API VM Convert VM
  25. 25. LeapMind, Inc. © 2018 25 開発体制
  26. 26. LeapMind, Inc. © 2018 Converted models Trained models Train Queue 26 役割分担 Train queue consumer Datasets Convert Queue Convert queue consumer Web API Server Training Library Converting Tools Client App
  27. 27. LeapMind, Inc. © 2018 ハードウェア 機械学習 バックエンド フロントエンド Converted models Trained models Train Queue 27 役割分担 Train queue consumer Datasets Convert Queue Convert queue consumer Web API Server Training Library Converting Tools Client App
  28. 28. LeapMind, Inc. © 2018 Core Libraries 28 依存関係 DeLTA-Lite Training Library Converting Tools Unit Tests Unit Tests Integration Tests
  29. 29. LeapMind, Inc. © 2018 Core Libraries 29 バージョンアップ DeLTA-Lite Training Library Converting Tools Unit Tests Unit Tests Integration Tests v1.0 v1.0
  30. 30. LeapMind, Inc. © 2018 Core Libraries 30 バージョンアップ DeLTA-Lite Training Library Converting Tools Unit Tests Unit Tests Integration Tests v1.0 v1.0 v1.0
  31. 31. LeapMind, Inc. © 2018 Core Libraries 31 バージョンアップ DeLTA-Lite Training Library Converting Tools Unit Tests Unit Tests Integration Tests v1.0 v1.0 v1.0 v1.0
  32. 32. LeapMind, Inc. © 2018 32 一部の構成要素を 独立してデプロイする作業の例
  33. 33. LeapMind, Inc. © 2018 Trained models Train Queue 33 トレーニングライブラリのデプロイ作業 Train queue consumer Datasets Web API Server Training Library Client App 待機中のトレーニング 実行中のトレーニング
  34. 34. LeapMind, Inc. © 2018 Trained models Train Queue 34 トレーニングライブラリのデプロイ作業 Train queue consumer Datasets Web API Server Training Library Client App トレーニングキューを 停止 実行中のトレーニングが 終了するまで待機
  35. 35. LeapMind, Inc. © 2018 Trained models Train Queue 35 トレーニングライブラリのデプロイ作業 Train queue consumer Datasets Web API Server Training Library Client App トレーニングの依頼は 受け続けられる
  36. 36. LeapMind, Inc. © 2018 Trained models Train Queue 36 トレーニングライブラリのデプロイ作業 Train queue consumer Datasets Web API Server Training Library Client App 実行中のトレーニングが すべて終了 トレーニング ライブラリを更新
  37. 37. LeapMind, Inc. © 2018 Trained models Train Queue 37 トレーニングライブラリのデプロイ作業 Train queue consumer Datasets Web API Server Training Library Client App トレーニングキューを 再開
  38. 38. LeapMind, Inc. © 2018 Trained models Train Queue 38 トレーニングライブラリのデプロイ作業 Train queue consumer Datasets Web API Server Training Library Client App この間、クライアントアプリや WebAPIは稼働したままなので、 通常通り使用できる。
  39. 39. LeapMind, Inc. © 2018 DeLTA-Liteではこれらの作業を Fabricのタスクとして定義 Trained models Train Queue 39 トレーニングライブラリのデプロイ作業 Train queue consumer Datasets Web API Server Training Library Client App
  40. 40. LeapMind, Inc. © 2018 40 その他にも、 インフラ構成管理、 サービス死活監視、ログ収集など、 考えることはいろいろ
  41. 41. LeapMind, Inc. © 2018 まとめ 41
  42. 42. LeapMind, Inc. © 2018 42 まとめ 機械学習システムは、 マイクロサービスアーキテクチャの 利点が活かせる
  43. 43. LeapMind, Inc. © 2018 43 まとめ 機械学習システムは、 マイクロサービスアーキテクチャの 利点が活かせる サービスごとに独立したデプロイ サービスごとに最適な技術選択 サービスごとのスケーリングが容易

×