Upgrade to Pro — share decks privately, control downloads, hide ads and more …

富士通研のAI基盤の話し/Talk about AI Infrastructure in Fujitsu Labs

kobaski
August 01, 2019

富士通研のAI基盤の話し/Talk about AI Infrastructure in Fujitsu Labs

kobaski

August 01, 2019
Tweet

Other Decks in Technology

Transcript

  1. こばし ひろみち • 所属: 株式会社富士通研究所 人工知能研究所 • 主任研究員 • むかしは「kobaski」でコンペとか出ていました

    • 東工大 首藤先生の日記 • http://www.shudo.net/diary/2010jun.html • http://www.shudo.net/diary/2011jun.html Copyright 2019 FUJITSU LABORATORIES LTD.
  2. するとどうなるかというと • 試行錯誤重要 Jupyter notebook • 本体に渡すの大変(ライブリの依存関係、受け取る人がAIモデルの専門 家とは限らない) Copyright 2019

    FUJITSU LABORATORIES LTD. 「それ、使いたい」と言ってもすぐに出てこない 技術がどう使えるのかわからない 実行環境構築が手間 研究者 営業・SE・事業部 GAP
  3. AI研の中でもインフラ寄りの人が想定した AI基盤 Copyright 2019 FUJITSU LABORATORIES LTD. メトリクス収集 kubectl 学習、推論

    しかし、ここにもまだ GAPがあった! • Kubernetesの学習コストはデータ サイエンティストにとって高すぎる • Job, Deployment … • Service, Ingress … • PV, PVC …
  4. 構築した学習・推論基盤 • クラスタ構成 • オンプレミス • k8s: v1.15.0(HA構成) • RAM:

    560GB~1.5TB • GPU: • V100: 20~40枚 • P100: 8~80枚 • リソースが不足すれ ばNodeを追加して対 応 • 全体構成はCIで管理 Copyright 2019 FUJITSU LABORATORIES LTD. メトリクス収集 学習、推論 Web API
  5. 苦労話::そもそも使ってー • AI基盤を普及させる • AI基盤のハンズオンも開催した • 10回, のべ70人参加⇒17部署, 176ユーザが利用 •

    Issueで情報共有 Copyright 2019 FUJITSU LABORATORIES LTD. 2 9 9 4 3 15 26 53 36 45 54 58 61 76 102 155 登録ユーザ数推移 新規登録ユーザ数 累計
  6. 苦労話::もっと登録してー • 事例を公開することで、再利用性 とナレッジ共有を目指す • 事例 = Dockerイメージ + Jupytenotebook

    • AI研究者にDockerを覚えてもらっ た • 5回くらいハンズオンを開催 (2016年 頃 40人くらい) Copyright 2019 FUJITSU LABORATORIES LTD. サービス定義 Jupyter notebook
  7. 苦労話::k8sの障害事例 • 4台が一つの電源タップが死んだ(ヒューズが 飛んだ) • 4台死んだうち、冗長化したマスターが3台が 含まれていて、3台とも死んだ。これはまずい • とりあえず復旧しようとマスターの電源をいれ たやつが壊れていたやつで、さらに3台ころし

    た • 結果、全16台(当時)のうち8台が死んで、分 散ファイルシステムを構成するサーバが含ま れていて、あぶなくデータにアクセスできなくな るところだった • 教訓 • 分散ファイルシステムとAIシステムは分けよう • 電源タップも分けよう • 電源冗長化しよう Copyright 2019 FUJITSU LABORATORIES LTD.
  8. 苦労話::コンテナ駆逐コンテナ • コンテナの優先順位 • Guaranteed (優先度が一番高い) • Burstable • BestEffort

    (優先度が一番低い) • K8sではリソース指定でResource Limits(上限)とResource Request(下限)できるが、初期のAI基盤では下限だけ設定でき るようにしたり、それがBurstableになっていた。他の物はBest Effort。 • 何が起こったか • 400GB指定のBurstableコンテナが乗り込んでくると、そのノードのBest Effortコンテナを駆逐。 • でもそのBurstableコンテナはバグで数分後に落ちる • 機械学習だと結構あります。密行列想定ライブラリを使って巨大疎行列を 扱おうとした。メモリ使いすぎ。 • 再起動を繰り返す • 全てノードのコンテナを落とし始める。 • どうしたか • LimitsとRequestの両方を強制的に設定する(一致)ようにして駆逐コン テナの出現を抑制。 • Limitを超えると自身がk8sに殺される。 下限だけが指定されているとメモリをどんどん食っちゃう。 Copyright 2019 FUJITSU LABORATORIES LTD. Burstable (400GB) BestEffort BestEffort 600 GB Burstable (600GB) 600 GB Burstable (600GB) 600 GB
  9. 苦労話::GPUあるある • GPUを離さない。良いGPUを専有したがる。大して使っていないのに。 • Jupyter使っていると使っていないように見えても隙間時間だったりする。 • ジョブが終わっているのに結果を確認しない人がいる。 • これを消さないように。 •

    リテラシの問題 • 根本解決には至っていない • 応急対処 • 明にGPUを指定しないとGPUノードにはいなかないように設定 • Graffanaで誰でも見れるようにしていて、緩い相互監視機能を提供 • 最新GPUのパラメータはデフォルトでは見せてない • ちなみに • 最近停電があったのですが、停電前後で利用率が結構違ったりするのは悲しい Copyright 2019 FUJITSU LABORATORIES LTD.