AI素人が VMware Private AI Foundation with NVIDIA (HOL)を試してみた

2024/12/19

Advent Calendar AI NVIDIA VCF VMware

t f B! P L

 本記事は、「vExperts Advent Calendar 2024」の19日目です。

毎年のことですが、みなさんの内容が立派すぎて激しくプレッシャーですが。。
例によって例のごとく、私のターンは箸休め的にご覧いただければ。
毎年同じようなことを言ってる気がしますが。。。

今年は私の主戦場であるEUCがVMware(現Broadcom)から別れてしまったので、ネタを探さねばなりません。逸般の誤家庭よろしく、Home Labがあればネタになるのですが、例によって時間がないわけで。。ということで(どういうことだ?)時代はAI、AIネタいっとこう!という軽い気持ちでチャレンジしようと思います、HOLですがw

VMware Private AI Foundation with NVIDIA

HOL概要

みなさん、HOLという名前を知っていますかね?VMwareライクな方であればお世話になっている方も多いと思います。あらためて説明すると、VMware HOL(ハンズオンラボ)とは、(旧)VMware社が提供する、実際に製品を操作しながら学べる無料のオンライン環境です。
簡単に言うと、VMwareの製品や技術を「お試し体験」できる場です。
この環境を利用して「HOL-2549-02-VCF-S」を試してみようじゃないかという企画です。
ちなみに中の人は、元々インフラエンジニア(オンプレ成分やや強め)かつ、EUC系エンジニアであり、ここ数年まともに実環境を触れていないというステータスです!
AIについては、自分のゲーミングPCにNvidia ChatRTXをインストールして、ローカルAI環境(大げさw)で遊んだり、Chat GPT、Gemini、Copilotなどを検索補助として利用したり、資料のプロット案を作らせたり、文字起こしにAI使ってみたりというライトレベルかつ利用者側の経験しかない状況です。
そんな素人がAI基盤にチャレンジできるのか?HOLとはいえ環境いじってみたらどうなるのか?を試そうと企画しています。

HOL-2549-02-VCF-S

2024/12/19時点で、VMware Private AI Foundation with NVIDIAのHOLはこちらのみとなっています。かつ、英語のみであり、日本語の提供はありません。
さらにさらに、HOL環境で色々いじれると期待していたのですが、そんなことしたらリソースマッハでヤヴァいってことになるらしく、シミュレーション(ポチポチして進める紙芝居のようなもの)しかありませんでしたorz
せっかくなので、日本語にして紹介していこうかなと思います。
HOL自体は7章仕立てとなっています。
それぞれのモジュールがおおよそ15分と紹介されていましたが、私的には駆け足でやらないと時間が足りない感じでした。(私のレベルが足りてないだけの可能性あり)
ちなみに、VMware Private AI Foundation with NVIDIAは「PAIF-N」と略すようです。
でもって、PAIF-Nはデータサイエンティストが安全なオンプレミスデータセンター内でディープラーニング仮想マシン(「AIワークステーション」)を迅速に立ち上げ、自己サービス形式でビジネスを差別化するAI作業を実行できるようにしてくれるみたいです。
やゔぁい、すでにハードル高そう・・・(震え
クラウド管理者がこの機能を提供するための手順、データサイエンティストが利用できるNVIDIA AIコンポーネントやAI中心のアプリケーションのサンプルをシミュレーションできます。
さらに、これらのプライベートAI環境の鍵となるGPUを、両者がどのように効果的に監視できるかを確認するシナリオとなっていました。

Module 1 - Introduction to VMware Private AI Foundation with NVIDIA (15 minutes) Basic

座学のような感じです。ソリューションの概要などを紹介しているので、ただひたすら読むだけ。これと言って特に記載する内容はなさそうでした。
ざっくり要約すると・・・
PAIF-Nは、企業が生成AI導入時に直面するプライバシー、セキュリティ、コンプライアンス、パフォーマンスの課題を解決するソリューションです。オンプレミス環境でのプライベートなAI展開を可能にし、データ漏洩リスクを軽減します。VCFプラットフォームを基盤とし、GPU管理機能により高性能を実現。ベンチマークテストではベアメタルと同等以上の性能を示しています。つまり、企業は安全かつ効率的にAIを活用できるようになります。という感じです(私の理解なので違っていたらすいませぬ)

Module 2 - Architecture and GPUs in Private AI Foundation with NVIDIA for the VI-Admin (15 minutes)

ここでは紙芝居でPAIF-Nのアーキテクチャが紹介されています。そのあと、GPU周りの設定シミュレーションが開始されます。

GPUの設定

物理GPUは、以下のいずれかの方法で設定できます:

  • Pass Thruデバイス:GPU全体を1つのVMに専用。
  • vGPU:よりコスト効率が高く、複数のVMで共有可能(タイムスライスモードまたはMIGモード)。
vGPUホストドライバーのインストール

理想的には、NVIDIA vGPUホストドライバー(ESXi VIB)のインストールは自動化され、一貫性を確保するため複数のESXiホストに適用されます。これには、**vSphere Lifecycle Manager(vLCM)**などのツールを使用し、VCF SDDCマネージャーのライフサイクルと統合することもできます。このセクションでは、基本を明確に理解するために手動でVIBをインストールする手順を示します。

SSH経由でESXiホストに接続

VIBはBOOTBANK1ディレクトリに配置されています。

  1. ディレクトリ移動
    cd BOOTBANK1

  2. ディレクトリ内容の確認
    ls -laht | grep vib

  3. VIBが未インストールであることを検証
    esxcli software vib list | grep NV

  4. VIBをインストール
    esxcli software vib install -v [パスを指定]

  5. NVIDIAコマンドラインユーティリティを使用してGPUを確認
    nvidia-smi
    NVIDIA A100 40GB GPUが2基表示され、MIGモードが現在「Disabled*」であることを確認します。アスタリスクはシステム再起動が必要なことを示します。

  6. GPU 0のMIGモードを有効化
    nvidia-smi -i 0 -mig 1
    再度以下を実行して有効化を確認:
    nvidia-smi

vSphere Clientで確認

[>] vSphere Clientをクリック
nvidia-smiで確認したのと同じGPUが表示されます。

  1. HOST GRAPHICSをクリック
    デフォルトのグラフィックタイプと割り当てポリシーを確認します。

  2. EDIT...をクリック

    • Shared: AI以外のワークロード向け
    • Shared Direct: vGPUをタイムスライスまたはMIGモードで使用
    • GPU割り当てポリシー:
      • Spread VMs across GPUs: VMの負荷を分散
      • Group VMs on GPU until full: VMをグループ化し、GPU使用率を向上

Module 3 - Automation in Private AI Foundation with NVIDIA for the VI-Admin (15 minutes)

クラウド管理者やオートメーションチームがAria Automationを活用して、データサイエンティスト向けのセルフサービスAIカタログアイテムを作成する方法をシミュレーションで確認できます。

Aria Automation Private AI Quickstart Wizardを利用するには、いくつかの前提条件が必要です。これらをvSphere Clientを使用して確認していきます。
  1. オートメーションをクリック
  2. 左上のメニューアイコンをクリック
  3. Workload Managementをクリック
    • 必要なSupervisor Clusterが存在していることを確認します。
  4. サービス(Services)をクリック
    • Aria Automationは、Cloud Consumption Interface(CCI)を介してDeep Learning VM(AIワークステーション)をデプロイするためにVMサービスを使用します。
  5. 管理(MANAGE)をクリック
  6. VMクラス(VM Classes)をクリック
    • Aria Automation Private AI Quickstart Wizardを使用する前に、VMクラスを作成する必要があります。
  7. 管理(Manage)をクリック
  8. 編集(Edit)をクリック
    • このクラスで作成されたVMが指定された特性(vCPU数、メモリ、vGPU用PCIデバイスの構成)を使用することを確認します。NEXTをクリック
  9. NVIDIA vGPUプロファイル(モデル、共有タイプ、メモリ、vGPU数)を確認できます。Time Sharingをクリック
  10. GPU共有モードをTime SharingまたはMIGに設定できます。



ディープラーニングVMイメージは、事前にvSphereコンテンツライブラリに配置されている必要があります。これらのパッケージ化されたディープラーニングVMは、こちらのリンクからダウンロードできます。
  1. コンテンツライブラリをクリック

    • 「private-ai-service-images」という名前のコンテンツライブラリが作成されていることを確認します。
    • テンプレート(Templates)をクリック
      • ディープラーニング用のUbuntu VMがこのコンテンツライブラリに配置されていることを確認します。
  2. Aria Automationをクリック

    • LAUNCH QUICKSTARTをクリック
    • Private AI Automation Servicesの横にあるSTARTをクリック
  3. Quickstartウィザードの設定

    • プロビジョニングするvCenterと、その関連するSupervisorを選択し、リージョン名を入力します。
    • NEXT STEPをクリック
    • 組織のNVIDIAクライアント構成トークンとNVIDIAライセンスポータルAPIキーを入力します。これにより、手動での入力作業が不要になります。
    • NEXT STEPをクリック
  4. ディープラーニングVMの選択

    • コンテンツライブラリに配置されているDeep Learning Ubuntu VMがVMイメージとして設定されていることを確認します。
    • 適用可能なGPU対応のVMクラスを選択し、IaaSプラットフォームのストレージポリシーを選択します。
    • Scroll Barを使用してスクロールダウン
    • NEXT STEPをクリック
  5. プロジェクト詳細の確認

    • 新しいAIカタログアイテムが配置されるAria Automationプロジェクトの詳細を入力します。
    • NEXT STEPをクリック
  6. ウィザードの終了

    • Quickstartウィザードの内容を確認したら、Xをクリックしてウィザードを閉じます(デプロイはラボ環境で既に実行済みのため不要)。


新しいカタログアイテムの確認:
  1. Service Brokerをクリック

    • Quickstartウィザードによって作成された2つのAIカタログアイテムを確認します。
    • CHANGEをクリックして、AI Workstationクラウドテンプレートを詳細に調査します。
  2. Assemblerの確認

    • Assembler内で、AI Workstationのコンポーネント(Canvasの視覚表示)と右側のコードを確認します。
    • Cloud Consumption Interface(CCI)の名前空間、VMサービス、Deep Learning VM(DL-VM)、そして標準のCloud-Initを含む構成が表示されます。
  3. コードの詳細確認

    • RAG(Retrieval-Augmented Generation)アイテムを確認:

      1. RAGの説明
      2. LLMプレイグラウンド(チャットボット)
      3. Cloud-Initが生成するスクリプトdl_app.shの内容
    • スクリプトには以下の処理が含まれます:

      1. 必要なコンテナをDockerHubからダウンロード
      2. NVIDIA GPU Catalog(NGC)からLLMモデルやファイルを取得
      3. Docker ComposeコマンドでNVIDIAマイクロサービスを起動(rag.yamlファイルを使用)
  4. VMクラスアイテムの確認

    • セルフサービスカタログフォームで利用可能なVMクラスやソフトウェアバンドル(デフォルトはPyTorch)を確認します。
  5. dl-vmコードの確認

    • クラウドテンプレート内でdl-vmを選択し、ディープラーニングVMの詳細な構成を確認します。


Module 4 - Deploy AI workstation in Private AI Foundation with NVIDIA for the Data Scientist (15minutes)

このモジュールでは、データサイエンティストがVCFオートメーションを活用して、新しいAIワークステーション(ディープラーニングVM)を展開する方法が確認できます。
VCFというか、GPU搭載の環境がほしいなぁと思いますよねぇ。ゲーミングPCだと流石にこのレベルはカバーできなさそうなので。(そもそもゲームできなくなったら困るw)

データサイエンティストの役割で最初に行うことは、Aria Automation Service Broker Catalogを使用してAIワークステーションをセルフサービスでリクエストすることです。

  1. 「Deploy AI Workstation」をクリック
  2. 「REQUEST」をクリック
  3. 名前と説明は自動で入力されています。VMクラスフィールドをクリックし、以前に確認したvGPUプロファイルが選択されていることに注意してください。
  4. 「gpu-a100-2-full - 2 vGPU(40 GB)、16 CPUs、128 GBメモリ」をクリック
  5. ユーザーは、展開後にDLVMにSSH接続できるようにするためにパスワードを入力する必要があります。
  6. AIソフトウェアバンドルの選択リストが表示されます。「Pytorch」をクリック
  7. 「Generative AI Workflow - RAG」をクリック
  8. NVIDIA NGC APIキーのフィールドをクリック(NVIDIA AIソフトウェアを使用するデータサイエンティストは、通常、独自のキーを持っています)
  9. 「SUBMIT」をクリック
  10. 展開が開始されるので確認します。


Module 5 - Overview of NVIDIA AI Enterprise Microservices in Private AI Foundation (15minutes)

このモジュールでは、NVIDIAマイクロサービスの概要と、NVIDIA AIのLLM固有部分を形成するそれらの機能を確認します。このあたりから少し頭から湯気が出たかも。
あと、Windowsおじさん的には少々つらいシーンもチラホラと。。

データサイエンティストが自動的に展開されたNVIDIAマイクロサービスを確認します。

  1. NVIDIA AI Enterprise Microservicesをクリック
  2. ユーザーは、Aria Automationの展開概要ページでDLVMのIPアドレスを簡単に確認できます(以前に入力したパスワードを使用して、このVMにSSH接続することもできます)。

次に進みます:

  1. SSH Clientをクリック

  2. ディープラーニングVM内でいくつかの項目を確認し、理解を深めましょう。

    1. cat /etc/rc.local をタイプ
    • ここでは、各VMブート時に実行されるエントリを確認できます。このスクリプトは、ゲストOSのコンピュート(GPU)ドライバがインストールされ、機能していることを確認します。

    1. cat /opt/dlvm/get-vpu-driver.sh | more をタイプして、スクリプトの内容を確認
    • スクリプトの最初にあるロジック('if then else' ループ)が、ゲストOSドライバがインストールされているかを確認します。もし nvidia-smi が見つからなければ、スクリプトはドライバをインストールします。More を押すか、任意のキーを押して終了。

    1. cd /opt/dlvm をタイプ
    2. ls をタイプ
    • Aria Automationクラウドテンプレートによって展開時に書き出された dl_app.sh スクリプトを確認します(このファイルは、最初のゲスト起動時に業界標準のCloudInitプロセスを介して呼び出されます)。

    1. cat dl_app.sh をタイプ
    • 以前Aria Automation Assemblerで見たスクリプトと同じものであり、最後の行ではdocker composeを使用してコンテナを起動しています。これらのコンテナをさらに詳細に確認します。

    1. clear をタイプして画面をクリア
    2. sudo docker ps をタイプ
    • 上位2つのコンテナ('rag-playground'と'rag-application-text-chatbot')はアプリケーション関連で、後で使用するチャットボットをサポートします。次のコンテナ、'nemollm-inference-ms'はLarge Language Model(LLM)を提供します。'nemo-retriever-embedding-microservice'は、Retrieval-Augmented Generationを介して追加情報をベクトルデータベースに埋め込むマイクロサービスを提供します。最後のコンテナ、'pgvector'は、PostgreSQLを拡張してベクトル(番号の配列、時にはトークンと呼ばれる)をサポートします。

次に、'nemollm-inference-ms'コンテナを詳しく調べます。

  1. sudo docker exec -it nemollm-inference-ms bash をタイプ

  2. ps -eaf | more をタイプして、このコンテナ内で実行中のプロセスを確認

    • 実行中のnemoプロセスやそのスタートパラメータを確認できます。ここでは、llama-2-7b-chat Large Language Modelを利用し、ポート9999で提供していることがわかります。
  3. clear をタイプして画面をクリア

  4. cd /model-store をタイプ

  5. ls をタイプ

  • LLAMA-2-7B.yamlファイルが表示されます。このファイルの内容を出力します。
  1. cat LLAMA-2-7B-CHAT-4K-FP16-1-A100.24.01.yaml をタイプ
  • 最大バッチサイズなど、重要なLLM関連のチューニングパラメータを確認できます。
    シミュレーションではなぜかここで固まりました・・・(何度やってもだめぽ)



Module 6 - Example of RAG-Based Application in Private AI Foundation with NVIDIA (15 minutes)

このモジュールは、RAG(Retrieval-Augmented Generation)を活用して大規模言語モデルを拡張する方法が確認できます。 シミュレーションでは、社内のナレッジベースの記事で拡張されたチャットボットのインターフェイスを使用するシナリオでした。
このあたりは要勉強だと感じました。インフラ屋さんだとあまり縁が無い領域だったので。ちょっともしろそうではあるので時間を作っていじってみたいところではありつつ、環境がないからなぁ。前述したRTXChatでいじってみようかな。。。

ということで、チャットボットインターフェースを探索し、シンプルなRetrieval-Augmented Generation(RAG)のシミュレーションです。

手順:
  1. Use an Example RAG-Based Application をクリック

    • 内部ナレッジベース記事のサンプルが表示されます。これは、企業が内部でサービスデスクメンバーが情報を検索するために使用する知的財産の例と考えられます。この例の情報自体は機密ではありませんが、他の情報が機密である場合を想像してください。この情報をRAGで取り込んでLLMを拡張します。
  2. [>] Aria Automation をクリック

  3. LLM Playground をクリック

    • NVIDIAのチャットボットアプリケーションが表示されます。これは先ほど確認したコンテナを介して実行されています。Gradio UI(Pythonライブラリ)で作成されており、カスタマイズ可能でブランド変更などが可能です。
  4. チャットボットのクエリウィンドウ をクリック

  5. Submit をクリック

    • モデルは「What is llamaindex?」という検索クエリに慣れていないことがわかります。これを修正します。


モデルの強化
  1. Knowledge Base をクリック
  2. Add File をクリック
  3. Open をクリックして、先ほど見たIKB記事の内容をモデルに追加
    • このようなファイルが追加されると、データがチャンクに分割され、Llama-2言語モデルを拡張するベクトルデータベースにロードされます。このプロセスはAI業界で「Retrieval-Augmented Generation(RAG)」と呼ばれます。これは、顧客が知的財産(IP)を安全にロードし、AIアプリケーションを公開せずに拡張する仕組みです。

チャットボットでの確認
  1. Converse をクリック
  2. Use Knowledge Base を有効化
  3. チャットボットのクエリウィンドウ をクリック
  4. Submit をクリック
  • RAGのおかげでクエリ結果が大幅に改善されていることに注目してください。

SwaggerUIの確認
  1. SwaggerUI をクリック
  2. GET /v1/models をクリック
  3. Execute をクリック
  • この呼び出しを介して公開されている現在のモデル情報が表示されます。このSwaggerUIは、Jupyter Notebookを使用したAIクエリや開発の際に役立ちます。

Module 7 - GPU Monitoring in Private AI Foundation with NVIDIA (15 minutes)

最後のモジュールです。画像撮りながらやってたら時間切れたので、2回くらい回しましたw
VCF Operations に含まれる、PAIF-N ソリューションの GPUMonitoring 機能について説明があり、シミュレーションとなります。
シミュレーションでは、インフラストラクチャ提供の一環として、GPUの健康状態、利用状況、および実行状態(パフォーマンス)を監視するシナリオとなっています。

手順:
  1. [>] GPU Monitoring をクリック

    • Aria Operationsには、GPUを監視する際に役立つ2つのPrivate AIダッシュボードがあります。
  2. Private AI をクリック

  3. GPU Equipped Clusters をクリック

    • vSphereクラスタおよびESXiホストレベルで、GPU関連のメトリクスを観察できます。これには、クラスタ全体のGPU利用率や個々のホストGPU利用率が含まれます。
  4. GPU Overview をクリック

    • 温度、メモリ使用量、計算利用率の全体的なGPUヒートマップを観察できます。
      • 温度のヒートマップでは、赤色がGPUが高温で稼働していることを示します。
      • メモリと計算のヒートマップでは、赤色が低利用率を示します。
  5. w1-h... をクリック(特定のホストにドリルダウン)

    • トポロジグラフとGPUデバイス情報が表示されます。また、このホスト上の個々のGPUの温度(グラフ)が表示されます。
  6. [>] Complete をクリック

    • これでVCF Private AI Foundation with NVIDIAラボが終了します。このラボでは、VI-Adminとデータサイエンティストの双方がPrivate AIプロジェクトで成功を収めるために重要な技術と製品機能を探索しました。




ミッションコンプリート

なんだかんだで90枚近くスクショしちゃったので、全部のせるとカオス確定。ということで細切れにしちゃいました。最後の方力尽きたとか言わない!
なんだかんだで、一番馴染みのなかった部分が丁寧になったような気もします。
AIは使う方は日常でいじっていましたが、基盤側はしっかり確認したことがなかったので良い機会になりました。これ、逸般の誤家庭でいけるのかねぇ・・・
やはりシャチクラかなぁと謎の妄想をしつつ、私のターンは終了とさせていただきます。

Translate Blog

自己紹介

自分の写真
ITインフラエンジニア。のはずだけど最近は実機をいじれていないので錆びついてる疑惑。営業、コンサル(エセコンw)、プリセールスあたりの色が強い今日このごろです、はい。 vEXPERT 2019-2024 Omnissa Tech Insider

このブログを検索

ブログ アーカイブ



本サイトについて

ITインフラ系エンジニア(のはず)による、気の向くままに書きたいことをつぶやく場所です。もしかしたら備忘録的な側面もあるかも。 ブログに記載する内容はあくまでも個人的見解です。参考情報としてお取り扱いください。

QooQ