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でどこまでいける?

7,364 views

Published on

TensorFlow User Group #8での発表資料です

Published in: Engineering
  • Follow the link, new dating source: ♥♥♥ http://bit.ly/2Q98JRS ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating direct: ❤❤❤ http://bit.ly/2Q98JRS ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

KubeFlowでどこまでいける?

  1. 1. 2018/09/14 NTT ソフトウェアイノベーションセンタ 大嶋悠司 KubeFlowでどこまでいける?
  2. 2. 自己紹介 大嶋 悠司 @overs_5121 NTT ソフトウェアイノベーションセンタ OSS活動が主な業務 • GoBGP(ソフトウェアBGPルータ) • Docker • Docker/Infrakit (メンテナ) • KubeFlow/Katib (オーナー)
  3. 3. 今日お話すること • KubeFlowとは? • KubeFlowのできること 今日お話しないこと • Kubernetesについて • KubeFlowの内部実装
  4. 4. KubeFlow? Kubernetes上に機械学習基盤を構築するOSSプロジェクト • KubeCon2017NAにてGoogleが発表 • 6月末にv0.2がリリース • Kubecon2018NA(12/16)にv1.0リリース予定 • 参加企業(一部) • Google • Intel • Cisco • Alibaba • PFN • NTT などなど..
  5. 5. 何故KubeFlowが登場し,注目されたか
  6. 6. 機械学習サービスの課題 @Nips2015 実サービスとしてMLコンポーネントを開発,運用する際の課題 Nips2015 にてGoogleが提唱 ● 複雑なモデルは複雑な依存関係を持つ ● 入力データは変化しうる ● フィードバックループの難しさ
  7. 7. TensorFlow Extended (TFX)!
  8. 8. TFXの発表 @KDD2017 TensorFlow Extended (TFX) KDD 2017にてGoogleが発表 実サービス(Google Play)を運用する基盤
  9. 9. TFXの設計思想 1. 柔軟性 : One machine learning platform for many learning tasks ○ 機械学習基盤は汎用であるべきだが,専用のチューニングも重要 2. 継続的学習 : Continuous training ○ 学習の流れはワークフローやダイヤグラムで記述できる ○ データは常に新しくなる 3. UIの重要性:Easy-to-use configuration and tools ○ ユーザがデータの特性やモデルを解析,デバッグするためにUIは重要 4. 安定性とスケーラビリティ : Production-level reliability and scalability ○ サイエンティストが自分の仕事に注力するためにデプロイの困難さなどはプラット フォームで持ってあげるべき
  10. 10. TFXの更に周辺 TFX Borg (クラスタ管理ツール) TFで開発
  11. 11. TFXの更に周辺 TFX Borg (クラスタ管理ツール) TFで開発 OSSとして 成 熟 Kubernetes OSSとして成 熟 TFXオープン化の兆し
  12. 12. KubeFlowの登場 @KubeCon2017
  13. 13. TFX(再掲)のPipeLine
  14. 14. KubeFlow Pipeline Roll-out Serving Monitering Logging Data Ingestion Data Analysis Data Transform -ation Data Validation Data Splitting Trainer Building a Model Model Validation Training At Scale
  15. 15. KubeFlow Components Roll-out Serving Monitering Logging Data Ingestion Data Analysis Data Transform -ation Data Validation Data Splitting Trainer Building a Model Model Validation Training At Scale TF/Pytorch/Chainer Operator Katib
  16. 16. KubeFlow Components Roll-out Serving Monitering Logging Data Ingestion Data Analysis Data Transform -ation Data Validation Data Splitting Trainer Building a Model Model Validation Training At Scale TF/Pytorch/Chainer Operator Katib 1,柔軟性  :必要に応じてコンポーネントを選択 2,継続的学習:(予定)ワークフローエンジンで柔軟にパイプラインを記述
  17. 17. 実際に使ってみる とりあえずk8sクラスタを用意しましょう GKEの場合RBACが使えるように設定が必要 ( $ kubectl create clusterrolebinding default-admin ) そして公式スクリプトでkubeflowをインストール $ curl https://raw.githubusercontent.com/kubeflow/kubeflow/v0.2.5/scripts/deploy.sh | bash https://v0-2.kubeflow.org/docs/started/getting-started/ 本資料は最新リリース v0.2.5 での方法を記述しています v0.3 以降では方法が変わりますのでご注意ください
  18. 18. KubeFlow Core Components KubeFlow Contral dashboard • kubernetes dashboard • TF Job Dashboard • JupyterHub
  19. 19. KubeFlow Core Components
  20. 20. KubeFlow Central dashboard 衝撃的に簡素!
  21. 21. TensorFlow Job
  22. 22. KubeFlow Central dashboard 3,UIの重要性:(予定)各コンポーネントのUIをCentral dashbordに集め 全体を俯瞰
  23. 23. コンポーネントの追加(Argo) $ ks pkg install kubeflow/ #必要なら $ ks generate argo argo $ ks apply default deploy.shで既にkfのバージョンの固定などは終わっている 以下の様にコンポーネントを追加可能
  24. 24. 分散学習サポート TFで分散学習を使う場合 • パラメータサーバ+ワーカ数のymlが必要 • ワーカのymlはそれぞれ別の名前をつける • 作成,削除の管理 この辺の設定方法はフレームワークによって異なる
  25. 25. KubeFlow Operator TensorFlow, MxNet, Pytorch, Caffe2, Chainer • PSとWorkerのコマンドや入出力データの場所を定義 • それぞれのレプリカ数を設定 • PSとWorkerをまとめたリソースとして管理 • フレームワークによらないコンフィグ 4,安定性とスケーラビリティ: ワーカーのスケジューリングはk8sに任せる 簡単に学習をスケール可能に (予定)他コンポーネントとの連携も統一
  26. 26. TF-Operator
  27. 27. Q:(予定)多くない?
  28. 28. A:そうですね コンポーネントごとに開発を進めており,連携したパイプラインとしての 機能はまだ不完全 各コンポーネントはv0.3で動くようになってきている →Katibをご紹介
  29. 29. Katib ハイパーパラメータチューニングフレームワーク GoogleがTFXと同時にKDD 2017で発表したVizierがモデル • DLフレームワーク非依存 • Yamlでパラメータ空間を定義してk8s上で探索 • サポートするアルゴリズム • Random • Grid • HyperBand • Bayesian Optimization
  30. 30. Katib Katib manager Random Grid HyperBand Parameter1 Parameter2 Parameter3 Metrics Collector Metrics Collector Metrics Collector
  31. 31. Katib UI
  32. 32. パラメータの評価を並列で行える ● スケジューリングはKubernetesが行う ● 一部のジョブの失敗が他に影響しない Katibメリット Katib manager Parameter1 Parameter2 Parameter3 Metrics Collector Metrics Collector Metrics Collector Parameter4 Parameter4 Parameter4
  33. 33. パラメータの評価を並列で行える ● スケジューリングはKubernetesが行う ● 一部のジョブの失敗が他に影響しない Katibメリット Katib manager Parameter1 Parameter2 Parameter3 Metrics Collector Metrics Collector Metrics Collector Parameter4 Parameter4 Parameter4
  34. 34. チューニングアルゴリズムの切り替えが容易 ● KatibのAPIで隠蔽されるためスクリプト側に修正は不要 ● 新たなアルゴリズムの追加が実行中のタスクに影響しない Katibメリット2 Katib manager Random Grid HyperBand Parameter1 Parameter2
  35. 35. チューニングアルゴリズムの切り替えが容易 ● KatibのAPIで隠蔽されるためスクリプト側に修正は不要 ● 新たなアルゴリズムの追加が実行中のタスクに影響しない Katibメリット2 Katib manager Random Grid HyperBand Parameter1 Parameter2
  36. 36. チューニングアルゴリズムの切り替えが容易 ● KatibのAPIで隠蔽されるためスクリプト側に修正は不要 ● 新たなアルゴリズムの追加が実行中のタスクに影響しない Katibメリット2 Katib manager Random Grid HyperBand Parameter1 New Parameter2 Parameter1 Parameter2
  37. 37. Katibデメリット (KF全体ですが)Kubernetes前提 • MOEなどのpythonスクリプト内に組み込めるものと比べ大掛かり • 慣れるまでデバッグが困難 簡単に使うならMOE クラウドならCloudML, SageMakerも選択肢
  38. 38. まとめと今後の期待 TFXの流れをくむオープンなML基盤 まだまだ赤子 各ツールの機能拡充,連携に力を注いでいます!! TFT, TFMAなどTFXの機能が順次追加
  39. 39. 9/26 KubeFlow MeetUPやります! 今回話せなかった ● オペレータ ● Argo ● Katibの内部実装 について詳しくお話します!

×