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!

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

  • 1.
    Daisuke Taniwaki, Engineer PreferredNetworks, Inc. Kubernetesによる 機械学習基盤への挑戦 1 2018/12/4 Japan Container Days v18.12
  • 2.
    自己紹介 谷脇 大輔 (DaisukeTaniwaki) 職歴 2008~2012 Trend Micro - 未知の脅威を発見するWebクローラ 2012~2014 Kakaku.com - Tabelog USの立ち上げ 2014~2017 Kaizen Platform - Kaizen Optimization Platform 2017~現在 Preferred Networks - ジョブスケジューラやクラスター向けツール 技術領域 2 dtaniwaki dtaniwaki
  • 3.
    Preferred Networksについて - 通称:PFN - ミッション - 設立: 2014年3月 - 所在地: - 東京都千代田区大手町(日本) - カリフォルニア州バークレー(米国) - 従業員数: 約200人 (技術者約90%、外国人約15%) 3 IoT時代に向けた新しいコンピュータを創造する あらゆるモノに知能をもたせ分散知能を実現する
  • 4.
    PFNの事業 - IoT x機械学習 - 交通システム - 産業用ロボット - バイオヘルスケア - パーソナルロボット 4
  • 5.
    PFNのOSS - Chainer (DeepLearning) - Cupy (NumPy-like library for Cuda) - Menoh (DNN Inference) - ChainerX (C++ Implementation of low layers) - Optuna (Hyper parameter tuning) 5 New! New!
  • 6.
    本日の流れ - PFNの研究開発環境 - なぜKubernetesか -PFNの機械学習基盤の要件と実現方法 - 今後の機械学習基盤としてのKubernetes 6
  • 7.
  • 8.
    なぜ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の機械学習基盤の要件をカバー
  • 9.
  • 10.
    Container 多種多様な実験環境 10 Icon pack byIcons8 - 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レジストリ
  • 11.
    効率的なスケジューリング 11Icon pack byIcons8 - https://icons8.com kube- throttler PriorityClass毎にユーザが実行できるPod数を制御 (例) 優先度毎に高:1、中:5、低:無限 Operator/CRD Custom Scheduler webhook Node PriorityClassによる プリエンプション - 分散深層学習向けのスケジューリング - 待ち時間による優先度の重みづけ スケジュール kube-throttler - https://github.com/everpeace/kube-throttler - 毎日、数百〜数千件のジョブ - 試行錯誤の実験 - ハイパーパラメータチューニング
  • 12.
    Namespace User A マルチテナント 12Icon packby 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 へのアクセス制御 - ユーザ毎、プロジェクト毎の環境 - コンフィデンシャルな案件
  • 13.
    自由度の担保 13Icon pack byIcons8 - https://icons8.com 自社製 実験ツール Kubectl NFS Homeにマウントして 物理サーバのように使う GPUを手軽に使いたい 様々なツールからの利用 kubectl exec 実行中のPodに 入ってデバッグ - 様々なリテラシの研究者 - 特定のツールでロックインしない - 実験環境の自由なカスタマイズ - 実行環境に直接入ってデバッグ
  • 14.
    グランドチャレンジ - 全リソースを使った実験 - ImageNetin 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
  • 15.
  • 16.
    Kubernetesの機械学習基盤としてのトレンド 16 Ref: Kubeflow: Cloud-nativemachine learning with Kubernetes https://opensource.com/article/18/6/kubeflow - GoogleはAI-HubとKubeflow pipelinesを発表 - MicrosoftはKubeflow-labsを公開 - AWS, IBMは自社サービスでの利用方法をブログで公開 Kubernetes上で機械学習を行うための仕組み
  • 17.
    PFNのKubernetesに対する取り組み - 機械学習基盤としてのKubernetesの改善に貢献 - OSSコントリビュート -ツールやプラグインの公開 - オンプレの機械学習基盤としてのKubernetes利用をリード - 民間企業の計算環境として国内最大級のGPUクラスター - Chainer等の自社開発した技術とKubernetesの親和性向上 - Chainer Operator for kubeflow 17
  • 18.