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.

Kubeflowで何ができて何ができないのか #DEvFest18

8,137 views

Published on

2018/09/01 に発表した資料です。
GDG DevFest 18 Tokyo Machine Learning Session
site: https://tokyo2018.gdgjapan.org/ml
発表資料 Google Slide: https://docs.google.com/presentation/d/e/2PACX-1vQoGOjPBxkcPLnpRvI39OXbILRAu_Amea_Z9wvhs7pIH6bH5_KQFa4HIwYKGYU8w-x1C-0eiV-k9GCL/pub?start=false&loop=false&delayms=3000

Published in: Software

Kubeflowで何ができて何ができないのか #DEvFest18

  1. 1. Kubeflowで何ができて何ができないのか?  上田隼也 @hurutoriya 2018/09/01
  2. 2. Outline 1. 機械学習システムの進化系譜 2. k8s ベースの機械学習ツールキット: Kubeflow 3. Kubeflowの現状と未来
  3. 3. $ whoami ● 上田隼也 :: @hurutoriya ● キカイガクシュウエンジニア ● Machine Learning Casual Talks Co-Organizer ● TFUG: @shuhei_fujiwara さんからお誘い ● https://shunyaueta.com/
  4. 4. 機械学習システムの進化系譜 Lv.1: 現場で耐えうる精度のモデルを作成する Lv.2: 機械学習をサービスインさせる Lv.3: 機械学習のモデルが連日連夜数百個走る...
  5. 5. 機械学習システムの進化系譜 Lv.1: 現場で耐えうる精度のモデルを作成する データが無いと死亡する とりあえず機械学習やりたい→即死 サービスが軌道に乗り、データを収集できる状態 → 機械学習適用のスタートライン
  6. 6. 機械学習システムの進化系譜 Lv.2: 機械学習をサービスインさせる 機械学習モデルができた後に立ちはだかる壁 引用 : Hidden Technical Debt in Machine Learning Systems (NIPS2015)
  7. 7. 機械学習システム構築に立ちはだかる壁 ● 継続的再学習 (Continuous Learning) ● システムに必ずヒトが介在する (Human-in-the-loop) ● データは不変の存在ではない (Data is mutable) 引用 : Hidden Technical Debt in Machine Learning Systems (NIPS2015)
  8. 8. 機械学習システムの進化系譜 Lv.2: 機械学習をサービスインさせる ● データ収集→特徴量抽出→データ検証 ● 各種ワークフロー管理 ● 推論結果のサービング環境 ● マシンリソース管理 ● モデルの精度トラッキング
  9. 9. 機械学習システムの進化系譜 Lv.2: 機械学習をサービスインさせる ● データ収集→特徴量抽出→データ検証 ● 各種ワークフロー管理 ● 推論結果のサービング環境 ● マシンリソース管理 ● モデルの精度トラッキング → やばい!! 一つの機械学習システムのコストが半端ない!!
  10. 10. 機械学習システムの進化系譜 Lv.3: 機械学習モデルが連日連夜数百個走る... Lv.2 である機械学習のサービスインの壁を取り払った世界 Google, Facebook, Uber, Airbnb, etc. 一例: Facebookの機械学習システムは、1日あたり合計200兆件以上の予測と、50億件を 超える翻訳を処理している。また同社のアルゴリズムは、毎日数百万件の偽アカウントを 自動的に削除しているという。 [引用]
  11. 11. 例) Facebookの機械学習基盤
  12. 12. Facebookにおける データ取得と実験結果管理
  13. 13. Lv.3 機械学習システムへの進化方法 ● 機械学習システムを量産可能な仕組みが必要 ● 機械学習基盤で解決 → Googleが提唱する概念 ● プロダクション運用までの時間が月単位から週単位へ ● TFXを使うことで Google Playのインストールが2% UP!! KDD Link here, KDD Video here, Paper Link here, Author Demo Video here .
  14. 14. Kubeflow ● kubernetes 上で動く機械学習ツールキット ○ Goal: End to End の機械学習システムを提供 ● Current Ver. : 0.2 (2018.12.16 に1.0リリース予定) ○ Simple : 数々の機能を Kubeflowで提供 ○ Portable : k8sが動く場所ならどこでも動く ○ Scalable : k8sの機能を使ってスケーラビリティも担保
  15. 15. High-level component overview of a machine learning platform.
  16. 16. High-level component overview of a machine learning platform. Focus
  17. 17. Workflow on Kubeflow Data Split Roll-out Serving Monitoring Logging Trainer Building a Model Model Validation Training at Scale Data ingestion Data Analysis Data Transfor- mation Data Validation Ref: Kubeflow Deep Dive – David Aronchick & Jeremy Lewi, Google (Intermediate Skill Level)
  18. 18. Workflow on Kubeflow Data Split Roll-out Serving Monitoring Logging Trainer Building a Model Model Validation Training at Scale Data ingestion Data Analysis Data Transfor- mation Data Validation Ref: Kubeflow Deep Dive – David Aronchick & Jeremy Lewi, Google (Intermediate Skill Level)
  19. 19. Argo: コンテナワークフローエンジン ● コンテナネイティブなワークフローエンジン ○ 各ジョブはポッドにより実行される ● CI, CDが可能 ● イベントトリガーが絶賛開発中 ○ スケジュールトリガー・定期実行はまだない...
  20. 20. Argo: コンテナワークフローエンジン
  21. 21. Argo: コンテナワークフローエンジン
  22. 22. Pachyderm: 複雑なデータパイプラインの管理 Data Split Roll-out Serving Monitoring Logging Trainer Building a Model Model Validation Training at Scale Data ingestion Data Analysis Data Transfor- mation Data Validation Ref: Kubeflow Deep Dive – David Aronchick & Jeremy Lewi, Google (Intermediate Skill Level)
  23. 23. Jupyterhub: 協働可能なモデル作成 Data Split Roll-out Serving Monitoring Logging Trainer Building a Model Model Validation Training at Scale Data ingestion Data Analysis Data Transfor- mation Data Validation Ref: Kubeflow Deep Dive – David Aronchick & Jeremy Lewi, Google (Intermediate Skill Level) Katib
  24. 24. Jupyterhub: 協働可能な Jupyter Notebook ● Data Scientist がモデル作成をNotebookで行う ● KubeflowではTensorFlowに分散学習基盤を提供 ○ Horovod & OpenMPIもサポート
  25. 25. ● CRD形式でTensorFlow以外のDeepLearningフレームワークの ジョブを実行可能 ○ Pytorch ○ Caffe2 ○ Chainer, etc. モデル: Pytorch, Caffe2, Chainer Operator
  26. 26. ● コンテナベースのハイパーパラメータチューニングツール ● Google Vizierと呼ばれるKDD2017で発表されたGoogleの ブラックボックス最適化の手法からインスパイア ● 特定のDLフレームワークに依存せずにチューニングが可能 a. Random b. Grid c. Hyperband d. Bayesian Optimization Katib: ハイパーパラメータチューニング
  27. 27. Katib: ハイパーパラメータチューニング
  28. 28. Serving: 推論結果をAPIとして提供 Data Split Roll-out Serving Monitoring Logging Trainer Building a Model Model Validation Training at Scale Data ingestion Data Analysis Data Transfor- mation Data Validation Ref: Kubeflow Deep Dive – David Aronchick & Jeremy Lewi, Google (Intermediate Skill Level) TF Serving
  29. 29. ● TFモデルの推論結果をサービング TFの計算グラフで書かれたモデルを C++で書かれたシステムでデリバリー ● Django, Flaskは使わないんですか? ○ Pythonでのサービングはツラい.. ○ Googleが開発しているので期待大 TensorFlow Serving: 推論結果をサービング
  30. 30. ● 逆にTensorFlow Servingのツライところ ○ すべての処理をTensorFlowの 計算グラフに落とし込む必要がある ○ POCなら、Flaskが一番お手軽 ■ データのETLが楽 ■ scikit-learn 最高 TensorFlow Serving: 推論結果をサービング
  31. 31. ● 様々なパラダイムの推論結果をサービング ■ TF ■ Scikit-learn ■ R ■ Spark Seldon Core: マルチパラダイムのモデルをサポート
  32. 32. Overview of Kubeflow Data Split Roll-out Serving Monitoring Logging Trainer Building a Model Model Validation Training at Scale Data ingestion Data Analysis Data Transfor- mation Data Validation Ref: Kubeflow Deep Dive – David Aronchick & Jeremy Lewi, Google (Intermediate Skill Level) TF Serving Katib
  33. 33. Kubeflow Roadmap ● Ver. 1.0 (2018.12.16) ○ Demo: CI of Kubeflow ■ 新しいデータがロードされると継続的な学習 ■ モデル評価 ■ 良いモデルをプロダクションへロールアウト
  34. 34. Kubeflow Roadmap ● Ver. 1.0 (2018.12.16) ○ Demo: CI of Kubeflow ■ 新しいデータがロードされると継続的な学習 ■ モデル評価 ■ 良いモデルをプロダクションへロールアウト ほ、、、本当にできるんですか...?
  35. 35. Tensorflow Extend の世界がKubeflowに! ● Kubeflow0.2 ○ Adding TFX components TFMA & TFT !!! ■ TFXはTF Dev Summit 2018でOSS に!!
  36. 36. Kubeflow の(現状)ツライところ 基本的に発展途上なので、まだツラい ● k8sが辛い (現状ではあくまでPOC確認レベル) ● 各種ツールの学習コストが高い ● 0.2で各種コンポーネントが出揃ってきたが、歯抜け状態
  37. 37. Kubeflow への期待 コンテナベースの機械学習システムは新しいパラダイム ○ 特定の処理は同一だが、アプリケーション層が違うので重複 していた→コンテナベースなら分離して疎結合 ○ 各ワークフローで要求するスペックが全く違う ■ e.g. 画像認識ならGPU、テキストなら巨大なメモリ ■ 各処理をコンテナで分離 →マシンリソースの最適化 ○ Result: プロダクション投入までの高速化
  38. 38. Reference ● TFX: A TensorFlow-Based Production-Scale Machine Learning Platform ● Applied Machine Learning at Facebook: A Datacenter Infrastructure Perspective ● Introducing FBLearner Flow: Facebook’s AI backbone ● Machine Learning in Uber's Data Science Platforms ● Bighead: Airbnb’s End-to-End Machine Learning Platform ● Rules os ML: EN, JP ● Machine Learning Glossary by Google

×