Kubernetesによる機械学習基盤への挑戦

Preferred Networks
Preferred NetworksVice-President at Preferred Networks
Daisuke Taniwaki, Engineer
Preferred Networks, Inc.
Kubernetesによる
機械学習基盤への挑戦
1
2018/12/4 Japan Container Days v18.12
自己紹介
谷脇 大輔 (Daisuke Taniwaki)
職歴
2008~2012 Trend Micro - 未知の脅威を発見するWebクローラ
2012~2014 Kakaku.com - Tabelog USの立ち上げ
2014~2017 Kaizen Platform - Kaizen Optimization Platform
2017~現在 Preferred Networks - ジョブスケジューラやクラスター向けツール
技術領域
2
dtaniwaki
dtaniwaki
Preferred Networksについて
- 通称: PFN
- ミッション
- 設立: 2014年3月
- 所在地:
- 東京都千代田区大手町(日本)
- カリフォルニア州バークレー(米国)
- 従業員数: 約200人 (技術者約90%、外国人約15%)
3
IoT時代に向けた新しいコンピュータを創造する
あらゆるモノに知能をもたせ分散知能を実現する
PFNの事業
- IoT x 機械学習
- 交通システム
- 産業用ロボット
- バイオヘルスケア
- パーソナルロボット
4
PFNのOSS
- Chainer (Deep Learning)
- Cupy (NumPy-like library for Cuda)
- Menoh (DNN Inference)
- ChainerX (C++ Implementation of low layers)
- Optuna (Hyper parameter tuning)
5
New!
New!
本日の流れ
- PFNの研究開発環境
- なぜKubernetesか
- PFNの機械学習基盤の要件と実現方法
- 今後の機械学習基盤としてのKubernetes
6
PFNの研究開発環境
7
多種多様なデータ多種多様な研究
大量の機械学習ジョブ
オンプレのGPUクラスター
自社開発した技術
Icon pack by Icons8 - https://icons8.com
クラウドサービス
との連携
Tesla P100 x 1024
Tesla V100 x 512
なぜKubernetesか
- セキュリティ・プライバシー機能が充実
- Namespace, Pod Security Policy (PSP), RBAC, Virtual Networking, Network Policy
- スケジューリングの機能が充実
- Label, Taint, Affinity, PriorityClass
- 柔軟かつ容易な拡張
- Device/Volume plugin, Operator/CRD, Custom scheduler, Admission Controller
- OSSかつエコシステムが充実
- 各種コマンドラインツール、オンラインドキュメント、サンプル、ナレッジベース
8
PFNの機械学習基盤の要件をカバー
PFNの機械学習基盤の要件と実現方法
- 多種多様な実験環境
- 効率的なスケジューリング
- マルチテナント
- 自由度の担保
- グランドチャレンジ
9
Container
多種多様な実験環境
10
Icon pack by Icons8 - https://icons8.com
Icons by iconspng - https://www.iconspng.com
NFS
大規模データ
小規模データ
InfiniBand
Device pluginでリソース化
Node Selectorで
CPU/GPUの選択
Pod Affinityでできるだけホッ
プ数が近い物理サーバに配置
k8s-host-device-plugin - https://github.com/everpeace/k8s-host-
device-plugin
- 静止画、動画、音声、テキスト
- 深層学習、分散深層学習、強化学習
プライベート
Dockerレジストリ
効率的なスケジューリング
11Icon pack by Icons8 - https://icons8.com
kube-
throttler
PriorityClass毎にユーザが実行できるPod数を制御
(例) 優先度毎に高:1、中:5、低:無限
Operator/CRD
Custom
Scheduler
webhook
Node
PriorityClassによる
プリエンプション
- 分散深層学習向けのスケジューリング
- 待ち時間による優先度の重みづけ
スケジュール
kube-throttler - https://github.com/everpeace/kube-throttler
- 毎日、数百〜数千件のジョブ
- 試行錯誤の実験
- ハイパーパラメータチューニング
Namespace
User A
マルチテナント
12Icon pack by Icons8 - https://icons8.com
Namespace
User B
User B
User A
Namespace
Project X
Network Policy
による通信制御
NFS
Kerberos認証,LDAPの
ユーザIDによるアクセス
Namespace毎の
メトリックス
PSP, Admission Webhookに
よりLDAPのユーザIDをセット
RBACによるNamespace
へのアクセス制御
- ユーザ毎、プロジェクト毎の環境
- コンフィデンシャルな案件
自由度の担保
13Icon pack by Icons8 - https://icons8.com
自社製
実験ツール
Kubectl
NFS
Homeにマウントして
物理サーバのように使う
GPUを手軽に使いたい
様々なツールからの利用
kubectl
exec
実行中のPodに
入ってデバッグ
- 様々なリテラシの研究者
- 特定のツールでロックインしない
- 実験環境の自由なカスタマイズ
- 実行環境に直接入ってデバッグ
グランドチャレンジ
- 全リソースを使った実験
- ImageNet in 15 minutes (Tesla P100 x 1024)
- PFDet in the Kaggle 2018 Google AI Open Images (Tesla V100 x 512)
- 日常のジョブはプリエンプションされる前提で使う
- グランドチャレンジのジョブは最大の優先度
- 任意のタイミングで全GPUを使った実験が可能
14Icon pack by Icons8 - https://icons8.com
今後の機械学習基盤としての
Kubernetes
15
Kubernetesの機械学習基盤としてのトレンド
16
Ref: Kubeflow: Cloud-native machine learning with Kubernetes
https://opensource.com/article/18/6/kubeflow
- GoogleはAI-HubとKubeflow pipelinesを発表
- MicrosoftはKubeflow-labsを公開
- AWS, IBMは自社サービスでの利用方法をブログで公開
Kubernetes上で機械学習を行うための仕組み
PFNのKubernetesに対する取り組み
- 機械学習基盤としてのKubernetesの改善に貢献
- OSSコントリビュート
- ツールやプラグインの公開
- オンプレの機械学習基盤としてのKubernetes利用をリード
- 民間企業の計算環境として国内最大級のGPUクラスター
- Chainer等の自社開発した技術とKubernetesの親和性向上
- Chainer Operator for kubeflow
17
18
Thank you!
1 of 18

More Related Content

What's hot(20)

オンプレML基盤on Kubernetes パネルディスカッションオンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッション
Yahoo!デベロッパーネットワーク2K views
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki685.9K views
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda47.6K views
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
Yahoo!デベロッパーネットワーク1.7K views
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga18.7K views
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu61.1K views
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
Yahoo!デベロッパーネットワーク25.7K views
MLflow + Kubeflow MLプラットフォーム事例 #sparktokyoMLflow + Kubeflow MLプラットフォーム事例 #sparktokyo
MLflow + Kubeflow MLプラットフォーム事例 #sparktokyo
Yahoo!デベロッパーネットワーク3.2K views
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
NTT Communications Technology Development1.3K views
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development23.2K views
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda7.4K views
AWSで作る分析基盤AWSで作る分析基盤
AWSで作る分析基盤
Yu Otsubo7.3K views

Similar to Kubernetesによる機械学習基盤への挑戦(20)

Deep Learning Lab: DIMo & ChainerDeep Learning Lab: DIMo & Chainer
Deep Learning Lab: DIMo & Chainer
Preferred Networks5.7K views
Reactive Workflow Argo Eventsの紹介Reactive Workflow Argo Eventsの紹介
Reactive Workflow Argo Eventsの紹介
Daisuke Taniwaki1.8K views
SQiPシンポジウムアブストラクト作成のポイントSQiPシンポジウムアブストラクト作成のポイント
SQiPシンポジウムアブストラクト作成のポイント
ソフトウェア品質シンポジウム149 views
ChainerMNをDocker containerで動かすChainerMNをDocker containerで動かす
ChainerMNをDocker containerで動かす
Daisuke Taniwaki214 views
先駆者に学ぶ MLOpsの実際先駆者に学ぶ MLOpsの実際
先駆者に学ぶ MLOpsの実際
Tetsutaro Watanabe19.6K views

More from Preferred Networks(20)

MN-3, MN-Core and HPL - SC21 Green500 BOFMN-3, MN-Core and HPL - SC21 Green500 BOF
MN-3, MN-Core and HPL - SC21 Green500 BOF
Preferred Networks1.3K views

Kubernetesによる機械学習基盤への挑戦