本記事は、「vExperts Advent Calendar 2024」の19日目です。
毎年のことですが、みなさんの内容が立派すぎて激しくプレッシャーですが。。例によって例のごとく、私のターンは箸休め的にご覧いただければ。
VMware Private AI Foundation with NVIDIA
HOL概要
HOL-2549-02-VCF-S
Module 1 - Introduction to VMware Private AI Foundation with NVIDIA (15 minutes) Basic
Module 2 - Architecture and GPUs in Private AI Foundation with NVIDIA for the VI-Admin (15 minutes)
物理GPUは、以下のいずれかの方法で設定できます:
- Pass Thruデバイス:GPU全体を1つのVMに専用。
- vGPU:よりコスト効率が高く、複数のVMで共有可能(タイムスライスモードまたはMIGモード)。
理想的には、NVIDIA vGPUホストドライバー(ESXi VIB)のインストールは自動化され、一貫性を確保するため複数のESXiホストに適用されます。これには、**vSphere Lifecycle Manager(vLCM)**などのツールを使用し、VCF SDDCマネージャーのライフサイクルと統合することもできます。このセクションでは、基本を明確に理解するために手動でVIBをインストールする手順を示します。
VIBはBOOTBANK1ディレクトリに配置されています。
ディレクトリ移動
cd BOOTBANK1ディレクトリ内容の確認
ls -laht | grep vibVIBが未インストールであることを検証
esxcli software vib list | grep NVVIBをインストール
esxcli software vib install -v [パスを指定]NVIDIAコマンドラインユーティリティを使用してGPUを確認
nvidia-smi
NVIDIA A100 40GB GPUが2基表示され、MIGモードが現在「Disabled*」であることを確認します。アスタリスクはシステム再起動が必要なことを示します。GPU 0のMIGモードを有効化
nvidia-smi -i 0 -mig 1
再度以下を実行して有効化を確認:
nvidia-smi
[>] vSphere Clientをクリックnvidia-smi
で確認したのと同じGPUが表示されます。
HOST GRAPHICSをクリック
デフォルトのグラフィックタイプと割り当てポリシーを確認します。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)
- オートメーションをクリック
- 左上のメニューアイコンをクリック
- Workload Managementをクリック
- 必要なSupervisor Clusterが存在していることを確認します。
- サービス(Services)をクリック
- Aria Automationは、Cloud Consumption Interface(CCI)を介してDeep Learning VM(AIワークステーション)をデプロイするためにVMサービスを使用します。
- 管理(MANAGE)をクリック
- VMクラス(VM Classes)をクリック
- Aria Automation Private AI Quickstart Wizardを使用する前に、VMクラスを作成する必要があります。
- 管理(Manage)をクリック
- 編集(Edit)をクリック
- このクラスで作成されたVMが指定された特性(vCPU数、メモリ、vGPU用PCIデバイスの構成)を使用することを確認します。NEXTをクリック
- NVIDIA vGPUプロファイル(モデル、共有タイプ、メモリ、vGPU数)を確認できます。Time Sharingをクリック
- GPU共有モードをTime SharingまたはMIGに設定できます。
コンテンツライブラリをクリック
- 「private-ai-service-images」という名前のコンテンツライブラリが作成されていることを確認します。
- テンプレート(Templates)をクリック
- ディープラーニング用のUbuntu VMがこのコンテンツライブラリに配置されていることを確認します。
Aria Automationをクリック
- LAUNCH QUICKSTARTをクリック
- Private AI Automation Servicesの横にあるSTARTをクリック
Quickstartウィザードの設定
- プロビジョニングするvCenterと、その関連するSupervisorを選択し、リージョン名を入力します。
- NEXT STEPをクリック
- 組織のNVIDIAクライアント構成トークンとNVIDIAライセンスポータルAPIキーを入力します。これにより、手動での入力作業が不要になります。
- NEXT STEPをクリック
ディープラーニングVMの選択
- コンテンツライブラリに配置されているDeep Learning Ubuntu VMがVMイメージとして設定されていることを確認します。
- 適用可能なGPU対応のVMクラスを選択し、IaaSプラットフォームのストレージポリシーを選択します。
- Scroll Barを使用してスクロールダウン
- NEXT STEPをクリック
プロジェクト詳細の確認
- 新しいAIカタログアイテムが配置されるAria Automationプロジェクトの詳細を入力します。
- NEXT STEPをクリック
ウィザードの終了
- Quickstartウィザードの内容を確認したら、Xをクリックしてウィザードを閉じます(デプロイはラボ環境で既に実行済みのため不要)。
Service Brokerをクリック
- Quickstartウィザードによって作成された2つのAIカタログアイテムを確認します。
- CHANGEをクリックして、AI Workstationクラウドテンプレートを詳細に調査します。
Assemblerの確認
- Assembler内で、AI Workstationのコンポーネント(Canvasの視覚表示)と右側のコードを確認します。
- Cloud Consumption Interface(CCI)の名前空間、VMサービス、Deep Learning VM(DL-VM)、そして標準のCloud-Initを含む構成が表示されます。
コードの詳細確認
RAG(Retrieval-Augmented Generation)アイテムを確認:
- RAGの説明
- LLMプレイグラウンド(チャットボット)
- Cloud-Initが生成するスクリプト
dl_app.sh
の内容
スクリプトには以下の処理が含まれます:
- 必要なコンテナをDockerHubからダウンロード
- NVIDIA GPU Catalog(NGC)からLLMモデルやファイルを取得
- Docker ComposeコマンドでNVIDIAマイクロサービスを起動(rag.yamlファイルを使用)
VMクラスアイテムの確認
- セルフサービスカタログフォームで利用可能なVMクラスやソフトウェアバンドル(デフォルトはPyTorch)を確認します。
dl-vmコードの確認
- クラウドテンプレート内で
dl-vm
を選択し、ディープラーニングVMの詳細な構成を確認します。
Module 4 - Deploy AI workstation in Private AI Foundation with NVIDIA for the Data Scientist (15minutes)
VCFというか、GPU搭載の環境がほしいなぁと思いますよねぇ。ゲーミングPCだと流石にこのレベルはカバーできなさそうなので。(そもそもゲームできなくなったら困るw)
データサイエンティストの役割で最初に行うことは、Aria Automation Service Broker Catalogを使用してAIワークステーションをセルフサービスでリクエストすることです。
- 「Deploy AI Workstation」をクリック
- 「REQUEST」をクリック
- 名前と説明は自動で入力されています。VMクラスフィールドをクリックし、以前に確認したvGPUプロファイルが選択されていることに注意してください。
- 「gpu-a100-2-full - 2 vGPU(40 GB)、16 CPUs、128 GBメモリ」をクリック
- ユーザーは、展開後にDLVMにSSH接続できるようにするためにパスワードを入力する必要があります。
- AIソフトウェアバンドルの選択リストが表示されます。「Pytorch」をクリック
- 「Generative AI Workflow - RAG」をクリック
- NVIDIA NGC APIキーのフィールドをクリック(NVIDIA AIソフトウェアを使用するデータサイエンティストは、通常、独自のキーを持っています)
- 「SUBMIT」をクリック
- 展開が開始されるので確認します。
Module 5 - Overview of NVIDIA AI Enterprise Microservices in Private AI Foundation (15minutes)
あと、Windowsおじさん的には少々つらいシーンもチラホラと。。
データサイエンティストが自動的に展開されたNVIDIAマイクロサービスを確認します。
- NVIDIA AI Enterprise Microservicesをクリック
- ユーザーは、Aria Automationの展開概要ページでDLVMのIPアドレスを簡単に確認できます(以前に入力したパスワードを使用して、このVMにSSH接続することもできます)。
次に進みます:
SSH Clientをクリック
ディープラーニングVM内でいくつかの項目を確認し、理解を深めましょう。
cat /etc/rc.local
をタイプ
ここでは、各VMブート時に実行されるエントリを確認できます。このスクリプトは、ゲストOSのコンピュート(GPU)ドライバがインストールされ、機能していることを確認します。
cat /opt/dlvm/get-vpu-driver.sh | more
をタイプして、スクリプトの内容を確認
スクリプトの最初にあるロジック('if then else' ループ)が、ゲストOSドライバがインストールされているかを確認します。もし
nvidia-smi
が見つからなければ、スクリプトはドライバをインストールします。More
を押すか、任意のキーを押して終了。
cd /opt/dlvm
をタイプls
をタイプ
Aria Automationクラウドテンプレートによって展開時に書き出された
dl_app.sh
スクリプトを確認します(このファイルは、最初のゲスト起動時に業界標準のCloudInitプロセスを介して呼び出されます)。
cat dl_app.sh
をタイプ
以前Aria Automation Assemblerで見たスクリプトと同じものであり、最後の行ではdocker composeを使用してコンテナを起動しています。これらのコンテナをさらに詳細に確認します。
clear
をタイプして画面をクリア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'コンテナを詳しく調べます。
sudo docker exec -it nemollm-inference-ms bash
をタイプps -eaf | more
をタイプして、このコンテナ内で実行中のプロセスを確認- 実行中のnemoプロセスやそのスタートパラメータを確認できます。ここでは、llama-2-7b-chat Large Language Modelを利用し、ポート9999で提供していることがわかります。
clear
をタイプして画面をクリアcd /model-store
をタイプls
をタイプ
- LLAMA-2-7B.yamlファイルが表示されます。このファイルの内容を出力します。
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)
Use an Example RAG-Based Application をクリック
- 内部ナレッジベース記事のサンプルが表示されます。これは、企業が内部でサービスデスクメンバーが情報を検索するために使用する知的財産の例と考えられます。この例の情報自体は機密ではありませんが、他の情報が機密である場合を想像してください。この情報をRAGで取り込んでLLMを拡張します。
[>] Aria Automation をクリック
LLM Playground をクリック
- NVIDIAのチャットボットアプリケーションが表示されます。これは先ほど確認したコンテナを介して実行されています。Gradio UI(Pythonライブラリ)で作成されており、カスタマイズ可能でブランド変更などが可能です。
チャットボットのクエリウィンドウ をクリック
Submit をクリック
- モデルは「What is llamaindex?」という検索クエリに慣れていないことがわかります。これを修正します。
- Knowledge Base をクリック
- Add File をクリック
- Open をクリックして、先ほど見たIKB記事の内容をモデルに追加
- このようなファイルが追加されると、データがチャンクに分割され、Llama-2言語モデルを拡張するベクトルデータベースにロードされます。このプロセスはAI業界で「Retrieval-Augmented Generation(RAG)」と呼ばれます。これは、顧客が知的財産(IP)を安全にロードし、AIアプリケーションを公開せずに拡張する仕組みです。
- Converse をクリック
- Use Knowledge Base を有効化
- チャットボットのクエリウィンドウ をクリック
- Submit をクリック
- RAGのおかげでクエリ結果が大幅に改善されていることに注目してください。
- SwaggerUI をクリック
- GET /v1/models をクリック
- Execute をクリック
- この呼び出しを介して公開されている現在のモデル情報が表示されます。このSwaggerUIは、Jupyter Notebookを使用したAIクエリや開発の際に役立ちます。
Module 7 - GPU Monitoring in Private AI Foundation with NVIDIA (15 minutes)
[>] GPU Monitoring をクリック
- Aria Operationsには、GPUを監視する際に役立つ2つのPrivate AIダッシュボードがあります。
Private AI をクリック
GPU Equipped Clusters をクリック
- vSphereクラスタおよびESXiホストレベルで、GPU関連のメトリクスを観察できます。これには、クラスタ全体のGPU利用率や個々のホストGPU利用率が含まれます。
GPU Overview をクリック
- 温度、メモリ使用量、計算利用率の全体的なGPUヒートマップを観察できます。
- 温度のヒートマップでは、赤色がGPUが高温で稼働していることを示します。
- メモリと計算のヒートマップでは、赤色が低利用率を示します。
- 温度、メモリ使用量、計算利用率の全体的なGPUヒートマップを観察できます。
w1-h... をクリック(特定のホストにドリルダウン)
- トポロジグラフとGPUデバイス情報が表示されます。また、このホスト上の個々のGPUの温度(グラフ)が表示されます。
[>] Complete をクリック
- これでVCF Private AI Foundation with NVIDIAラボが終了します。このラボでは、VI-Adminとデータサイエンティストの双方がPrivate AIプロジェクトで成功を収めるために重要な技術と製品機能を探索しました。
0 件のコメント:
コメントを投稿