Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Machine Learning Environment Made by Rancher
Search
@ジュジュ
March 02, 2019
Programming
5
1.1k
Machine Learning Environment Made by Rancher
@ジュジュ
March 02, 2019
Tweet
Share
More Decks by @ジュジュ
See All by @ジュジュ
チーム分割においていかれたアラートをチームで責任を持てる形に再設計した
juju62q
0
100
ボトムアップでSLOを導入 2年半運用して分かった失敗と変化
juju62q
2
900
Firecracker Snapshottingを調べてみた
juju62q
1
510
SLOを活用した技術的改善
juju62q
10
8k
IAM Role for Pods and Instance Meta Data Service
juju62q
1
1.4k
telepresence handson
juju62q
2
4.6k
Wanna Use Vitess in Orientation
juju62q
6
1.2k
machine learning with rancher and K8s on prem
juju62q
5
430
docker-handson-for-researcher
juju62q
3
300
Other Decks in Programming
See All in Programming
Snowflake x dbtで作るセキュアでアジャイルなデータ基盤
tsoshiro
2
430
詳細解説! ArrayListの仕組みと実装
yujisoftware
0
480
What’s New in Compose Multiplatform - A Live Tour (droidcon London 2024)
zsmb
1
330
Vue.js学習の振り返り
hiro_xre
2
130
外部システム連携先が10を超えるシステムでのアーキテクチャ設計・実装事例
kiwasaki
1
220
レガシーな Android アプリのリアーキテクチャ戦略
oidy
1
170
Server Driven Compose With Firebase
skydoves
0
400
[PyCon Korea 2024 Keynote] 커뮤니티와 파이썬, 그리고 우리
beomi
0
110
推し活としてのrails new/oshikatsu_ha_iizo
sakahukamaki
3
1.7k
Kotlin2でdataクラスの copyメソッドを禁止する/Data class copy function to have the same visibility as constructor
eichisanden
1
130
リリース8年目のサービスの1800個のERBファイルをViewComponentに移行した方法とその結果
katty0324
5
3.6k
Realtime API 入門
riofujimon
0
110
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
10 Git Anti Patterns You Should be Aware of
lemiorhan
654
59k
Happy Clients
brianwarren
97
6.7k
Fireside Chat
paigeccino
32
3k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
790
Embracing the Ebb and Flow
colly
84
4.4k
Ruby is Unlike a Banana
tanoku
96
11k
Code Reviewing Like a Champion
maltzj
519
39k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
Optimizing for Happiness
mojombo
376
69k
Transcript
Rancherでつくる NoOps機械学習基盤 株式会社キスモ 岡野 兼也
2 2 会社概要 2 社名 株式会社キスモ (KYSMO inc.) 本社 愛知県名古屋市千種区不老町1番
名古屋大学インキュベーション施設 (名古屋大学公認ベンチャー) 代表者 代表取締役 三野稜太 設立 2017年5月9日 スタッフ数 12人 事業内容 Explainable AI(XAI)の導入支援 企業理念:働くをアップデートする。 代表取締役 三野 稜太 取締役 大越 拓実 取締役 鈴木 雄也
3 3 実績 KYSMO AI … 15+ 8つの受賞 モデル学習の自動化 KYSMOは2017年創業以来、15社以上の企業へAIを導入してまいりました。
15社以上の導入実績 世界的コンペでの受賞経験 最適化された開発体制
4 $ whoami name: - 岡野兼也 - @ジュジュ belonging: -
株式会社キスモ - 名古屋大学 interest: - CloudNative - SRE - Container dream: - 働かないこと hobbies: - 登山 - キャンプ
5 お話しすること 1. 理想的な機械学習基盤とRancher導入前のキスモでの現実 2. 現在キスモで利用されている機械学習基盤 3. なぜコンテナを使うのか 4. なぜKubernetes
& Rancherを使うのか 5. 機械学習基盤が与えた効果
6 お話しすること 1. 理想的な機械学習基盤とRancher導入前のキスモでの現実 2. 現在キスモで利用されている機械学習基盤 3. なぜコンテナを使うのか 4. なぜKubernetes
& Rancherを使うのか 5. 機械学習基盤が与えた効果
7 理想的な機械学習基盤 機械学習スクリプトの作成 理想的な学習環境での学習 データ 結果が良ければ 自動的にデプロイ
8 理想的な機械学習基盤 データサイエンスだけを意識すればいい世界
9 キスモの昔の機械学習環境 SSHでのLOGIN
この実験には再現性ある? どのマシンで実行するのが適切? CPUはあまってる? メモリは空いてる? 10 データサイエンティストが考えないといけないこと 必要なライブラリは全部ある? GPUはある? CUDAのバージョンは? ほかの学習走ってる?
11 インフラ的にもつらい ▫ 環境が継ぎ足されるので現状把握が難しい - インフラエンジニアだけがOSイメージを管理するとボトルネックになる ▫ インフラが変化に弱い - 用途に合わせていちいち環境ごとつくる?
- そもそもCUDAのバージョン管理は人類には困難 ▫ 複数のマシンで同一の環境を担保しにくい - 作業ノードのみでパッケージの追加をしてしまう ▫ メンテしようにもどのマシンがどうなっているかログインしないと わからない
12 とにかくやらないといけないことが多い 適切な管理がなされない &
13 お話しすること 1. 理想的な機械学習基盤とRancher導入前のキスモでの現実 2. 現在キスモで利用されている機械学習基盤 3. なぜコンテナを使うのか 4. なぜKubernetes
& Rancherを使うのか 5. 機械学習基盤が与えた効果
14 機械学習基盤の概要図
15 データサイエンティストが考えないといけないこと メモリ XGB CPU Yコア GPU Z枚 を使いたい ◦◦のDockerImageで
スクリプトを動かしたい
16 インフラの作業 ▫ データサイエンティストと一緒にDocker Imageの管理 ▫ 最小限のミドルウェアをJujuを利用して管理 - Docker -
nvidia-docker - nvidiaデバイスドライバー ▫ マシンを物理的にネットワーク接続
17 本日のお話 ここについて深掘る
18 お話しすること 1. 理想的な機械学習基盤とRancher導入前のキスモでの現実 2. 現在キスモで利用されている機械学習基盤 3. なぜコンテナを使うのか 4. なぜKubernetes
& Rancherを使うのか 5. 機械学習基盤が与えた効果
どのマシンで実行するのが適切? CPUはあまってる? メモリは空いてる? 19 解決したい問題 GPUはある? この実験には再現性ある? 必要なライブラリは全部ある? CUDAのバージョンは? ほかの学習走ってる?
20 解決したい問題 ▫ 環境が継ぎ足されるので現状把握が難しい - インフラエンジニアだけがOSイメージを管理するとボトルネックになる ▫ インフラが変化に弱い - 用途に合わせていちいち環境ごとつくる?
- そもそもCUDAのバージョン管理は人類には困難 ▫ 複数のマシンで同一の環境を担保しにくい - 作業ノードのみでパッケージの追加をしてしまう ▫ メンテしようにもどのマシンがどうなっているかログインしないと わからない
21 機械学習を取り巻く環境 ▫ 機械学習分野は非常に開発が盛んである - 同一のフレームワークを使っていても優れたものがすぐに開発される ▫ 機械学習フレームワーク毎に特徴がある - データの特徴に合わせて、必要な時に必要なものを使いたい
変化に強い基盤づくりが必要不可欠
22 変化に強い環境づくり CUDA 9.2 Python 3.6 TensorFlow 1.9.0 CUDA 10.0
Python 3.6 Pytorch 0.4.1 いかに少ないコストで 機械学習環境を変更するか
23 Docker ▫ 必要なパッケージを必要な分だけコンテナに詰め込める ▫ 環境を変えたい場合はコンテナごと取り換えればよい ▫ nvidia-dockerを使うことでGPUも利用可能
24 ▫ DockerfileにはCUDAや必要なライブラリのバージョンが コードとして書かれる - コードになることで実行前に確認が容易 - イメージの変更も容易なことが多い ▫ Imageとしてpushすることで環境の冪等性が保証できる
- 実験環境が容易に再現できる ▫ Nvidiaの作成したDockerImageを元にすると簡単に作業可能 環境を保存するDockerfileを書いておく
25 コンテナで実行環境を独立させる コンテナではコンテナ毎に独立してプログラムを実行できる コンテナに割り当てるリソースを制限できる 他のコンテナでの学習に影響されずに学習スクリプトを実行できる
26 お話しすること 1. 理想的な機械学習基盤とRancher導入前のキスモでの現実 2. 現在キスモで利用されている機械学習基盤 3. なぜコンテナを使うのか 4. なぜKubernetes
& Rancherを使うのか 5. 機械学習基盤が与えた効果
この実験には再現性ある? 27 解決したい問題 必要なライブラリは全部ある? CUDAのバージョンは? ほかの学習走ってる? どのマシンで実行するのが適切? CPUはあまってる? メモリは空いてる? GPUはある?
28 解決したい問題 ▫ 環境が継ぎ足されるので現状把握が難しい - インフラエンジニアだけがOSイメージを管理するとボトルネックになる ▫ インフラが変化に弱い - 用途に合わせていちいち環境ごとつくる?
- そもそもCUDAのバージョン管理は人類には困難 ▫ 複数のマシンで同一の環境を担保しにくい - 作業ノードのみでパッケージの追加をしてしまう ▫ メンテしようにもどのマシンがどうなっているかログインしないと わからない
29 機械学習の実験 ▫ 最適なモデルを作るためには、複数回の実験が必要不可欠 ▫ 実験によって必要なリソースは様々 - メモリ100GBでGPUが複数あるマシンが1つほしい - メモリ30GBのマシンが3つほしい
必要なリソースを適切に配置する オーケストレーターが欲しい
30 Kubernetes ▫ 宣言したリソースをWorkerノードから適切に探索して配置できる ▫ Nvidiaが開発した管理ツールをつかうとGPUリソースも管理できる ▫ 複数のマシンをクラスタ化して1台のマシンのように扱うことが できる
▫ 下記のマシンでクラスタを構成する場合を考える (簡単のためWorkerノードのみとする) - マシンA × 2 - CPU: 8コア
- メモリ: 50GB - GPU: GTX 2080Ti × 2 - マシンB × 3 - CPU: 4コア - メモリ: 20GB - GPU: GTX 1080 31 例 マシンA マシンB
▫ 下記のリソースを使って学習がしたい - コンテナX × 4 - CPU: 4コア -
メモリ: 20GB - GPU: なし - コンテナY × 1 - CPU: 2コア - メモリ: 20GB - GPU: GTX 2080 × 1 - コンテナZ ×1 - CPU: 4コア - メモリ: 30GB - GPU: なし 32 例 マシンA マシンB
▫ 下記のリソースを使って学習がしたい - コンテナX × 4 - CPU: 4コア -
メモリ: 20GB - GPU: なし - コンテナY × 1 - CPU: 2コア - メモリ: 20GB - GPU: GTX 2080 × 1 - コンテナZ × 1 - CPU: 4コア - メモリ: 30GB - GPU: なし 33 例 マシンA マシンB コンテナX コンテナY コンテナX コンテナZ コンテナX コンテナX
34 必要なリソースのみ考えればいい世界
35 とはいえ… ▫ Kubernetesの学習コストをデータサイエンティストに課すのは うれしくない ▫ もっと直感的にKubernetesを使いたい GUIがあると初めて触るときの イメージが付きやすいのでは?
36 Rancher ▫ GUIで穴埋めをすればコンテナをKubernetesに展開できる - 必ずしもkubectlコマンド等の利用方法を覚えなくとも使える ▫ 運用面でモニタリングツールとしても便利 ▫ 権限の管理もある程度できる
37 使い方 ▫ GPUにはラベルを振って、 指定できるようにする ▫ 慣れてきた人にはkubectlをラップした CLIツールを使ってもらう - インタラクティブにして変更があっても
覚えることなく利用できるようにしている ▫ データは共有ストレージに配置
38 お話しすること 1. 理想的な機械学習基盤とRancher導入前のキスモでの現実 2. 現在キスモで利用されている機械学習基盤 3. なぜコンテナを使うのか 4. なぜKubernetes
& Rancherを使うのか 5. 機械学習基盤が与えた効果
39 機械学習基盤が与えた効果 ▫ データサイエンティスト - 機械学習を行う際に意識すべきことが少なくなった - 最新のライブラリを柔軟に取り入れることが可能になった - リソースを柔軟に切り分けることができるようになった
▫ インフラエンジニア - 環境がコード化され、変化にかかるコストが著しく低下した - メンテナンスでは、必要に応じてノードを切り離せるようになった - 全体の管理を一括でやりやすくなった - 楽しい
40 ご清聴ありがとうございました