ディープ ラーニング仮想マシンを kubectl を使用して vSphere IaaS control plane に展開するか、vSphere クラスタに直接展開する場合は、仮想マシンのカスタム プロパティを入力する必要があります。
VMware Private AI Foundation with NVIDIA のディープ ラーニング仮想マシン イメージの詳細については、「VMware Private AI Foundation with NVIDIA のディープ ラーニング仮想マシン イメージについて」を参照してください。
ディープ ラーニング仮想マシンの OVF プロパティ
ディープ ラーニング仮想マシンを展開する場合、仮想マシンのカスタム プロパティを入力して、Linux オペレーティング システムの構成、vGPU ゲスト ドライバの展開、DL ワークロード用の NGC コンテナの展開と構成を自動化する必要があります。
最新のディープ ラーニング仮想マシン イメージには、次の OVF プロパティがあります。
カテゴリ | パラメータ | vSphere Client のラベル | 説明 |
---|---|---|---|
基本 OS プロパティ | instance-id | インスタンス ID | 必須。仮想マシン インスタンスの一意のインスタンス ID。 インスタンス ID は、インスタンスを一意に識別します。インスタンス ID が変更されると、cloud-init はインスタンスを新しいインスタンスとして扱い、cloud-init プロセスを再度実行します。 |
hostname | ホスト名 | 必須。アプライアンスのホスト名。 | |
seedfrom | インスタンス データのシード元となる URL | オプション。user-data パラメータとメタデータの値を取得する URL。 | |
public-keys | SSH パブリック キー | 指定すると、インスタンスはデフォルト ユーザーの SSH authorized_keys にこの値を入力します。 |
|
user-data | エンコードされた user-data | プロビジョニング時に仮想マシンに挿入される一連のスクリプトまたはその他のメタデータ。 このプロパティは、cloud-init スクリプトの実際の内容です。この値は base64 でエンコードされている必要があります。
|
|
password | デフォルト ユーザーのパスワード | 必須。デフォルトの vmware ユーザー アカウントのパスワード。 | |
vGPU ドライバのインストール |
vgpu-license | vGPU ライセンス | 必須。NVIDIA vGPU クライアント構成トークン。トークンは、/etc/nvidia/ClientConfigToken/client_configuration_token.tok ファイルに保存されます。 |
nvidia-portal-api-key | NVIDIA ポータル API キー | 接続された環境に必須です。NVIDIA ライセンス ポータルからダウンロードした API キー。このキーは、vGPU ゲスト ドライバのインストールに必須です。 |
|
vgpu-fallback-version | vGPU ホスト ドライバのバージョン | このバージョンの vGPU ゲスト ドライバを直接インストールします。 | |
vgpu-url | エアギャップ vGPU ダウンロードの URL | 切断された環境に必須です。vGPU ゲスト ドライバをダウンロードする URL。ローカル Web サーバの必要な構成の詳細については、「プライベート AI ワークロード展開のための VMware Cloud Foundation の準備」を参照してください。 |
|
DL ワークロードの自動化 | registry-uri | レジストリ URI | 切断された環境、またはインターネットからイメージをダウンロードしないようにプライベート コンテナ レジストリを使用する場合に必須です。ディープ ラーニング ワークロード コンテナ イメージを含むプライベート コンテナ レジストリの URI。
|
registry-user | レジストリのユーザー名 | 基本認証を必要とするプライベート コンテナ レジストリを使用している場合に必須です。 | |
registry-passwd | レジストリのパスワード | 基本認証を必要とするプライベート コンテナ レジストリを使用している場合に必須です。 | |
registry-2-uri | セカンダリ レジストリ URI | Docker に基づき基本認証を必要とする 2 番目のプライベート コンテナ レジストリを使用している場合に必須です。 たとえば、NVIDIA RAG DL ワークロードが事前にインストールされたディープ ラーニング仮想マシンを展開すると、Docker Hub から pgvector イメージがダウンロードされます。 |
|
registry-2-user | セカンダリ レジストリのユーザー名 | 2 番目のプライベート コンテナ レジストリを使用している場合に必須です。 | |
registry-2-passwd | セカンダリ レジストリのパスワード | 2 番目のプライベート コンテナ レジストリを使用している場合に必須です。 | |
image-oneliner | エンコードされた 1 行コマンド | 仮想マシンのプロビジョニング時に実行される 1 行の bash コマンド。この値は base64 でエンコードされている必要があります。 このプロパティを使用して、PyTorch や TensorFlow など、展開する DL ワークロード コンテナを指定できます。VMware Private AI Foundation with NVIDIA のディープ ラーニング ワークロードを参照してください。
注意:
user-data と
image-oneliner の両方を使用しないでください。
|
|
docker-compose-uri | エンコードされた Docker Compose ファイル | DL ワークロード コンテナを起動するために Docker Compose ファイルが必要な場合に必須です。GPU を有効にして仮想マシンを起動した後、プロビジョニング時に仮想マシンに挿入される docker-compose.yaml ファイルの内容。この値は base64 でエンコードされている必要があります。 |
|
config-json | エンコードされた config.json | プロキシ サーバの詳細を追加するための構成ファイルの内容。この値は base64 でエンコードされている必要があります。プロキシ サーバでディープ ラーニング仮想マシンを構成するを参照してください。 | |
conda-environment-install | Conda 環境のインストール | 仮想マシンの展開が完了した後に自動的にインストールされる Conda 環境のカンマ区切りのリスト。 使用可能な環境:pytorch2.3_py3.12 |
VMware Private AI Foundation with NVIDIA のディープ ラーニング ワークロード
サポートされているディープ ラーニング (DL) ワークロードとその組み込みコンポーネントを使用して、ディープ ラーニング仮想マシンをプロビジョニングできます。DL ワークロードは NVIDIA NGC カタログからダウンロードされ、NVIDIA および VMware by Broadcom によって GPU 用に最適化され、検証されています。
ディープ ラーニング仮想マシン イメージの概要については、「VMware Private AI Foundation with NVIDIA のディープ ラーニング仮想マシン イメージについて」を参照してください。
CUDA サンプル
CUDA サンプルを実行しているディープ ラーニング仮想マシンを使用して、ベクトル加法、重力 N 体シミュレーショ、またはその他のサンプルを仮想マシンで調べることができます。「CUDA サンプル」ページを参照してください。
ディープ ラーニング仮想マシンが起動すると、CUDA サンプル ワークロードが実行され、vGPU ゲスト ドライバがテストされます。テスト出力は /var/log/dl.log ファイルで確認できます。
コンポーネント | 説明 |
---|---|
コンテナ イメージ | nvcr.io/nvidia/k8s/cuda-sample:ngc_image_tag例: nvcr.io/nvidia/k8s/cuda-sample:vectoradd-cuda11.7.1-ubi8 ディープ ラーニング仮想マシンでサポートされている CUDA サンプル コンテナ イメージの詳細については、「VMware ディープ ラーニング仮想マシン リリース ノート」を参照してください。 |
必要な入力 | CUDA サンプル ワークロードを展開するには、ディープ ラーニング仮想マシンの OVF プロパティを次の方法で設定する必要があります。
ディープ ラーニング仮想マシンの OVF プロパティを参照してください。 |
出力 |
|
PyTorch
PyTorch ライブラリを備えたディープ ラーニング仮想マシンを使用して、仮想マシン上で対話型 AI、NLP、およびその他のタイプの AI モデルを探索できます。「PyTorch」ページを参照してください。
ディープ ラーニング仮想マシンが起動すると、PyTorch パッケージがインストールおよび構成された JupyterLab インスタンスが起動します。
コンポーネント | 説明 |
---|---|
コンテナ イメージ | nvcr.io/nvidia/pytorch:ngc_image_tag例: nvcr.io/nvidia/pytorch:23.10-py3 ディープ ラーニング仮想マシンでサポートされている PyTorch コンテナ イメージの詳細については、「VMware ディープ ラーニング仮想マシン リリース ノート」を参照してください。 |
必要な入力 | PyTorch ワークロードを展開するには、ディープ ラーニング仮想マシンの OVF プロパティを次の方法で設定する必要があります。
ディープ ラーニング仮想マシンの OVF プロパティを参照してください。 |
出力 |
|
TensorFlow
TensorFlow ライブラリを備えたディープ ラーニング仮想マシンを使用して、仮想マシン上で対話型 AI、NLP、およびその他のタイプの AI モデルを探索できます。「TensorFlow」ページを参照してください。
ディープ ラーニング仮想マシンが起動すると、TensorFlow パッケージがインストールおよび構成された JupyterLab インスタンスが起動します。
コンポーネント | 説明 |
---|---|
コンテナ イメージ | nvcr.io/nvidia/tensorflow:ngc_image_tag 例: nvcr.io/nvidia/tensorflow:23.10-tf2-py3 ディープ ラーニング仮想マシンでサポートされている TensorFlow コンテナ イメージの詳細については、「VMware ディープ ラーニング仮想マシン リリース ノート」を参照してください。 |
必要な入力 | TensorFlow ワークロードを展開するには、ディープ ラーニング仮想マシンの OVF プロパティを次の方法で設定する必要があります。
ディープ ラーニング仮想マシンの OVF プロパティを参照してください。 |
出力 |
|
DCGM Exporter
ディープ ラーニング仮想マシンを Data Center GPU Manager (DCGM) Exporter とともに使用すると、NVIDIA DCGM、Prometheus、Grafana を使用して、DL ワークロードで使用される GPU の健全性を監視し、メトリックを取得できます。
「DCGM Exporter」ページを参照してください。
ディープ ラーニング仮想マシンでは、AI 操作を実行する DL ワークロードとともに DCGM Exporter コンテナを実行します。ディープ ラーニング仮想マシンが起動すると、DCGM Exporter は、vGPU メトリックを収集し、データを別のアプリケーションにエクスポートして、さらに監視および視覚化できるようになります。監視対象の DL ワークロードは、cloud-init プロセスの一部として、または仮想マシンの起動後にコマンド ラインから実行できます。
コンポーネント | 説明 |
---|---|
コンテナ イメージ | nvcr.io/nvidia/k8s/dcgm-exporter:ngc_image_tag 例: nvcr.io/nvidia/k8s/dcgm-exporter:3.2.5-3.1.8-ubuntu22.04 ディープ ラーニング仮想マシンでサポートされている DCGM Exporter コンテナ イメージの詳細については、「VMware ディープ ラーニング仮想マシン リリース ノート」を参照してください。 |
必要な入力 | DCGM Exporter ワークロードを展開するには、ディープ ラーニング仮想マシンの OVF プロパティを次の方法で設定する必要があります。
ディープ ラーニング仮想マシンの OVF プロパティを参照してください。 |
出力 |
次に、ディープ ラーニング仮想マシンで DL ワークロードを実行し、Prometheus (http://visualization_vm_ip:9090) と Grafana (http://visualization_vm_ip:3000) を使用して別の仮想マシンでデータを視覚化します。 |
ディープ ラーニング仮想マシンで DL ワークロードを実行する
vGPU メトリックを収集する DL ワークロードを実行し、データを別のアプリケーションにエクスポートして、さらに監視および視覚化します。
- SSH 経由で vmware としてディープ ラーニング仮想マシンにログインします。
- 次のコマンドを実行して、vmware ユーザー アカウントを docker グループに追加します。
sudo usermod -aG docker ${USER}
- DL ワークロードのコンテナを実行し、NVIDIA NGC カタログまたはローカル コンテナ レジストリからプルします。
たとえば、NVIDIA NGC から tensorflow:23.10-tf2-py3 イメージを実行するには、次のコマンドを実行します。
docker run -d -p 8888:8888 nvcr.io/nvidia/tensorflow:23.10-tf2-py3 /usr/local/bin/jupyter lab --allow-root --ip=* --port=8888 --no-browser --NotebookApp.token='' --NotebookApp.allow_origin='*' --notebook-dir=/workspace
- AI 開発のために DL ワークロードの使用を開始します。
Prometheus および Grafana のインストール
Prometheus と Grafana を実行する仮想マシンで、DCGM Exporter 仮想マシンからの vGPU メトリックを視覚化および監視できます。
- Docker Community Engine がインストールされた可視化仮想マシンを作成します。
- SSH 経由で仮想マシンに接続し、Prometheus 用の YAML ファイルを作成します。
$ cat > prometheus.yml << EOF global: scrape_interval: 15s external_labels: monitor: 'codelab-monitor' scrape_configs: - job_name: 'dcgm' scrape_interval: 5s metrics_path: /metrics static_configs: - targets: [dl_vm_with_dcgm_exporter_ip:9400'] EOF
- データ パスを作成します。
$ mkdir grafana_data prometheus_data && chmod 777 grafana_data prometheus_data
- Prometheus と Grafana をインストールするための Docker Compose ファイルを作成します。
$ cat > compose.yaml << EOF services: prometheus: image: prom/prometheus:v2.47.2 container_name: "prometheus0" restart: always ports: - "9090:9090" volumes: - "./prometheus.yml:/etc/prometheus/prometheus.yml" - "./prometheus_data:/prometheus" grafana: image: grafana/grafana:10.2.0-ubuntu container_name: "grafana0" ports: - "3000:3000" restart: always volumes: - "./grafana_data:/var/lib/grafana" EOF
- Prometheus および Grafana コンテナを起動します。
$ sudo docker compose up -d
Prometheus での vGPU メトリックの表示
Prometheus には、http://visualization-vm-ip:9090 でアクセスできます。Prometheus ユーザー インターフェイスで次の vGPU 情報を表示できます。
情報 | ユーザー インターフェイス セクション |
---|---|
ディープ ラーニング仮想マシンからの Raw vGPU メトリック | ディープ ラーニング仮想マシンからの Raw vGPU メトリックを表示するには、エンドポイント エントリをクリックします。 |
グラフ式 |
|
Prometheus の使用方法の詳細については、Prometheus のドキュメントを参照してください。
Grafana でのメトリックの視覚化
Prometheus を Grafana のデータ ソースとして設定し、ダッシュボードでディープ ラーニング仮想マシンからの vGPU メトリックを視覚化します。
- デフォルトのユーザー名 admin およびパスワード
admin
を使用して、http://visualization-vm-ip:3000 の Grafana にアクセスします。 - 最初のデータ ソースとして Prometheus を追加し、ポート 9090 で visualization-vm-ip に接続します。
- vGPU メトリックを使用してダッシュボードを作成します。
Prometheus データ ソースを使用してダッシュボードを構成する方法の詳細については、Grafana のドキュメントを参照してください。
Triton Inference Server
Triton Inference Server を備えたディープ ラーニング仮想マシンを使用して、モデル リポジトリをロードし、推論リクエストを受信できます。
「Triton Inference Server」ページを参照してください。
コンポーネント | 説明 |
---|---|
コンテナ イメージ | nvcr.io/nvidia/tritonserver:ngc_image_tag 例: nvcr.io/nvidia/tritonserver:23.10-py3 ディープ ラーニング仮想マシンでサポートされている Triton Inference Server コンテナ イメージの詳細については、「VMware ディープ ラーニング仮想マシン リリース ノート」を参照してください。 |
必要な入力 | Triton Inference Server ワークロードを展開するには、ディープ ラーニング仮想マシンの OVF プロパティを次の方法で設定する必要があります。
ディープ ラーニング仮想マシンの OVF プロパティを参照してください。 |
出力 |
Triton Inference Server のモデル リポジトリは /home/vmware/model_repository にあります。最初はモデル リポジトリは空で、Triton Inference Server インスタンスの最初のログにはモデルがロードされていないことが示されます。 |
モデル リポジトリの作成
モデル推論のためにモデルをロードするには、次の手順を実行します。
- モデルのモデル リポジトリを作成します。
- Triton Inference Server がロードできるように、モデル リポジトリを
/home/vmware/model_repository
にコピーします。sudo cp -r path_to_your_created_model_repository/* /home/vmware/model_repository/
モデル推論リクエストの送信
- ディープ ラーニング仮想マシン コンソールで次のコマンドを実行して、Triton Inference Server が正常でモデルの準備ができていることを確認します。
curl -v localhost:8000/v2/simple_sequence
- ディープ ラーニング仮想マシンで次のコマンドを実行して、モデルにリクエストを送信します。
curl -v localhost:8000/v2/models/simple_sequence
Triton Inference Server の使用の詳細については、NVIDIA Triton Inference Server モデル リポジトリのドキュメントを参照してください。
NVIDIA RAG
ディープ ラーニング仮想マシンを使用して、Llama2 モデルの Retrieval Augmented Generation (RAG) ソリューションを構築できます。
NVIDIA RAG Applications Docker Compose のドキュメントを参照してください(特定のアカウント権限が必要)。
コンポーネント | 説明 |
---|---|
コンテナ イメージとモデル | rag-app-text-chatbot.yamlNVIDIA サンプル RAG パイプライン内。 ディープ ラーニング仮想マシンでサポートされている NVIDIA RAG コンテナ アプリケーションの詳細については、「VMware ディープ ラーニング仮想マシン リリース ノート」を参照してください。 |
必要な入力 | NVIDIA RAG ワークロードを展開するには、ディープ ラーニング仮想マシンの OVF プロパティを次の方法で設定する必要があります。
ディープ ラーニング仮想マシンの OVF プロパティを参照してください。 |
出力 |
|
VMware Private AI Foundation with NVIDIA でディープ ラーニング仮想マシンに静的 IP アドレスを割り当てる
デフォルトでは、ディープ ラーニング仮想マシン イメージは DHCP アドレス割り当てで構成されます。vSphere クラスタに静的 IP アドレスを持つディープ ラーニング仮想マシンを直接展開する場合は、cloud-init セクションにコードを追加する必要があります。
手順
例: CUDA サンプル ワークロードへの静的 IP アドレスの割り当て
CUDA サンプル DL ワークロードを含むディープ ラーニング仮想マシンの例:
ディープ ラーニング仮想マシン要素 | 値の例 |
---|---|
DL ワークロード イメージ | nvcr.io/nvidia/k8s/cuda-sample:vectoradd-cuda11.7.1-ubi8 |
IP アドレス | 10.199.118.245 |
サブネット プリフィックス | /25 |
ゲートウェイ | 10.199.118.253 |
DNS サーバ |
|
次の cloud-init コードを指定します。
I2Nsb3VkLWNvbmZpZwp3cml0ZV9maWxlczoKLSBwYXRoOiAvb3B0L2Rsdm0vZGxfYXBwLnNoCiAgcGVybWlzc2lvbnM6ICcwNzU1JwogIGNvbnRlbnQ6IHwKICAgICMhL2Jpbi9iYXNoCiAgICBkb2NrZXIgcnVuIC1kIG52Y3IuaW8vbnZpZGlhL2s4cy9jdWRhLXNhbXBsZTp2ZWN0b3JhZGQtY3VkYTExLjcuMS11Ymk4CgptYW5hZ2VfZXRjX2hvc3RzOiB0cnVlCiAKd3JpdGVfZmlsZXM6CiAgLSBwYXRoOiAvZXRjL25ldHBsYW4vNTAtY2xvdWQtaW5pdC55YW1sCiAgICBwZXJtaXNzaW9uczogJzA2MDAnCiAgICBjb250ZW50OiB8CiAgICAgIG5ldHdvcms6CiAgICAgICAgdmVyc2lvbjogMgogICAgICAgIHJlbmRlcmVyOiBuZXR3b3JrZAogICAgICAgIGV0aGVybmV0czoKICAgICAgICAgIGVuczMzOgogICAgICAgICAgICBkaGNwNDogZmFsc2UgIyBkaXNhYmxlIERIQ1A0CiAgICAgICAgICAgIGFkZHJlc3NlczogWzEwLjE5OS4xMTguMjQ1LzI1XSAgIyBTZXQgdGhlIHN0YXRpYyBJUCBhZGRyZXNzIGFuZCBtYXNrCiAgICAgICAgICAgIHJvdXRlczoKICAgICAgICAgICAgICAgIC0gdG86IGRlZmF1bHQKICAgICAgICAgICAgICAgICAgdmlhOiAxMC4xOTkuMTE4LjI1MyAjIENvbmZpZ3VyZSBnYXRld2F5CiAgICAgICAgICAgIG5hbWVzZXJ2ZXJzOgogICAgICAgICAgICAgIGFkZHJlc3NlczogWzEwLjE0Mi43LjEsIDEwLjEzMi43LjFdICMgUHJvdmlkZSB0aGUgRE5TIHNlcnZlciBhZGRyZXNzLiBTZXBhcmF0ZSBtdWxpdHBsZSBETlMgc2VydmVyIGFkZHJlc3NlcyB3aXRoIGNvbW1hcy4KIApydW5jbWQ6CiAgLSBuZXRwbGFuIGFwcGx5
これは、プレーンテキスト形式の次のスクリプトに対応します。
#cloud-config write_files: - path: /opt/dlvm/dl_app.sh permissions: '0755' content: | #!/bin/bash docker run -d nvcr.io/nvidia/k8s/cuda-sample:vectoradd-cuda11.7.1-ubi8 manage_etc_hosts: true write_files: - path: /etc/netplan/50-cloud-init.yaml permissions: '0600' content: | network: version: 2 renderer: networkd ethernets: ens33: dhcp4: false # disable DHCP4 addresses: [10.199.118.245/25] # Set the static IP address and mask routes: - to: default via: 10.199.118.253 # Configure gateway nameservers: addresses: [10.142.7.1, 10.132.7.1] # Provide the DNS server address. Separate mulitple DNS server addresses with commas. runcmd: - netplan apply
プロキシ サーバでディープ ラーニング仮想マシンを構成する
インターネット アクセスがプロキシ サーバを経由する切断された環境で、ディープ ラーニング仮想マシンをインターネットに接続するには、仮想マシンの config.json ファイルにプロキシ サーバの詳細を指定する必要があります。