Slide 1

Slide 1 text

Kubernetes で実現する最先端 AI プラットフォームへの挑戦 CloudNative Days Tokyo 2023 株式会社サイバーエージェント グループ IT 推進本部 CIU 漆田 瑞樹

Slide 2

Slide 2 text

・ー ・ー ・ー 1. 生成 AI と CyberAgent の取り組み 2. 分散学習ジョブの実行・管理機構 3. 分散学習向けクラスタネットワーク 2

Slide 3

Slide 3 text

漆田 瑞樹 ● 株式会社サイバーエージェント ○ 2018 年度新卒入社 ○ グループ IT 推進本部 CIU ● ML チーム所属 ○ プライベートクラウドの ML サービス開発 ■ 機械学習基盤 ML Platform ○ サービスのプロダクトオーナー・開発 3

Slide 4

Slide 4 text

1 生成 AI と CyberAgent の取り組み

Slide 5

Slide 5 text

生成 AI を使っていますか? 5

Slide 6

Slide 6 text

6

Slide 7

Slide 7 text

CyberAgentLM (CALM) 7 https://www.cyberagent.co.jp/news/detail/id=28817 https://www.cyberagent.co.jp/news/detail/id=29479 Published: 2023/05/17 Published: 2023/11/02

Slide 8

Slide 8 text

モデルの学習に要する計算リソース ● 年々ログスケールで上昇している 8 https://arxiv.org/abs/2202.05924

Slide 9

Slide 9 text

例: Llama2 の必要計算リソース ● Meta が 2023/07 に公開した大規模言語モデル ● パラメーター規模に比例して計算量が大きくなる 9 学習時間 (A100 GPU hours) 日換算(A100 単体) 日換算(A100 x8*) Llama2 70B 1,720,320 71,680 8,960 Llama2 13B 368,640 15,360 1,920 Llama2 7B 184,320 7,680 960 https://github.com/facebookresearch/llama/blob/main/MODEL_CARD.md * NVIDIA DGX A100 640GB に乗っている GPU の基数

Slide 10

Slide 10 text

10 https://www.cyberagent.co.jp/news/detail/id=28484

Slide 11

Slide 11 text

● A100 と比較して約 6 倍の性能向上が見込める ● 大規模な学習に向けてインターコネクト (ノード間 NW) も導入 ○ H100 80 基なら単純計算で Llama2 7B が 16 日で完了 NVIDIA H100 Tensor コア GPU の導入 11 https://resources.nvidia.com/en-us-tensor-core

Slide 12

Slide 12 text

ジョブ サーバーレス 推論 分散学習 ジョブ Notebook 機械学習基盤 ML Platform 12 GPU ノード CPU ノード ストレージ (NFS) Kubernetes Katib KServe Training Operator Kueue MPI Operator GPUaaS Training Prediction Distributed 合計ノード: 45 台 NVIDIA A100: 96 基 NVIDIA H100: 80 基 ストレージ: 180 TiB Kueue

Slide 13

Slide 13 text

2 分散学習ジョブの実行/管理機構 13

Slide 14

Slide 14 text

Distributed 14 Distributed API MPI Job 2 MPI Job 3 MPI Job 1 Enqueue Launcher Worker Dequeue Queue Request Collect logs

Slide 15

Slide 15 text

Distributed 15 Distributed API MPI Job 2 MPI Job 3 MPI Job 1 Kueue Controler MPI Operator Enqueue Launcher Worker Dequeue Queue Watch Resource Check & Handling Watch (Nothing to do) Watch Watch (Nothing to do) Request Collect logs Create

Slide 16

Slide 16 text

弊ジョブシステムにおける要件 ● 順序保証をして公平性を確保したい ● クォータによって利用可能な GPU 数を制限したい ● NVIDIA A100 と NVIDIA H100 を分けて管理したい ○ Node の Labels による区別ができる ● 余っている GPU を別テナントが使えるようにしたい ○ クォータ超過の柔軟性 16 Kueue で解決が可能

Slide 17

Slide 17 text

23 Distributed API MPI Job 2 MPI Job 3 MPI Job 1 Launcher Worker Queue for H100 user Queue for other user MPI Job 5 MPI Job 4 Launcher Worker H100 スケジューリング可 H100 スケジューリング不可 Enqueue based tenant-id

Slide 18

Slide 18 text

3 分散学習向け クラスタネットワーク

Slide 19

Slide 19 text

Node B Node A Node A 分散学習のノード間通信 25 ● 計算結果やパラメーターなどを複数ノード同士で共有 ○ 低レイテンシ・広帯域が必要 インターコネクト (ノード間 NW) Input Output

Slide 20

Slide 20 text

NW トポロジー: Fat-tree (フルバイセクション) ノード間帯域: 400GbE x8 (理論値 3.2Tbps) 通信方式: RoCEv2 (RDMA) 26 Leaf Leaf Leaf Leaf Leaf Leaf Leaf Leaf Spine Spine Spine Spine Node Node Node Node … …

Slide 21

Slide 21 text

NIC を Kubernetes の世界で扱う ● 各 NIC を分割して Device Plugin を通じてリソース化 ○ SR-IOV によって単一の NIC をホスト + 複数 Pod 間で共有 32 "nvidia-dgx-h100/nic0": "8", "nvidia-dgx-h100/nic1": "8", "nvidia-dgx-h100/nic2": "8", "nvidia-dgx-h100/nic3": "8", "nvidia-dgx-h100/nic4": "8", "nvidia-dgx-h100/nic5": "8", "nvidia-dgx-h100/nic6": "8", "nvidia-dgx-h100/nic7": "8", Node: .status.capacity NIC-0 物理 NIC 仮想 NIC 仮想 NIC 仮想 NIC 仮想 NIC 仮想 NIC 仮想 NIC 仮想 NIC 仮想 NIC SR-IOV Device Plugin NIC-7 ・ ・ ・

Slide 22

Slide 22 text

Worker (Pod) へ全ての NIC をアタッチ ● 経路選択は集団計算ライブラリ NCCL に委ねる 33 "nvidia-dgx-h100/nic0": "8", "nvidia-dgx-h100/nic1": "8", "nvidia-dgx-h100/nic2": "8", "nvidia-dgx-h100/nic3": "8", "nvidia-dgx-h100/nic4": "8", "nvidia-dgx-h100/nic5": "8", "nvidia-dgx-h100/nic6": "8", "nvidia-dgx-h100/nic7": "8", Node: .status.capacity Launcher Worker Worker Worker MPIJob SR-IOV CNI + Multus CNI

Slide 23

Slide 23 text

計算性能検証 35

Slide 24

Slide 24 text

まとめ ● 弊社では大規模言語モデルの開発に着手しています ● AI 開発のために NVIDIA H100 を 80 基導入しました ● 分散学習向けジョブシステム Distributed を開発しました ● パフォーマンス最大化のためインターコネクトを設計して Kubernetes の世界に落とし込んでいます ● 現時点では性能が線形に向上することが確認できています 36

Slide 25

Slide 25 text

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