SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
2018/09/14
NTT ソフトウェアイノベーションセンタ
大嶋悠司
KubeFlowでどこまでいける?
自己紹介
大嶋 悠司 @overs_5121
NTT ソフトウェアイノベーションセンタ
OSS活動が主な業務
• GoBGP(ソフトウェアBGPルータ)
• Docker
• Docker/Infrakit (メンテナ)
• KubeFlow/Katib (オーナー)
今日お話すること
• KubeFlowとは?
• KubeFlowのできること
今日お話しないこと
• Kubernetesについて
• KubeFlowの内部実装
KubeFlow?
Kubernetes上に機械学習基盤を構築するOSSプロジェクト
• KubeCon2017NAにてGoogleが発表
• 6月末にv0.2がリリース
• Kubecon2018NA(12/16)にv1.0リリース予定
• 参加企業(一部)
• Google
• Intel
• Cisco
• Alibaba
• PFN
• NTT などなど..
何故KubeFlowが登場し,注目されたか
機械学習サービスの課題 @Nips2015
実サービスとしてMLコンポーネントを開発,運用する際の課題
Nips2015 にてGoogleが提唱
● 複雑なモデルは複雑な依存関係を持つ
● 入力データは変化しうる
● フィードバックループの難しさ
TensorFlow Extended (TFX)!
TFXの発表 @KDD2017
TensorFlow Extended (TFX)
KDD 2017にてGoogleが発表
実サービス(Google Play)を運用する基盤
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
○ サイエンティストが自分の仕事に注力するためにデプロイの困難さなどはプラット
フォームで持ってあげるべき
TFXの更に周辺
TFX
Borg (クラスタ管理ツール)
TFで開発
TFXの更に周辺
TFX
Borg (クラスタ管理ツール)
TFで開発
OSSとして
成
熟
Kubernetes
OSSとして成
熟
TFXオープン化の兆し
KubeFlowの登場 @KubeCon2017
TFX(再掲)のPipeLine
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
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
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,継続的学習:(予定)ワークフローエンジンで柔軟にパイプラインを記述
実際に使ってみる
とりあえず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 以降では方法が変わりますのでご注意ください
KubeFlow Core Components
KubeFlow Contral dashboard
• kubernetes dashboard
• TF Job Dashboard
• JupyterHub
KubeFlow Core Components
KubeFlow Central dashboard
衝撃的に簡素!
TensorFlow Job
KubeFlow Central dashboard
3,UIの重要性:(予定)各コンポーネントのUIをCentral dashbordに集め
全体を俯瞰
コンポーネントの追加(Argo)
$ ks pkg install kubeflow/ #必要なら
$ ks generate argo argo
$ ks apply default
deploy.shで既にkfのバージョンの固定などは終わっている
以下の様にコンポーネントを追加可能
分散学習サポート
TFで分散学習を使う場合
• パラメータサーバ+ワーカ数のymlが必要
• ワーカのymlはそれぞれ別の名前をつける
• 作成,削除の管理
この辺の設定方法はフレームワークによって異なる
KubeFlow Operator
TensorFlow, MxNet, Pytorch, Caffe2, Chainer
• PSとWorkerのコマンドや入出力データの場所を定義
• それぞれのレプリカ数を設定
• PSとWorkerをまとめたリソースとして管理
• フレームワークによらないコンフィグ
4,安定性とスケーラビリティ:
ワーカーのスケジューリングはk8sに任せる
簡単に学習をスケール可能に
(予定)他コンポーネントとの連携も統一
TF-Operator
Q:(予定)多くない?
A:そうですね
コンポーネントごとに開発を進めており,連携したパイプラインとしての
機能はまだ不完全
各コンポーネントはv0.3で動くようになってきている
→Katibをご紹介
Katib
ハイパーパラメータチューニングフレームワーク
GoogleがTFXと同時にKDD 2017で発表したVizierがモデル
• DLフレームワーク非依存
• Yamlでパラメータ空間を定義してk8s上で探索
• サポートするアルゴリズム
• Random
• Grid
• HyperBand
• Bayesian Optimization
Katib
Katib manager
Random Grid HyperBand
Parameter1
Parameter2
Parameter3
Metrics
Collector
Metrics
Collector
Metrics
Collector
Katib UI
パラメータの評価を並列で行える
● スケジューリングはKubernetesが行う
● 一部のジョブの失敗が他に影響しない
Katibメリット
Katib manager
Parameter1
Parameter2
Parameter3
Metrics
Collector
Metrics
Collector
Metrics
Collector
Parameter4
Parameter4
Parameter4
パラメータの評価を並列で行える
● スケジューリングはKubernetesが行う
● 一部のジョブの失敗が他に影響しない
Katibメリット
Katib manager
Parameter1
Parameter2
Parameter3
Metrics
Collector
Metrics
Collector
Metrics
Collector
Parameter4
Parameter4
Parameter4
チューニングアルゴリズムの切り替えが容易
● KatibのAPIで隠蔽されるためスクリプト側に修正は不要
● 新たなアルゴリズムの追加が実行中のタスクに影響しない
Katibメリット2
Katib manager
Random Grid HyperBand
Parameter1
Parameter2
チューニングアルゴリズムの切り替えが容易
● KatibのAPIで隠蔽されるためスクリプト側に修正は不要
● 新たなアルゴリズムの追加が実行中のタスクに影響しない
Katibメリット2
Katib manager
Random Grid HyperBand
Parameter1
Parameter2
チューニングアルゴリズムの切り替えが容易
● KatibのAPIで隠蔽されるためスクリプト側に修正は不要
● 新たなアルゴリズムの追加が実行中のタスクに影響しない
Katibメリット2
Katib manager
Random Grid HyperBand
Parameter1
New
Parameter2
Parameter1
Parameter2
Katibデメリット
(KF全体ですが)Kubernetes前提
• MOEなどのpythonスクリプト内に組み込めるものと比べ大掛かり
• 慣れるまでデバッグが困難
簡単に使うならMOE
クラウドならCloudML, SageMakerも選択肢
まとめと今後の期待
TFXの流れをくむオープンなML基盤
まだまだ赤子
各ツールの機能拡充,連携に力を注いでいます!!
TFT, TFMAなどTFXの機能が順次追加
9/26 KubeFlow MeetUPやります!
今回話せなかった
● オペレータ
● Argo
● Katibの内部実装
について詳しくお話します!

Contenu connexe

Tendances

Tendances (20)

KubernetesでGPUクラスタを管理したい
KubernetesでGPUクラスタを管理したいKubernetesでGPUクラスタを管理したい
KubernetesでGPUクラスタを管理したい
 
20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructure20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructure
 
KueCon 2020 NA Recap - Building a Global Supercomputer with Virtual Kubelet /...
KueCon 2020 NA Recap - Building a Global Supercomputer with Virtual Kubelet /...KueCon 2020 NA Recap - Building a Global Supercomputer with Virtual Kubelet /...
KueCon 2020 NA Recap - Building a Global Supercomputer with Virtual Kubelet /...
 
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
 
20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術
 
Google Cloud AI の紹介 @ GCPUG Nara #03
Google Cloud AI の紹介 @ GCPUG Nara #03Google Cloud AI の紹介 @ GCPUG Nara #03
Google Cloud AI の紹介 @ GCPUG Nara #03
 
知って欲しいPaaSの話
知って欲しいPaaSの話知って欲しいPaaSの話
知って欲しいPaaSの話
 
機械学習プロジェクトにおける Cloud AI Platform の使い方 (2018-11-19)
機械学習プロジェクトにおける Cloud AI Platform の使い方 (2018-11-19)機械学習プロジェクトにおける Cloud AI Platform の使い方 (2018-11-19)
機械学習プロジェクトにおける Cloud AI Platform の使い方 (2018-11-19)
 
ディープラーニングイメージで構築する快適・高速な機械学習環境
ディープラーニングイメージで構築する快適・高速な機械学習環境ディープラーニングイメージで構築する快適・高速な機械学習環境
ディープラーニングイメージで構築する快適・高速な機械学習環境
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
 
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみたKubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
 
Autopilot google kubernetes engineでargo workflowsを動かす
Autopilot google kubernetes engineでargo workflowsを動かすAutopilot google kubernetes engineでargo workflowsを動かす
Autopilot google kubernetes engineでargo workflowsを動かす
 
Kuberneteの運用を支えるGitOps
Kuberneteの運用を支えるGitOpsKuberneteの運用を支えるGitOps
Kuberneteの運用を支えるGitOps
 
Spring native について
Spring native についてSpring native について
Spring native について
 
Upstream University
Upstream UniversityUpstream University
Upstream University
 
Terraformで始めるInfrastructure as Code
Terraformで始めるInfrastructure as CodeTerraformで始めるInfrastructure as Code
Terraformで始めるInfrastructure as Code
 
ChainerMNをDocker containerで動かす
ChainerMNをDocker containerで動かすChainerMNをDocker containerで動かす
ChainerMNをDocker containerで動かす
 
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
 
Infrakit Docker_Tokyo_meetup
Infrakit Docker_Tokyo_meetupInfrakit Docker_Tokyo_meetup
Infrakit Docker_Tokyo_meetup
 

Similaire à KubeFlowでどこまでいける?

CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
Yuki Ando
 
HTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことHTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なこと
Masakazu Muraoka
 

Similaire à KubeFlowでどこまでいける? (20)

[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
 
ざっくり始めるCloud Native開発
ざっくり始めるCloud Native開発ざっくり始めるCloud Native開発
ざっくり始めるCloud Native開発
 
20170417_Netadashi_KubeCon
20170417_Netadashi_KubeCon20170417_Netadashi_KubeCon
20170417_Netadashi_KubeCon
 
SpringOne Platform Replay -Pivotal Cloud Foundry-
SpringOne Platform Replay -Pivotal Cloud Foundry-SpringOne Platform Replay -Pivotal Cloud Foundry-
SpringOne Platform Replay -Pivotal Cloud Foundry-
 
【初心者向け】API を使ってクラウドの管理を自動化しよう
【初心者向け】API を使ってクラウドの管理を自動化しよう【初心者向け】API を使ってクラウドの管理を自動化しよう
【初心者向け】API を使ってクラウドの管理を自動化しよう
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
 
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tkKubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
 
今後のContainerの行く末の感じたこと、思ったこと 〜JKD参加報告〜
今後のContainerの行く末の感じたこと、思ったこと〜JKD参加報告〜今後のContainerの行く末の感じたこと、思ったこと〜JKD参加報告〜
今後のContainerの行く末の感じたこと、思ったこと 〜JKD参加報告〜
 
serverless openstack 101
serverless openstack 101serverless openstack 101
serverless openstack 101
 
IBM Log Analysis with LogDNAを評価した話
 IBM Log Analysis with LogDNAを評価した話 IBM Log Analysis with LogDNAを評価した話
IBM Log Analysis with LogDNAを評価した話
 
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
 
OpenStack Vancouver Summit Report presented at nttgroup meeting in Japanese
OpenStack Vancouver Summit Report presented at nttgroup meeting in JapaneseOpenStack Vancouver Summit Report presented at nttgroup meeting in Japanese
OpenStack Vancouver Summit Report presented at nttgroup meeting in Japanese
 
[DevSumi2019]Cloud Native アプリケーションに最適!Oracle Cloud Infrastructureの魅力!
[DevSumi2019]Cloud Native アプリケーションに最適!Oracle Cloud Infrastructureの魅力![DevSumi2019]Cloud Native アプリケーションに最適!Oracle Cloud Infrastructureの魅力!
[DevSumi2019]Cloud Native アプリケーションに最適!Oracle Cloud Infrastructureの魅力!
 
GitLabで始めるDevOps入門
GitLabで始めるDevOps入門GitLabで始めるDevOps入門
GitLabで始めるDevOps入門
 
Spring I/O 2015 報告
Spring I/O 2015 報告Spring I/O 2015 報告
Spring I/O 2015 報告
 
Yahoo!Japan北米DCでOCPのツボをみせてもらってきました - OpenStack最新情報セミナー 2016年5月
Yahoo!Japan北米DCでOCPのツボをみせてもらってきました - OpenStack最新情報セミナー 2016年5月Yahoo!Japan北米DCでOCPのツボをみせてもらってきました - OpenStack最新情報セミナー 2016年5月
Yahoo!Japan北米DCでOCPのツボをみせてもらってきました - OpenStack最新情報セミナー 2016年5月
 
HTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことHTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なこと
 
Edge Computing と k8s でなんか話すよ
Edge Computing と k8s でなんか話すよEdge Computing と k8s でなんか話すよ
Edge Computing と k8s でなんか話すよ
 
新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた
 
CNCF Updates 2019 Winter version and Knative
CNCF Updates 2019  Winter version and KnativeCNCF Updates 2019  Winter version and Knative
CNCF Updates 2019 Winter version and Knative
 

KubeFlowでどこまでいける?