Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

KubeFlow MeetUp #1 Katibよもやま話

5.456 visualizaciones

Publicado el

KubeFlow MeetUp #1での発表資料です.

Publicado en: Ingeniería
  • Sé el primero en comentar

KubeFlow MeetUp #1 Katibよもやま話

  1. 1. 2018/09/26 NTT ソフトウェアイノベーションセンタ 大嶋悠司 KubeFlow MeetUp #1
  2. 2. 自己紹介 大嶋 悠司 @overs_5121 NTT ソフトウェアイノベーションセンタ OSS活動が主な業務 • GoBGP(ソフトウェアBGPルータ) • Docker • Docker/Infrakit (メンテナ) • KubeFlow/Katib (オーナー)
  3. 3. KubeFlow? Kubernetes上に機械学習基盤を構築するOSSプロジェクト • KubeCon2017NAにてGoogleが発表 • 6月末にv0.2がリリース • Kubecon2018NA(12/16)にv1.0リリース予定 • 参加企業(一部) • Google • Intel • Cisco • Alibaba • PFN • NTT などなど..
  4. 4. 何故KubeFlowが登場し,注目されたか
  5. 5. 機械学習サービスの課題 @Nips2015 実サービスとしてMLコンポーネントを開発,運用する際の課題 Nips2015 にてGoogleが提唱 ● 複雑なモデルは複雑な依存関係を持つ ● 入力データは変化しうる ● フィードバックループの難しさ
  6. 6. TensorFlow Extended (TFX)!
  7. 7. TFXの発表 @KDD2017 TensorFlow Extended (TFX) KDD 2017にてGoogleが発表 実サービス(Google Play)を運用する基盤
  8. 8. 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 ○ サイエンティストが自分の仕事に注力するためにデプロイの困難さなどはプラット フォームで持ってあげるべき
  9. 9. TFXの更に周辺 TFX Borg (クラスタ管理ツール) TFで開発
  10. 10. TFXの更に周辺 TFX Borg (クラスタ管理ツール) TFで開発 OSSとして 成 熟 Kubernetes OSSとして成 熟 TFXオープン化の兆し
  11. 11. KubeFlowの登場 @KubeCon2017
  12. 12. つまり... この会の趣旨は
  13. 13. つまり... この会の趣旨は KubeFlowで一緒に優勝しましょう!
  14. 14. 機械学習をもっと簡単にサービスに • KubeFlowはこれから盛り上がります!皆で勉強しましょう • KFの実装に踏み込んだMeetUpは世界でもほぼないです! (こ こにいる全員がアーリーアダプターです!) • 業務のニーズをコミュニティにフィードバックしましょう!(主催者 のうち2人はコンポーネントのオーナーです) • 業務でのMLのツラミ,ML基盤のツラミを共有しましょう! (KubeFlowは置いといても!)
  15. 15. TFX(再掲)のPipeLine
  16. 16. 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
  17. 17. 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
  18. 18. Getting Sart とりあえずk8sクラスタを用意しましょう GKEの場合RBACが使えるように設定が必要 ( $ kubectl create clusterrolebinding default-admin ) 公式スクリプトで必要ツールをダウンロード $ curl https://raw.githubusercontent.com/kubeflow/kubeflow/master/scripts/download.sh | bash 公式スクリプトでKubeFlow インストール $ KFAPP=kf-test $ kubectl create ns kubeflow $ ./scripts/kfctl.sh init ${KFAPP} --platform none $ cd ${KFAPP} $ ../scripts/kfctl.sh generate k8s $ ../scripts/kfctl.sh apply k8s https://www.kubeflow.org/docs/started/getting-started/ 本資料は次期リリース v0.3 での方法を記述しています v0.2 以前では方法が変わりますのでご注意ください
  19. 19. KubeFlow Core Components
  20. 20. KubeFlow Core Components
  21. 21. KubeFlow Core Components 他のコンポーネントへのリンク集だよ!
  22. 22. KubeFlow Core Components JupyterNoteBookをデプロイします! GPUとかもアタッチできます!
  23. 23. KubeFlow Core Components TensorFlow Jobを作ったり,状態を確認 したりできます!
  24. 24. KubeFlow Core Components ご存知 KubeDash!
  25. 25. 今日の発表予定 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 学習のハイパーパラメータチューニングを楽に並列にできる by Katib オーナー NTT 大嶋
  26. 26. 今日の発表予定 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 フレームワークによらずジョブの管理を.あまつさえ分散で by Chainer Operator オーナー PFN 大村さん
  27. 27. 今日の発表予定 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 パイプラインって何?どうやって定義するの? by メルカリ 上田さん
  28. 28. Katibのよもやま話 ほんのり実装寄りで
  29. 29. Katib ハイパーパラメータチューニングフレームワーク GoogleがTFXと同時にKDD 2017で発表したVizierがモデル • DLフレームワーク非依存 • Yamlでパラメータ空間を定義してk8s上で探索 • サポートするアルゴリズム • Random • Grid • HyperBand • Bayesian Optimization
  30. 30. こっそりいる Tuner
  31. 31. Katib Katib manager Random Grid HyperBand Parameter1 Parameter2 Parameter3 Metrics Collector Metrics Collector Metrics Collector
  32. 32. Katib Katib manager Random Grid HyperBand Parameter1 Parameter2 Parameter3 Metrics Collector Metrics Collector Metrics Collectorジョブ全体の流れ
  33. 33. Katib Katib manager Random Grid HyperBand Parameter1 Parameter2 Parameter3 Metrics Collector Metrics Collector Metrics Collectorチューニングアルゴリズムの選択部分
  34. 34. Katib Katib manager Random Grid HyperBand Parameter1 Parameter2 Parameter3 Metrics Collector Metrics Collector Metrics Collectorパラメータの埋込
  35. 35. Katib Katib manager Random Grid HyperBand Parameter1 Parameter2 Parameter3 Metrics Collector Metrics Collector Metrics Collectorメトリクスの取得
  36. 36. Katib Katib manager Random Grid HyperBand Parameter1 Parameter2 Parameter3 Metrics Collector Metrics Collector Metrics Collectorジョブ全体の流れ
  37. 37. ジョブ全体の流れ: ジョブの作成 Only $kubectl apply -f study-job.yml !
  38. 38. Katib manager Random Grid HyperBand StudyJob Controller ジョブ全体の流れ: ジョブの作成
  39. 39. ジョブ全体の流れ: ジョブの作成 study-job.yml Katib manager Random Grid HyperBand StudyJob Controller
  40. 40. ジョブ全体の流れ: ジョブの作成 study-job.yml StudyJob α Katib manager Random Grid HyperBand StudyJob Controller
  41. 41. ジョブ全体の流れ: ジョブの作成 study-job.yml StudyJob α StudyJob Controller Katib manager Random Grid HyperBand
  42. 42. ジョブ全体の流れ: ジョブの作成 StudyJob αを登録 StudyJob α Katib manager StudyJob Controller Random Grid HyperBand
  43. 43. ジョブ全体の流れ: ジョブの作成 study-job.yml StudyJob α Katib manager Random Grid HyperBand StudyJob Controller パラメータの生成を 要求
  44. 44. ジョブ全体の流れ: ジョブの作成 study-job.yml StudyJob α Katib manager Random Grid HyperBand Parameter1 Parameter2 Metrics Collector Metrics Collector StudyJob Controller
  45. 45. ジョブ全体の流れ: ジョブの作成 study-job.yml StudyJob α Katib manager Random Grid HyperBand Parameter1 Parameter2 Metrics Collector Metrics Collector StudyJob Controller
  46. 46. ジョブ全体の流れ: ジョブの作成 study-job.yml StudyJob α Katib manager Random Grid HyperBand Parameter1 Parameter2 Metrics Collector Metrics Collector StudyJob Controller
  47. 47. ジョブ全体の流れ: ジョブの作成 study-job.yml StudyJob α Katib manager Random Grid HyperBand Parameter1 Parameter2 Metrics Collector Metrics Collector StudyJob Controller
  48. 48. ジョブ全体の流れ: ジョブの作成 study-job.yml StudyJob α Katib manager Random Grid HyperBand StudyJob Controller パラメータの生成を 再度要求
  49. 49. ジョブ全体の流れ: ジョブの作成 study-job.yml StudyJob α Katib manager Random Grid HyperBand StudyJob Controller パラメータの生成を 再度要求 繰り返し
  50. 50. Katib Katib manager Random Grid HyperBand Parameter1 Parameter2 Parameter3 Metrics Collector Metrics Collector Metrics Collectorチューニングアルゴリズムの選択部分
  51. 51. チューニングアルゴリズムの選択 Katib manager study-job.yml algorithm: random Random Grid HyperBand
  52. 52. チューニングアルゴリズムの選択 Katib manager study-job.yml algorithm: random Random Grid HyperBand random-suggestionはおるかね?
  53. 53. チューニングアルゴリズムの選択 Katib manager study-job.yml algorithm: random Random Grid HyperBand
  54. 54. チューニングアルゴリズムの選択 Katib manager study-job.yml algorithm: random Random Grid HyperBand
  55. 55. チューニングアルゴリズムの選択 Katib manager study-job.yml algorithm: random Random Grid HyperBandSaitsuyo
  56. 56. チューニングアルゴリズムの選択 Katib manager study-job.yml algorithm: random Random Grid HyperBand saitsuyo-suggestionはおるかね? Saitsuyo
  57. 57. チューニングアルゴリズムの選択 Katib manager study-job.yml algorithm: random Random Grid HyperBandSaitsuyo
  58. 58. チューニングアルゴリズムの選択 Katib manager study-job.yml algorithm: random Random Grid HyperBandSaitsuyo
  59. 59. チューニングアルゴリズムの選択 Katib manager study-job.yml algorithm: random Random Grid HyperBandSaitsuyo
  60. 60. チューニングアルゴリズムの選択 Katib manager study-job.yml algorithm: random Random Grid HyperBandSaitsuyo
  61. 61. Katib Katib manager Random Grid HyperBand Parameter1 Parameter2 Parameter3 Metrics Collector Metrics Collector Metrics Collectorパラメータの埋込
  62. 62. パラメータの埋込 Go Templateを用いて埋込 最初書くのは面倒かもですが.. どんなworkerのマニフェストでも対応可能
  63. 63. Katib Katib manager Random Grid HyperBand Parameter1 Parameter2 Parameter3 Metrics Collector Metrics Collector Metrics Collectorメトリクスの取得
  64. 64. メトリクスの取得 Worker Metrics Collector
  65. 65. メトリクスの取得 WorkerMetrics Collector (CronJob) Stdout ___ _______ __ _________ _________ Metrics Collector (実体) 毎分
  66. 66. メトリクスの取得 WorkerMetrics Collector (CronJob) Stdout ___ _______ __ _________ _________ Metrics Collector (実体) メトリクス名=数値 となっている部分を探してManagerに報告
  67. 67. Katibまとめ • 並列でパラメータチューニングを行えるフレームワーク • アルゴリズムの追加も容易 • チューニングアルゴリズム自体のテスト,開発も容易

×