AI事業本部におけるGPU活用の取り組みとKubernetes
CyberAgent, Inc.
・Masaya Aoyama
・Lee Yeongjae
・Daisuke Takahashi
@CloudNative Days Spring 2021 Online
Session page: https://event.cloudnativedays.jp/cndo2021/talks/451
Slide 2
Slide 2 text
Who are we?
AI Platform Project Manager
2016年にサイバーエージェントに入社。入
社後は広告プロダクトでソリューションアー
キテクト、さらにプライベートクラウドや
GKE互換なコンテナプラットフォームの開発
を担当。AI系基盤プロジェクトのマネージャ
としてAIプラットフォームを開発。
Lee Yeongjae Masaya Aoyama Daisuke Takahashi
Developer Experts
Kubernetes / Cloud Native
2016年入社。OpenStackを使ったプラ
イベートクラウドやGKE互換なコンテナ
プラットフォームを構築。Kubernetes
完全ガイド著者。CloudNative Days
Tokyo 2019/2020 の Co-chairの他、
MeetupのOrganizerなどにも従事。
Infrastructure Engineer
主にプライベートなOpenStackプラット
フォームとKubernetes-as-a-Serviceの
開発、およびさまざまなアクセラレータ
デバイス提供における全ての工程を担
当。 GPUaaS / AIプラットフォームの基
盤となる物理インフラを構築。
Slide 3
Slide 3 text
AIソリューションの実行環境 (例)
ユーザ:Researcher, DataScientist, MLOps Engineer
Jupyter Notebook :GUI上で動作する対話型プログラム実行環境
Google AI Platform :Clientツール/GUIでMLワークフローを管理
モデル学習、評価 モデルのデプロイ
モデルによる推論 推論のモニタリング モデルのバージョン管理
コードの実装
入力データの用意
Slide 4
Slide 4 text
システム構成
DGX A100 AFF A800
GPUaaS (Kubernetes)
AI Platform
DGX A100 + AFF A800 → 高性能GPUとストレージを提供
GPU as a Service → Jupyter Notebookを提供
独自AI Platform → Google AI Platform相当の基盤を提供
MIG: Multi-instance GPU
MIG mode in the NVIDIA Ampere architecture can run
seven jobs in parallel on an A100 GPU (NVIDIA Blog)
● マルチテナンシー
○ DGX A100の場合、8GPUを最大56インスタンスに分割可能
○ アプリに応じたサイズのGPUを提供可能
● QoS保証
○ 各GPUインスタンスのメモリ・コア・転送帯域が独立
GPU as a Service の 2 つの利用方法
GPUaaS は 「専用の Web コンソール」 と 「kubectl」 から操作する
Kubernetes API Server
GPUaaS API Server
$ kubectl ...
● Notebook の起動
● ボリュームの管理
● 課金情報の表示
● プロジェクトの管理
● etc
Web Console kubectl
A B
OAuth2 Proxy + Ingress の連携による認証
API へのアクセス認証は
OAuth2 Proxy + Ingress(ingress-nginx)
を利用して Google Account 認証
API Server 側では
ユーザ情報をもとに処理を行う
GPUaaS API Server
Web Console
kind: Ingress
metadata:
name: gpuaas-api-server
annotations:
nginx.ingress.kubernetes.io/auth-url:
"https://$host/oauth2/auth"
nginx.ingress.kubernetes.io/auth-signin:
"https://$host/oauth2/start?rd=$escaped_request_uri"
GCP AI Platformと互換性のあるMLワークフローを管理できる社内基盤
(現状学習部分のみ)
要件
● GCP AI PlatformのMLワークフローをオフロードできる
○ オブジェクトストレージをハブに
● GCP AI Platformと操作性を統一できる
○ kubectlのプラグイン機能
● ハイパーパラメータチューニングができる
○ KubeflowのコンポーネントであるKatibを利用
● GCP AI Platformの設定を再利用できる
○ Katib用のマニフェストに変換
GPUaaS上で動作 & GPUaaSの特徴を継承
AI Platform の概要
DGX A100 AFF A800
GPUaaS (Kubernetes)
AI Platform
ML Pod
Slide 31
Slide 31 text
Kubectl Plugin
kubectlを拡張し、サブコマンドを作成
1. スクリプト/Binary作成
2. 実行権限設定
3. $PATH以下にkubectl-というPrefixで保存
※ コマンドで-を使用したい場合は_を使用
$ kubectl plugin list
The following kubectl-compatible plugins are available:
/usr/local/bin/kubectl-plugin_test
$ mv plugin_test.sh /usr/local/bin/kubectl-plugin_test
$ kubectl plugin-test
This is kubectl plugin test
$ chmod +x plugin_test.sh
$ cat << EOT >> plugin_test.sh
#!/bin/bash
echo "This is kubectl plugin test"
EOT
Slide 32
Slide 32 text
GCP AI Platformとの操作性の統一
kubectl ai-platform jobs submit training
kubectl ai-platform jobs list|get
kubectl ai-platform jobs describe
kubectl ai-platform jobs stream-logs
kubectl ai-platform jobs cancel
On-prem. resource
gcloud ai-platform jobs submit training
gcloud ai-platform jobs list|get
gcloud ai-platform jobs describe
gcloud ai-platform jobs stream-logs
gcloud ai-platform jobs cancel
Cloud resource
GCP AI Platform
Job definition
OSSによる継続的な機能改善
Kubernetesの強みを最大限に
まとめ
DGX A100
GPUaaS
(Kubernetes)
AI Platform
AI Platform
OSSを積極的に活用し、プラットフォームを改善することで、
アプリケーション開発のアジリティが向上し、ビジネスに大
きなインパクトを与える
AFF A800
Google AI Platformとの互換性
超高性能なGPU/ストレージ