JapanVMUG Summer Meeting with NVIDIA の LT 「「AI やりたいので VM ください」のための VCF 入門。(Ubuntu 編)」の登壇資料です。VCF のアドオンとして利用するソリューションである VMware Private AI Foundation with NVIDIA(PAIF-N)で提供されいる、VMware Deep Learning VM を紹介しました。
VMware Deep Learning VM のリリース ノートはこちら。
ドキュメントは、下記のあたりが参考になります。
- Deploying a Deep Learning VM in VMware Private AI Foundation with NVIDIA
- Deep Learning Workloads in VMware Private AI Foundation with NVIDIA
今回の内容です。
- はじめに:今回の話の、前提と対象について
- 前半: Private AI Foundation with NVIDIA(PAIF-N) と VCF
- 後半: VMware Deep Learning VM(DLVM)を起動してみる
- この先の話
- 感想
はじめに:今回の話の、前提と対象について
NVIDIA AI Enterprise で機械学習、ディープラーニングなど AI をやるなら、NGC Catalog にあるコンテナ イメージを利用すると思います。
そして、AI で何かしてみようかなともい、いろいろ動作確認やプロトタイピングなどをすときには、Jupyter の Notebook を利用することが多いかなと思います。
ということで、NGC にある PyTorch のコンテナで、JupyterLab の Notebook を起動してみます。
前半: Private AI Foundation with NVIDIA(PAIF-N) と VCF
PAIF-N では、VCF(の おもに VI ワークロード ドメイン のほう)に GPU 搭載を搭載して、AI ワークロードを実行します。
VCF ならではの vSphere 環境である「ワークロード ドメイン」は、SDDC Manager で管理されますが・・・
PAIF-N の環境構築方法については、SDDC Manager の「ワークロード ドメイン」に「展開ガイド」へのリンクが用意されています。ここに、構築ステップごとにドキュメントのリンクが用意されています。
VCF のライフサイクル管理では、vSphere の vLCM をベースにしていて・・・
NVIDIA vGPU ドライバの VIB なども、ESXi のイメージの一部として管理できます。
PAIF-N の VCF VI ワークロード ドメインで AI ワークロード( NGC コンテナなど)を起動する環境として、仮想マシンまたは Kubernetes が用意されています。
- 仮想マシン: Deep Learning VM をデプロイします。
- GPU 搭載の仮想マシンで、ゲスト OS は Ubuntu です。
- そして Docker がインストールされています。
- Kubernetes: Tanzu Kubernetes Grid クラスタをデプロイします。
- Kubernetes ノードは GPU 搭載の仮想マシンで、こちらもゲスト OS は Ubuntu です。
後半: VMware Deep Learning VM(DLVM)を起動してみる
VMware Deep Learning VM(DLVM)の起動の様子です。
vCenter のコンテンツ ライブラリに DLVM の OVF をダウロードしておき、そこから展開します。
冒頭にも記載しましたが、DLVM のリリース ノートはこちらです。
OVF のパラメータ入力の様子です・・・
ゲスト OS の設定は、cloud-init を利用します。ここで入力したパラメータは XML 形式で扱われたりもするので、Base64 エンコードが必要です。
cloud-init の例です。
NVIDIA の vGPU Driver 関連のパラメータも入力できます。
コンテナ レジストリの URL や認証情報も入力できます。
コンテナ起動コマンドも入力できます。これも Base64 でエンコードしておく必要があります。ちなみに cloud-init と両方入力した場合は、cloud-init 側のスクリプトが実行されます。
Base64 エンコードの例です。
今回は、NGC の PyTorch コンテナに含まれる JupyterLab を起動しています。
DLVM OVF デプロイが完了したら、仮想マシンに GPU(vGPU)を接続してから、パワーオンします。
cloud-init が実行され、IP アドレスが設定されました。(ちなみに今回は DHCP で、IP アドレス設定には cloud-ini は使用していません)
NGC の PyTorch コンテナに含まれる JupyterLab を起動されています。
Notebook で、Python コードが実行できます。PyTorch ライブラリがインポートでき、GPU が接続されていることが確認できました。ちなみに、「!~」でシェル コマンドが実行できるので、nvidia-smi なども実行できます。
DLVM のゲスト OS に SSH 接続で確認した様子も、いくつか紹介しておきます。
Docker のランタイム設定の様子です。
この先の話
AI への取り組みがすすみ、学習やチューニングやデプロイの繰り返し/自動化(パイプライン構築、MLOps のような)、複数の AI や他システム/他サービスとの組み合わせ(RAG や NVIDIA NIM 活用など)がすすむと、DLVM ではなく、TKG の Kubernetes を利用することになると思います。
感想
当日、NVIDIA カラーの服がなかったのでかわりに用意しました。
以上、JapanVMUG Summer Meeting with NVIDIA の LT 登壇資料でした。