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.

Katib

1,223 views

Published on

Machine Learning Casual Talks #5 でのLT

Published in: Software
  • Be the first to comment

Katib

  1. 1. 2018-07-13 NTT ソフトウェアイノベーションセンタ 大嶋悠司 KubeFlow/Katib ハイパーパラメータチューニング
  2. 2. 自己紹介 大嶋 悠司 @overs_5121 NTT ソフトウェアイノベーションセンタ OSS活動が主な業務の1つ • GoBGP(ソフトウェアBGPルータ) • Docker • Docker/Infrakit (メンテナ) • KubeFlow/Katib (オーナー/Approver)
  3. 3. Katibとは https://github.com/kubeflow/katib • KubeFlowコミュニティが開発するプロジェクトの1つ https://schd.ws/hosted_files/kccnceu18/d4/Kubeflow_Deep_Dive.pdf Please star!
  4. 4. Inspired by Google Vizier(A Service for Black-Box Optimization) [D. Golovin, B. Solnik et al. 2017] ● Googleが社内のBorg(Kubernetesの前身)前提に作ったシステムを参考 ● 様々なタスクのハイパーパラメータチューニングを共通化 Katib
  5. 5. ちなみに Katib: ‫ ﻛﺎﺗب‬アラビア語で書記官,秘書 元となったGoogle Vizierはアラビア語で宰相
  6. 6. Katib パラメータ作るよ! Suggestion = パラメータ作る 監視してダメそうな やつ止めるよ APIサーバだよ!
  7. 7. パラメータの範囲な どのコンフィグ Start Study Client がKatib API を使ってタスクをスタート ______ ______ ______ Early Stopping Early Stopping Workers
  8. 8. Early Stopping Early Stopping Workers Suggestion service 定義された空間からパラメータを生成 パラメータ生成 各パラメータを評価する Workerを起動 Suggestion Suggestion要求
  9. 9. Early Stopping Early Stopping Workers EarlyStopping Service が各ワーカを監視し,アルゴリズムに基づいて止 めるワーカを決定 ワーカを監視 見込みのないワーカを早期終了 EarlyStopping
  10. 10. How to use Katib ManagerClient Call GRPC APIs • Create Study • GetSuggestions • RunTrials • GetMetrics K8s API Server ハイパーパラメータを埋め込んだ学 習用のPodを生成 Get Logs
  11. 11. name: mnist-demo owner: oshima optimizationtype: 2 optimizationgoal: 0.99 parameterconfigs: configs: - name: --lr parametertype: 1 feasible: min: "0.01" max: "0.03" - name: --num-layers …
  12. 12. サポートされているアルゴリズム • Suggestion • Random • Grid • HyperBand [L. Li, K. Jamieson et al.] • Bayesian Optimization [E. Brochu, V. Cora et al.] • EarlyStopping • MedianStopping [D. Golovin, B. Solnik et al.]
  13. 13. 全コンポーネントがKubernetesのdeployment, service として定義される Katibはなにが優れているか Manager Random Service Random Deploy Random Deploy Random Deploy バックエンドのスケールが容易 Suggestion要求
  14. 14. 全コンポーネントがKubernetesのdeployment, service として定義される Katibはなにが優れているか Manager Random Service Random Deploy タスク実行中 Another Service Another Deploy サービスの追加・削除が他に影響を与えない
  15. 15. Katibコンセプト • k8sと連携して大規模並列に評価 • パラメータチューニングのアルゴリズム自体のテストも容易に • スケーラブルに • 共通基盤として頑健に
  16. 16. Katib Manager Suggestion Service EarlyStopping Service Katib DB MySQL Create/Get Resources • Study • Trial • Worker • ServiceParameter K8S API Server GetSuggestions GetShouldStopWorkers Run/Stop Worker Get Metrics ModelDB Save/Get Model Get/Create/Run Resouces • Study • Trial • Worker • ServiceParameter APIs Katib API: Interface for clients Internal API: Interface for Internal service
  17. 17. 今後 KubeFlow は 9月にv0.3  12月にv1.0予定 Katibは • アーキテクチャサーチもサポートしたい! • もっとハイレベルなAPIがほしい • パラメータとパフォーマンスに紐付いたモデル管理 • などなど.. コントリビューター大募集中!
  18. 18. まとめ • KatibはKubeFlowのハイパーパラメータチューニングフレームワー ク • Kubernetesと連携して大規模並列に実行 • スケーラブルかつ容易に拡張できるように設計されている

×