RancherでつくるNoOps機械学習基盤 株式会社キスモ岡野 兼也
View Slide
22会社概要 2社名 株式会社キスモ (KYSMO inc.)本社 愛知県名古屋市千種区不老町1番 名古屋大学インキュベーション施設(名古屋大学公認ベンチャー)代表者 代表取締役 三野稜太設立 2017年5月9日スタッフ数 12人事業内容 Explainable AI(XAI)の導入支援企業理念:働くをアップデートする。代表取締役三野 稜太取締役大越 拓実取締役鈴木 雄也
33実績KYSMO AI…15+ 8つの受賞 モデル学習の自動化KYSMOは2017年創業以来、15社以上の企業へAIを導入してまいりました。15社以上の導入実績 世界的コンペでの受賞経験 最適化された開発体制
4$ whoaminame:- 岡野兼也- @ジュジュbelonging:- 株式会社キスモ- 名古屋大学interest:- CloudNative- SRE- Containerdream:- 働かないこと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データサイエンティストが考えないといけないことメモリ XGBCPU 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.2Python 3.6TensorFlow 1.9.0CUDA 10.0Python 3.6Pytorch 0.4.1いかに少ないコストで機械学習環境を変更するか
23Docker▫ 必要なパッケージを必要な分だけコンテナに詰め込める▫ 環境を変えたい場合はコンテナごと取り換えればよい▫ 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つほしい必要なリソースを適切に配置するオーケストレーターが欲しい
30Kubernetes▫ 宣言したリソースをWorkerノードから適切に探索して配置できる▫ Nvidiaが開発した管理ツールをつかうとGPUリソースも管理できる▫ 複数のマシンをクラスタ化して1台のマシンのように扱うことができる
▫ 下記のマシンでクラスタを構成する場合を考える(簡単のためWorkerノードのみとする)- マシンA × 2- CPU: 8コア- メモリ: 50GB- GPU: GTX 2080Ti × 2- マシンB × 3- CPU: 4コア- メモリ: 20GB- GPU: GTX 108031例マシン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があると初めて触るときのイメージが付きやすいのでは?
36Rancher▫ GUIで穴埋めをすればコンテナをKubernetesに展開できる- 必ずしもkubectlコマンド等の利用方法を覚えなくとも使える▫ 運用面でモニタリングツールとしても便利▫ 権限の管理もある程度できる
37使い方▫ GPUにはラベルを振って、指定できるようにする▫ 慣れてきた人にはkubectlをラップしたCLIツールを使ってもらう- インタラクティブにして変更があっても覚えることなく利用できるようにしている▫ データは共有ストレージに配置
38お話しすること1. 理想的な機械学習基盤とRancher導入前のキスモでの現実2. 現在キスモで利用されている機械学習基盤3. なぜコンテナを使うのか4. なぜKubernetes & Rancherを使うのか5. 機械学習基盤が与えた効果
39機械学習基盤が与えた効果▫ データサイエンティスト- 機械学習を行う際に意識すべきことが少なくなった- 最新のライブラリを柔軟に取り入れることが可能になった- リソースを柔軟に切り分けることができるようになった▫ インフラエンジニア- 環境がコード化され、変化にかかるコストが著しく低下した- メンテナンスでは、必要に応じてノードを切り離せるようになった- 全体の管理を一括でやりやすくなった- 楽しい
40ご清聴ありがとうございました