Successfully reported this slideshow.
Your SlideShare is downloading. ×

PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜

Ad

PFNのオンプレML基盤
の取り組み
Yuichiro Ueno (Cluster Services チーム)

Ad

発表者の紹介
● 上野 裕一郎 (Yuichiro Ueno)
○ 2021/04 新卒入社
■ Cluster Services チーム
○ 入社前
■ スパコンで深層学習をする研究
○ 趣味
■ ISUCONとか性能最適化
○ SNS
■ ...

Ad

目次
● オンプレクラスタの概要
○ PFNがオンプレクラスタを選ぶ理由
○ オンプレクラスタ・ストレージクラスタ
○ 基盤に求められる主な要件
● 使いやすい環境
● リソースの効率的かつフェアな利用
● 信頼性・運用省力化
● クラスタに関...

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Check these out next

1 of 25 Ad
1 of 25 Ad

PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜

Download to read offline

PFNは,「現実世界を計算可能にする」をVisionとして,膨大な計算量を必要とするシミュレーションや深層学習などの計算ワークロードを実行するためのオンプレML基盤を持っています.
この取り組みについて、「使いやすい環境」、「リソースの効率的かつフェアな利用」、「信頼性・運用省力化」の観点から紹介します。

本イベント「オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜」では、オンプレミスの Kubernetes クラスタ上に構築された機械学習基盤を持つ PFN とヤフーのエンジニアが自社での取り組みについて語り尽くします!

イベントサイト: https://ml-kubernetes.connpass.com/event/239859/

PFNは,「現実世界を計算可能にする」をVisionとして,膨大な計算量を必要とするシミュレーションや深層学習などの計算ワークロードを実行するためのオンプレML基盤を持っています.
この取り組みについて、「使いやすい環境」、「リソースの効率的かつフェアな利用」、「信頼性・運用省力化」の観点から紹介します。

本イベント「オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜」では、オンプレミスの Kubernetes クラスタ上に構築された機械学習基盤を持つ PFN とヤフーのエンジニアが自社での取り組みについて語り尽くします!

イベントサイト: https://ml-kubernetes.connpass.com/event/239859/

More Related Content

Slideshows for you (19)

More from Preferred Networks (20)

PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜

  1. 1. PFNのオンプレML基盤 の取り組み Yuichiro Ueno (Cluster Services チーム)
  2. 2. 発表者の紹介 ● 上野 裕一郎 (Yuichiro Ueno) ○ 2021/04 新卒入社 ■ Cluster Services チーム ○ 入社前 ■ スパコンで深層学習をする研究 ○ 趣味 ■ ISUCONとか性能最適化 ○ SNS ■ twitter.com/y1r96 2
  3. 3. 目次 ● オンプレクラスタの概要 ○ PFNがオンプレクラスタを選ぶ理由 ○ オンプレクラスタ・ストレージクラスタ ○ 基盤に求められる主な要件 ● 使いやすい環境 ● リソースの効率的かつフェアな利用 ● 信頼性・運用省力化 ● クラスタに関わる組織 3
  4. 4. オンプレクラスタの概要 4
  5. 5. PFNがオンプレクラスタを選ぶ理由 ● Vision: 現実世界を計算可能にする ○ シミュレーションや深層学習は膨大な計算リソースを必要とする ○ 計算力は競争力の源であり,大量の計算機が必要 ● 大規模な計算を(息をするように)したい ○ 16 GPUs, 32 GPUs and More*な分散学習を回したい ○ 1 GPUな学習を数百個パラメータを変えて回したい ○ Neural Architecture Searchをしたい ● 計算基盤全てをコントロールしたい ○ ノード内・ノード間通信,I/Oの全ての最適化が高速な学習には必要 ● 上から下まで(ハードもソフトも人も)保有することの重要性 ○ (調達・設計からアルゴリズムまで)様々な技術バックグラウンドを持つ メンバーが集結することで新しいものを生み出していきたい 5 (*) [1711.04325] Extremely Large Minibatch SGD: Training ResNet-50 on ImageNet in 15 Minutes
  6. 6. PFNのオンプレクラスタ 6 MN-1 MN-2a MN-3 WAN
  7. 7. 7 PFNのオンプレKubernetesクラスタ Icon pack by Icons8 - https://icons8.com データセンタごとにKubernetesクラスタを構成 128 nodes (1024 GPUs) MN-1 P100 PCIe x 8 10GbE x 2 InfiniBand FDR (56 Gbps) x 2 MN-3a 48 nodes (192 MN-Cores) MN-Core x 4 100GbE x 2 MN-Core DirectConnect MN-2a 128 nodes (1024 GPUs) V100 SXM2 x 8 100GbE x 4 RoCEv2 with SR-IOV WAN MN-1 MN-J 世界1位!! NVIDIA GPUなどの最新技術を採用した プライベート・スーパーコンピュータ MN-2 を自社構築し、7月に稼働 Preferred Networksの深層学習用スーパーコンピュータMN-3がスーパーコンピュータ省電力性能ランキングGreen500で世界1位を獲得
  8. 8. PFNのストレージクラスタ 8 トータル約 7.0 PB (論理容量, 増加中) File System Medium MN-Js NFS HDD NVMe SSD HDFS Apache Ozone MN-1s NFS NVMe SSD SATA SSD HDFS HDD
  9. 9. 基盤に求められる主な要件 ● 多様なリテラシのユーザが使いやすいこと ○ 「入社初日からクラスタで大規模に実験をして成果を出せる」 ● リソースを効率的かつフェアに利用できること ○ 効率的:マルチテナント,スケジューリング,パフォーマンス ○ フェア:各ユーザが利用した量に基づくプリエンプションなど ● 信頼性・運用効率 ○ 自動プロビジョニング,健全性の自動診断・保守省力化 9
  10. 10. 使いやすい環境 「入社初日からクラスタで大規模に実験をして成果を出せる」 10
  11. 11. 多様なリテラシのユーザが使いやすい環境 11 Interactive Environment kubectl build-and-run CLI tool Private PyPI Repository Workflow Engine Experiment Management Remote Image Build … GitHub Enterprise NFS HDFS Object Storage (Apache Ozone) Private Image Registry エンジニア 研究者 Pull/Push Through Cache
  12. 12. 多様なリテラシのユーザが使いやすい環境 12 ● とにかく手軽にWebだけで簡単にGPU, MN-Coreが使える(Jupyter , code-server ) ● pre-builtなall-in-one(必要なライブラリ全部入り)なcontainer imageで起動 ● Kubernetesをほとんど知らなくてもOK ● 大規模な実験にはあまり向かない Interactive Environment ● Manifestを直接書ける人用 ○ 内製のArgo Workflow記述DSL(python)有り kubectl ● 手元でコードを編集して、クラスタで実行したいひと向け ● Kubernetesの知識は少し必要だがマニフェストを書かなくていい ● 専用CLIでimage build → manifest applyまで実行可能(分散学習も対応) $ pfkube run -p mpijob --gpu 8 -o worker 4 -- mpiexec train.py ● pushなしで手元で編集中のコードがクラスタで再現可能な形で実行可 (git-ghost連携) ● defaultはall-in-one イメージ, 自分でDockerfile書くことも可能 build-and-run CLI tool
  13. 13. PFNにおける典型的なワークロード 13 (*) 分散深層学習を支える技術:AllReduceアルゴリズム - Preferred Networks Research & Development (**) [2007.08082] Distributed Reinforcement Learning of Targeted Grasping with Active Vision for Mobile Manipulators MPIジョブ 例: AllReduce*を伴う分散深層学習 タスク並列ジョブ 例: Parameter Search ヘテロジニアスなジョブ 例: 環境とモデルが通信する強化学習** 環境 (シミュレータ) 学習器 (MLP) Task Queue Icon pack by Icons8 - https://icons8.com ワークフロー 例: Neural Architecture Search インタラクティブ利用
  14. 14. リソースの効率的かつフェアな利用 「スケジューラで工夫しつつプリエンプションも使っていく」 14
  15. 15. リソースを効率的に利用できること ● マルチテナントによるプロジェクト間でのリソース共有 ● 高度なスケジューリング(custom scheduler plugins) ○ 優先度 ■ CPUジョブよりもGPUジョブを優先したスケジュール ○ Gang Scheduling (a.k.a Co-Scheduling) ■ Pod全てが同時にスケジュールされるか,全くされないか ■ Gang Podを”近く”に配置するUnique Zone制約もサポート ○ 様々なデバイスのサポート ■ GPU, NIC, MN-Core, Persistent Memory ● パフォーマンス ○ multi 100G NIC with RoCEv2 & SR-IOV ■ GPU間通信 for 分散学習 & ストレージ系の通信を混載する ○ 継続的な通信性能のリグレッションテスト 15
  16. 16. リソースをフェアに利用できること ● 優先度(PriorityClass)制御 ○ high > low > low-cpu > lowest ○ high ■ lowでクラスタが混雑していてもプリエンプションして走る ■ 同時実行数はプロジェクト単位で制限されている ○ それ以外の優先度クラスは誰でも使い放題 ■ オンプレクラスタが遊ぶのはもったいないのでガンガン使う ● 各ユーザが利用した量に基づくスケジューリング・プリエンプション ○ ノード時間積(利用リソース量 * 利用時間)を考慮する ■ よく使っているユーザはスケジューリングされづらい ■ よく使っているユーザはプリエンプションされやすい 16
  17. 17. 信頼性・運用省力化 「自動化を進めて障害に立ち向かう」 17
  18. 18. サーバプロビジョニング・GitOpsなど 18 Cluster API MAAS Provider (in-house) provisioning nodes with ansible Flux Flux GitHub Enterprise production eval sync manifests apply apply マニフェストは モノレポ管理 v1.23 準備中 (1 Minor Version遅れで運用)
  19. 19. 監視/Alerting 19 GitHub Enterprise remote write 監視 alertをissue化 (long-term storage) (Prometheus) pfnet-research/alertmanager-to-github
  20. 20. 運用省力化 20 Node Problem Detector Server-Checker (Custom Plugin) status.conditions: - type: DStateProcess status: "True" reason: DStateProcessIsDetected message: python(34688) in ml-pod@user-ns is D-state - type: GPUPendingPage status: "True" reason: GPUHasPendingPage message: GPU 0 has pending page: SingleBitErrors=3, DoubleBitErrors=1 Reconcile Conditions pfnet-research/node-operation-controller NodeRemeditation Template NodeOperation 生成 Icons made by Icon Monk from www.flaticon.com is licensed by CC 3.0 BY 復旧処理(Remediation) が既知なConditionに 対して作成 復旧処理 復旧処理時の Taint/Evict等も自動
  21. 21. 21 クラスタに関わる組織
  22. 22. クラスタに関わる組織 MN-Cor e Cluster Services Cluster Planning MN-Core 企画&設計 ASIC設計 コンパイラ・ランタイム 計算基盤サービス化 計算基盤 22 Project A 利用・フィードバック ファシリテーション Project B Project Z … 利用・フィードバック ファシリテーション 利用・フィードバック ファシリテーション 連 携 連 携 連 携
  23. 23. ありがとうございました! ● オンプレクラスタの概要 ● 使いやすい環境 ○ 「入社初日からクラスタで大規模に実験をして成果を出せる」 ● リソースの効率的かつフェアな利用 ○ 「スケジューラで工夫しつつプリエンプションも使っていく」 ● 信頼性・運用省力化 ○ 「自動化を進めて障害に立ち向かう」 ● クラスタに関わる組織 23
  24. 24. We're Hiring! 機械学習プラットフォームエンジニア (Infrastructure) ● こんな環境にワクワクする方を募集しています! ○ 日進月歩で進化している機械学習にフォーカスした計算技術を低レイヤーから高レイヤー までトータルに吸収できる ○ 大規模機械学習クラスタの開発・運用が経験できる ○ Kubernetesを始めとするOSSコミュニティでも活躍できるチャンスがある ○ HPCとCloud Nativeの境界領域という今後ますます重要になる分野の経験ができる ○ 多様な要求・ユーザーリテラシをサポートするプラットフォーム設計・実装を経験できる 24 学生さん向け 夏季国内インターン も開催予定です! (4/1 公開予定)
  25. 25. We're Hiring! ● カジュアル面談希望の連絡お待ちしています(DMでもメンションでもお気軽に) ○ 大村: @everpeace ● 資料 ○ PFNのML/DL基盤を支えるKubernetesにおける自動化 (DevOpsDays Tokyo 2021) ○ How to Schedule Machine Learning Workloads Nicely In Kubernetes (CNDT 2020) ○ Kubernetesによる機械学習基盤への挑戦 (JAPANCONTAINERDAYS V18.12) ○ Preferred Networksの機械学習クラスタを支える技術 (JulyTech Festa 2018 基調講演) ○ (採用ページにはこの他にも載せてあります ) 25

×