Skip to main content
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!