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
970
Machine Learning Environment Made by Rancher
@ジュジュ
March 02, 2019
Tweet
Share
More Decks by @ジュジュ
See All by @ジュジュ
チーム分割においていかれたアラートをチームで責任を持てる形に再設計した
juju62q
0
64
ボトムアップでSLOを導入 2年半運用して分かった失敗と変化
juju62q
2
820
Firecracker Snapshottingを調べてみた
juju62q
1
480
SLOを活用した技術的改善
juju62q
9
5.8k
IAM Role for Pods and Instance Meta Data Service
juju62q
1
1.3k
telepresence handson
juju62q
2
4.4k
Wanna Use Vitess in Orientation
juju62q
6
1.1k
machine learning with rancher and K8s on prem
juju62q
5
410
docker-handson-for-researcher
juju62q
3
270
Other Decks in Programming
See All in Programming
サイコロで理解する統計的仮説検定の考え方
tatamiya
4
900
Rethinking UI building strategies @ SFI 2024
letelete
0
270
Rails と人魚の話/rails-and-mermaid
sanfrecce_osaka
0
100
Milestoner
bkuhlmann
1
410
Designing for tomorrow's programming workflows
honnibal
PRO
2
120
StoreKit2によるiOSのアプリ内課金のリニューアル
kangnux
0
110
0→1と1→10の狭間で Javaという技術選定を振り返る/Reflecting on the Decision to Choose Java Between Scaling from 0 to 1 and 1 to 10
jaguar_imo
2
380
スクラムガイドのスプリントレトロスペクティブを改めて読みかえしてみた / Re-reading the Sprint Retrospective Section in the Scrum Guide
mackey0225
3
410
R言語の環境構築と基礎 Tokyo.R 112
bob3bob3
0
260
try! Swift Tokyo 2024のLT枠に採択されたプロポーザルを出すときに考えていたこと
ski
0
350
ゆるい個人開発のススメ
kuroppe1819
10
980
データアナリストが行うDatabricksを活用したETLの自動化事例
shinoa
0
260
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.9k
GraphQLの誤解/rethinking-graphql
sonatard
50
9.2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
What the flash - Photography Introduction
edds
64
11k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
2
3.4k
Web Components: a chance to create the future
zenorocha
305
41k
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
How to Ace a Technical Interview
jacobian
272
22k
Debugging Ruby Performance
tmm1
70
11k
Designing for Performance
lara
601
67k
Fashionably flexible responsive web design (full day workshop)
malarkey
398
65k
Building Flexible Design Systems
yeseniaperezcruz
319
37k
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 ご清聴ありがとうございました