$30 off During Our Annual Pro Sale. View Details »

Machine Learning Environment Made by Rancher

Machine Learning Environment Made by Rancher

@ジュジュ

March 02, 2019
Tweet

More Decks by @ジュジュ

Other Decks in Programming

Transcript

  1. Rancherでつくる
    NoOps機械学習基盤
      株式会社キスモ
    岡野 兼也

    View Slide

  2. 2
    2
    会社概要 2
    社名 株式会社キスモ (KYSMO inc.)
    本社 愛知県名古屋市千種区不老町1番 
    名古屋大学インキュベーション施設
    (名古屋大学公認ベンチャー)
    代表者 代表取締役 三野稜太
    設立 2017年5月9日
    スタッフ数 12人
    事業内容 Explainable AI(XAI)の導入支援
    企業理念:働くをアップデートする。
    代表取締役
    三野 稜太
    取締役
    大越 拓実
    取締役
    鈴木 雄也

    View Slide

  3. 3
    3
    実績
    KYSMO AI

    15+ 8つの受賞 モデル学習の自動化
    KYSMOは2017年創業以来、15社以上の企業へAIを導入してまいりました。
    15社以上の導入実績 世界的コンペでの受賞経験 最適化された開発体制

    View Slide

  4. 4
    $ whoami
    name:
    - 岡野兼也
    - @ジュジュ
    belonging:
    - 株式会社キスモ
    - 名古屋大学
    interest:
    - CloudNative
    - SRE
    - Container
    dream:
    - 働かないこと
    hobbies:
    - 登山
    - キャンプ

    View Slide

  5. 5
    お話しすること
    1. 理想的な機械学習基盤とRancher導入前のキスモでの現実
    2. 現在キスモで利用されている機械学習基盤
    3. なぜコンテナを使うのか
    4. なぜKubernetes & Rancherを使うのか
    5. 機械学習基盤が与えた効果

    View Slide

  6. 6
    お話しすること
    1. 理想的な機械学習基盤とRancher導入前のキスモでの現実
    2. 現在キスモで利用されている機械学習基盤
    3. なぜコンテナを使うのか
    4. なぜKubernetes & Rancherを使うのか
    5. 機械学習基盤が与えた効果

    View Slide

  7. 7
    理想的な機械学習基盤
    機械学習スクリプトの作成
    理想的な学習環境での学習 データ
    結果が良ければ
    自動的にデプロイ

    View Slide

  8. 8
    理想的な機械学習基盤
    データサイエンスだけを意識すればいい世界

    View Slide

  9. 9
    キスモの昔の機械学習環境
    SSHでのLOGIN

    View Slide

  10. この実験には再現性ある?
    どのマシンで実行するのが適切? CPUはあまってる?
    メモリは空いてる?
    10
    データサイエンティストが考えないといけないこと
    必要なライブラリは全部ある?
    GPUはある?
    CUDAのバージョンは?
    ほかの学習走ってる?

    View Slide

  11. 11
    インフラ的にもつらい
    ▫ 環境が継ぎ足されるので現状把握が難しい
    - インフラエンジニアだけがOSイメージを管理するとボトルネックになる
    ▫ インフラが変化に弱い
    - 用途に合わせていちいち環境ごとつくる?
    - そもそもCUDAのバージョン管理は人類には困難
    ▫ 複数のマシンで同一の環境を担保しにくい
    - 作業ノードのみでパッケージの追加をしてしまう
    ▫ メンテしようにもどのマシンがどうなっているかログインしないと
    わからない

    View Slide

  12. 12
    とにかくやらないといけないことが多い
    適切な管理がなされない
    &

    View Slide

  13. 13
    お話しすること
    1. 理想的な機械学習基盤とRancher導入前のキスモでの現実
    2. 現在キスモで利用されている機械学習基盤
    3. なぜコンテナを使うのか
    4. なぜKubernetes & Rancherを使うのか
    5. 機械学習基盤が与えた効果

    View Slide

  14. 14
    機械学習基盤の概要図

    View Slide

  15. 15
    データサイエンティストが考えないといけないこと
    メモリ XGB
    CPU Yコア
    GPU Z枚
    を使いたい
    ○○のDockerImageで
    スクリプトを動かしたい

    View Slide

  16. 16
    インフラの作業
    ▫ データサイエンティストと一緒にDocker Imageの管理
    ▫ 最小限のミドルウェアをJujuを利用して管理
    - Docker
    - nvidia-docker
    - nvidiaデバイスドライバー
    ▫ マシンを物理的にネットワーク接続

    View Slide

  17. 17
    本日のお話
    ここについて深掘る

    View Slide

  18. 18
    お話しすること
    1. 理想的な機械学習基盤とRancher導入前のキスモでの現実
    2. 現在キスモで利用されている機械学習基盤
    3. なぜコンテナを使うのか
    4. なぜKubernetes & Rancherを使うのか
    5. 機械学習基盤が与えた効果

    View Slide

  19. どのマシンで実行するのが適切? CPUはあまってる?
    メモリは空いてる?
    19
    解決したい問題
    GPUはある?
    この実験には再現性ある?
    必要なライブラリは全部ある?
    CUDAのバージョンは?
    ほかの学習走ってる?

    View Slide

  20. 20
    解決したい問題
    ▫ 環境が継ぎ足されるので現状把握が難しい
    - インフラエンジニアだけがOSイメージを管理するとボトルネックになる
    ▫ インフラが変化に弱い
    - 用途に合わせていちいち環境ごとつくる?
    - そもそもCUDAのバージョン管理は人類には困難
    ▫ 複数のマシンで同一の環境を担保しにくい
    - 作業ノードのみでパッケージの追加をしてしまう
    ▫ メンテしようにもどのマシンがどうなっているかログインしないと
    わからない

    View Slide

  21. 21
    機械学習を取り巻く環境
    ▫ 機械学習分野は非常に開発が盛んである
    - 同一のフレームワークを使っていても優れたものがすぐに開発される
    ▫ 機械学習フレームワーク毎に特徴がある
    - データの特徴に合わせて、必要な時に必要なものを使いたい
    変化に強い基盤づくりが必要不可欠

    View Slide

  22. 22
    変化に強い環境づくり
    CUDA 9.2
    Python 3.6
    TensorFlow 1.9.0
    CUDA 10.0
    Python 3.6
    Pytorch 0.4.1
    いかに少ないコストで
    機械学習環境を変更するか

    View Slide

  23. 23
    Docker
    ▫ 必要なパッケージを必要な分だけコンテナに詰め込める
    ▫ 環境を変えたい場合はコンテナごと取り換えればよい
    ▫ nvidia-dockerを使うことでGPUも利用可能

    View Slide

  24. 24
    ▫ DockerfileにはCUDAや必要なライブラリのバージョンが
    コードとして書かれる
    - コードになることで実行前に確認が容易
    - イメージの変更も容易なことが多い
    ▫ Imageとしてpushすることで環境の冪等性が保証できる
    - 実験環境が容易に再現できる
    ▫ Nvidiaの作成したDockerImageを元にすると簡単に作業可能
    環境を保存するDockerfileを書いておく

    View Slide

  25. 25
    コンテナで実行環境を独立させる
    コンテナではコンテナ毎に独立してプログラムを実行できる
    コンテナに割り当てるリソースを制限できる
    他のコンテナでの学習に影響されずに学習スクリプトを実行できる

    View Slide

  26. 26
    お話しすること
    1. 理想的な機械学習基盤とRancher導入前のキスモでの現実
    2. 現在キスモで利用されている機械学習基盤
    3. なぜコンテナを使うのか
    4. なぜKubernetes & Rancherを使うのか
    5. 機械学習基盤が与えた効果

    View Slide

  27. この実験には再現性ある?
    27
    解決したい問題
    必要なライブラリは全部ある?
    CUDAのバージョンは?
    ほかの学習走ってる?
    どのマシンで実行するのが適切? CPUはあまってる?
    メモリは空いてる?
    GPUはある?

    View Slide

  28. 28
    解決したい問題
    ▫ 環境が継ぎ足されるので現状把握が難しい
    - インフラエンジニアだけがOSイメージを管理するとボトルネックになる
    ▫ インフラが変化に弱い
    - 用途に合わせていちいち環境ごとつくる?
    - そもそもCUDAのバージョン管理は人類には困難
    ▫ 複数のマシンで同一の環境を担保しにくい
    - 作業ノードのみでパッケージの追加をしてしまう
    ▫ メンテしようにもどのマシンがどうなっているかログインしないと
    わからない

    View Slide

  29. 29
    機械学習の実験
    ▫ 最適なモデルを作るためには、複数回の実験が必要不可欠
    ▫ 実験によって必要なリソースは様々
    - メモリ100GBでGPUが複数あるマシンが1つほしい
    - メモリ30GBのマシンが3つほしい
    必要なリソースを適切に配置する
    オーケストレーターが欲しい

    View Slide

  30. 30
    Kubernetes
    ▫ 宣言したリソースをWorkerノードから適切に探索して配置できる
    ▫ Nvidiaが開発した管理ツールをつかうとGPUリソースも管理できる
    ▫ 複数のマシンをクラスタ化して1台のマシンのように扱うことが
    できる

    View Slide

  31. ▫ 下記のマシンでクラスタを構成する場合を考える
    (簡単のためWorkerノードのみとする)
    - マシンA × 2
    - CPU: 8コア
    - メモリ: 50GB
    - GPU: GTX 2080Ti × 2
    - マシンB × 3
    - CPU: 4コア
    - メモリ: 20GB
    - GPU: GTX 1080
    31

    マシンA マシンB

    View Slide

  32. ▫ 下記のリソースを使って学習がしたい
    - コンテナX × 4
    - CPU: 4コア
    - メモリ: 20GB
    - GPU: なし
    - コンテナY × 1
    - CPU: 2コア
    - メモリ: 20GB
    - GPU: GTX 2080 × 1
    - コンテナZ ×1
    - CPU: 4コア
    - メモリ: 30GB
    - GPU: なし
    32

    マシンA マシンB

    View Slide

  33. ▫ 下記のリソースを使って学習がしたい
    - コンテナ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

    View Slide

  34. 34
    必要なリソースのみ考えればいい世界

    View Slide

  35. 35
    とはいえ…
    ▫ Kubernetesの学習コストをデータサイエンティストに課すのは
    うれしくない
    ▫ もっと直感的にKubernetesを使いたい
    GUIがあると初めて触るときの
    イメージが付きやすいのでは?

    View Slide

  36. 36
    Rancher
    ▫ GUIで穴埋めをすればコンテナをKubernetesに展開できる
    - 必ずしもkubectlコマンド等の利用方法を覚えなくとも使える
    ▫ 運用面でモニタリングツールとしても便利
    ▫ 権限の管理もある程度できる

    View Slide

  37. 37
    使い方
    ▫ GPUにはラベルを振って、
    指定できるようにする
    ▫ 慣れてきた人にはkubectlをラップした
    CLIツールを使ってもらう
    - インタラクティブにして変更があっても
    覚えることなく利用できるようにしている
    ▫ データは共有ストレージに配置

    View Slide

  38. 38
    お話しすること
    1. 理想的な機械学習基盤とRancher導入前のキスモでの現実
    2. 現在キスモで利用されている機械学習基盤
    3. なぜコンテナを使うのか
    4. なぜKubernetes & Rancherを使うのか
    5. 機械学習基盤が与えた効果

    View Slide

  39. 39
    機械学習基盤が与えた効果
    ▫ データサイエンティスト
    - 機械学習を行う際に意識すべきことが少なくなった
    - 最新のライブラリを柔軟に取り入れることが可能になった
    - リソースを柔軟に切り分けることができるようになった
    ▫ インフラエンジニア
    - 環境がコード化され、変化にかかるコストが著しく低下した
    - メンテナンスでは、必要に応じてノードを切り離せるようになった
    - 全体の管理を一括でやりやすくなった
    - 楽しい

    View Slide

  40. 40
    ご清聴ありがとうございました

    View Slide