Wenn Sie eine Deep Learning-VM in vSphere IaaS control plane mithilfe von kubectl oder direkt auf einem vSphere-Cluster bereitstellen, müssen Sie benutzerdefinierte VM-Eigenschaften eingeben.
Informationen zu Deep Learning-VM-Images in VMware Private AI Foundation with NVIDIA finden Sie unter Informationen zu Deep Learning-VM-Images in VMware Private AI Foundation with NVIDIA.
OVF-Eigenschaften von Deep Learning-VMs
Wenn Sie eine Deep Learning-VM bereitstellen, müssen Sie benutzerdefinierte VM-Eigenschaften ausfüllen, um die Konfiguration des Linux-Betriebssystems, die Bereitstellung des vGPU-Gasttreibers und die Bereitstellung und Konfiguration von NGC-Containern für die DL-Arbeitslasten zu automatisieren.
Das aktuelle Deep Learning-VM-Image verfügt über die folgenden OVF-Eigenschaften:
Kategorie | Parameter | Bezeichnung im vSphere Client | Beschreibung |
---|---|---|---|
Eigenschaften des Basisbetriebssystems | instance-id | Instanz-ID | Erforderlich. Eine eindeutige Instanz-ID für die VM-Instanz. Eine Instanz-ID identifiziert eine Instanz eindeutig. Wenn sich eine Instanz-ID ändert, behandelt cloud-init die Instanz als neue Instanz und führt den cloud-init-Prozess erneut für aus. |
hostname | Hostname | Erforderlich. Der Hostname der Appliance. | |
seedfrom | URL zum Speichern von Instanzdaten aus | Optional. Eine URL zum Abrufen des Werts für den Parameter „user-data“ und der Metadaten. | |
public-keys | Öffentlicher SSH-Schlüssel | Wenn angegeben, füllt die Instanz die SSH-authorized_keys des Standardbenutzers mit diesem Wert auf. |
|
user-data | Codierte Benutzerdaten | Ein Satz von Skripts oder anderen Metadaten, die zum Zeitpunkt der Bereitstellung in die VM eingefügt werden. Diese Eigenschaft stellt den tatsächlichen Inhalt des cloud-init-Skripts dar. Dieser Wert muss base64-verschlüsselt werden.
|
|
password | Standardbenutzerkennwort | Erforderlich. Das Kennwort für das vmware-Standardbenutzerkonto. | |
vGPU-Treiberinstallation |
vgpu-license | vGPU-Lizenz | Erforderlich. Das Konfigurationstoken des NVIDIA vGPU-Clients. Das Token wird in der Datei /etc/nvidia/ClientConfigToken/client_configuration_token.tok gespeichert. |
nvidia-portal-api-key | API-Schlüssel des NVIDIA-Portals | In einer verbundenen Umgebung erforderlich. Der API-Schlüssel, den Sie vom NVIDIA-Lizenzierungsportal heruntergeladen haben. Der Schlüssel ist für die Installation des vGPU-Gasttreibers erforderlich. |
|
vgpu-host-driver-version | Version des vGPU-Hosttreibers | Installieren Sie direkt diese Version des vGPU-Gasttreibers. | |
vgpu-url | URL für Air-Gap-vGPU-Downloads | In einer nicht verbundenen Umgebung erforderlich. Die URL zum Herunterladen des vGPU-Gasttreibers. Informationen zur notwendigen Konfiguration des lokalen Web-Servers finden Sie unter Vorbereiten von VMware Cloud Foundation für die Bereitstellung von Private AI-Arbeitslasten. |
|
Automatisierung von DL-Arbeitslasten | registry-uri | Registrierungs-URI | Erforderlich in einer nicht verbundenen Umgebung oder wenn Sie eine private Containerregistrierung verwenden möchten, um das Herunterladen von Images aus dem Internet zu vermeiden. Der URI einer privaten Containerregistrierung mit den Deep Learning-Arbeitslast-Container-Images. Erforderlich, wenn Sie auf eine private Registrierung in |
registry-user | Registrierungsbenutzername | Erforderlich, wenn Sie eine private Containerregistrierung verwenden, für die eine Standardauthentifizierung erforderlich ist. | |
registry-passwd | Registrierungskennwort | Erforderlich, wenn Sie eine private Containerregistrierung verwenden, für die eine Standardauthentifizierung erforderlich ist. | |
registry-2-uri | Sekundärer Registrierungs-URI | Erforderlich, wenn Sie eine zweite private Containerregistrierung verwenden, die auf Docker basiert und Standardauthentifizierung erfordert. Wenn Sie beispielsweise eine Deep Learning-VM mit der vorinstallierten NVIDIA RAG-DL-Arbeitslast bereitstellen, wird ein pgvector-Image aus dem Docker-Hub heruntergeladen. Sie können die Parameter |
|
registry-2-user | Sekundärer Registrierungsbenutzername | Erforderlich, wenn Sie eine zweite private Containerregistrierung verwenden. | |
registry-2-passwd | Sekundäres Registrierungskennwort | Erforderlich, wenn Sie eine zweite private Containerregistrierung verwenden. | |
image-oneliner | Codierter einzeiliger Befehl | Ein einzeilige Bash-Befehl, der bei der VM-Bereitstellung ausgeführt wird. Dieser Wert muss base64-verschlüsselt werden. Sie können diese Eigenschaft verwenden, um den DL-Arbeitslastcontainer anzugeben, den Sie bereitstellen möchten, z. B. PyTorch oder TensorFlow. Weitere Informationen finden Sie unter Deep Learning-Arbeitslasten in VMware Private AI Foundation with NVIDIA.
Vorsicht: Vermeiden Sie die Verwendung von
user-data und
image-oneliner .
|
|
docker-compose-uri | Codierte Docker-Erstellungsdatei | Erforderlich, wenn Sie eine Docker-Erstellungsdatei benötigen, um den DL-Arbeitslastcontainer zu starten. Der Inhalt der Datei docker-compose.yaml, die bei der Bereitstellung in die virtuelle Maschine eingefügt wird, nachdem die virtuelle Maschine mit aktivierter GPU gestartet wurde. Dieser Wert muss base64-verschlüsselt werden. |
|
config-json | Codierte config.json | Der Inhalt einer Konfigurationsdatei zum Hinzufügen der folgenden Details:
Dieser Wert muss base64-verschlüsselt werden. |
|
conda-environment-install | Installation der Conda-Umgebung | Eine kommagetrennte Liste der Conda-Umgebungen, die nach Abschluss der VM-Bereitstellung automatisch installiert werden sollen. Verfügbare Umgebungen: pytorch2.3_py3.12, |
Deep Learning-Arbeitslasten in VMware Private AI Foundation with NVIDIA
Sie können eine Deep Learning-VM zusätzlich zu ihren eingebetteten Komponenten mit einer unterstützten Deep Learning (DL)-Arbeitslast bereitstellen. Die DL-Arbeitslasten werden aus dem NVIDIA NGC-Katalog heruntergeladen und sind GPU-optimiert und von NVIDIA und VMware von Broadcom validiert.
Eine Übersicht über die Deep Learning-VM-Images finden Sie unter Informationen zu Deep Learning-VM-Images in VMware Private AI Foundation with NVIDIA.
CUDA-Beispiel
Sie können eine Deep Learning-VM mit ausgeführten CUDA-Beispielen verwenden, um die Vektorhinzufügung, die Gravitations-N-Körper-Simulation oder andere Beispiele auf einer VM zu untersuchen. Weitere Informationen finden Sie auf der Seite CUDA-Beispiele.
Nachdem die Deep Learning-VM gestartet wurde, führt sie eine CUDA-Beispielarbeitslast aus, um den vGPU-Gasttreiber zu testen. Sie können die Testausgabe in der Datei /var/log/dl.log überprüfen.
Komponente | Beschreibung |
---|---|
Container-Image | nvcr.io/nvidia/k8s/cuda-sample:ngc_image_tagBeispiel: nvcr.io/nvidia/k8s/cuda-sample:vectoradd-cuda11.7.1-ubi8 Informationen zu den CUDA-Beispiel-Container-Images, die für Deep Learning-VMs unterstützt werden, finden Sie unter Versionshinweise zu VMware Deep Learning VM. |
Erforderliche Eingaben | Um eine CUDA-Beispielarbeitslast bereitzustellen, müssen Sie die OVF-Eigenschaften für die Deep Learning-VM wie folgt festlegen:
Weitere Informationen finden Sie unter OVF-Eigenschaften von Deep Learning-VMs. |
Ausgabe |
|
PyTorch
Sie können eine Deep Learning-VM mit einer PyTorch-Bibliothek verwenden, um Konversations-KI, NLP und andere Arten von KI-Modellen auf einer VM zu erkunden. Weitere Informationen finden Sie auf der Seite PyTorch.
Nach dem Start der Deep Learning-VM wird eine JupyterLab-Instanz mit installierten und konfigurierten PyTorch-Paketen gestartet.
Komponente | Beschreibung |
---|---|
Container-Image | nvcr.io/nvidia/pytorch-pb24h1:ngc_image_tagBeispiel: nvcr.io/nvidia/pytorch-pb24h1:24.03.02-py3 Informationen zu den PyTorch-Container-Images, die für Deep Learning-VMs unterstützt werden, finden Sie unter Versionshinweise zu VMware Deep Learning VM. |
Erforderliche Eingaben | Um eine PyTorch-Arbeitslast bereitzustellen, müssen Sie die OVF-Eigenschaften für die Deep Learning-VM wie folgt festlegen:
Weitere Informationen finden Sie unter OVF-Eigenschaften von Deep Learning-VMs. |
Ausgabe |
|
TensorFlow
Sie können eine Deep Learning-VM mit einer TensorFlow-Bibliothek verwenden, um Konversations-KI, NLP und andere Arten von KI-Modellen auf einer VM zu erkunden. Weitere Informationen finden Sie auf der Seite TensorFlow.
Nachdem die Deep Learning-VM gestartet wurde, startet sie eine JupyterLab-Instanz mit installierten und konfigurierten TensorFlow-Paketen.
Komponente | Beschreibung |
---|---|
Container-Image | nvcr.io/nvidia/tensorflow-pb24h1:ngc_image_tag Beispiel: nvcr.io/nvidia/tensorflow-pb24h1:24.03.02-tf2-py3 Informationen zu den TensorFlow-Container-Images, die für Deep Learning-VMs unterstützt werden, finden Sie unter Versionshinweise zu VMware Deep Learning VM. |
Erforderliche Eingaben | Um eine TensorFlow-Arbeitslast bereitzustellen, müssen Sie die OVF-Eigenschaften für die Deep Learning-VM wie folgt festlegen:
Weitere Informationen finden Sie unter OVF-Eigenschaften von Deep Learning-VMs. |
Ausgabe |
|
DCGM Exporter
Sie können einer Deep Learning-VM mit einem DCGM Exporter (Data Center GPU Manager) verwenden, um den Zustand von GPUs zu überwachen und Metriken aus GPUs abzurufen, die von einer DL-Arbeitslast verwendet werden, indem Sie NVIDIA DCGM, Prometheus und Grafana verwenden.
Weitere Informationen finden Sie auf der Seite DCGM Exporter.
In einer Deep Learning-VM führen Sie den DCGM Exporter-Container zusammen mit einer DL-Arbeitslast aus, die KI-Vorgänge durchführt. Nachdem die Deep Learning-VM gestartet wurde, ist DCGM Exporter bereit, vGPU-Metriken zu erfassen und die Daten zur weiteren Überwachung und Visualisierung in eine andere Anwendung zu exportieren. Sie können die überwachte DL-Arbeitslast als Teil des cloud-init-Prozesses oder über die Befehlszeile ausführen, nachdem die virtuelle Maschine gestartet wurde.
Komponente | Beschreibung |
---|---|
Container-Image | nvcr.io/nvidia/k8s/dcgm-exporter:ngc_image_tag Beispiel: nvcr.io/nvidia/k8s/dcgm-exporter:3.2.5-3.1.8-ubuntu22.04 Informationen zu den DCGM Exporter-Container-Images, die für Deep Learning-VMs unterstützt werden, finden Sie unter Versionshinweise zu VMware Deep Learning VM. |
Erforderliche Eingaben | Um eine DCGM Exporter-Arbeitslast bereitzustellen, müssen Sie die OVF-Eigenschaften für die Deep Learning-VM wie folgt festlegen:
Weitere Informationen finden Sie unter OVF-Eigenschaften von Deep Learning-VMs. |
Ausgabe |
Anschließend führen Sie in der Deep Learning-VM eine DL-Arbeitslast aus und visualisieren die Daten auf einer anderen virtuellen Maschine mithilfe von Prometheus bei http://visualization_vm_ip:9090 und Grafana bei http://visualization_vm_ip:3000. |
Ausführen einer DL-Arbeitslast auf der Deep-Lean-VM
Führen Sie die DL-Arbeitslast aus, für die Sie vGPU-Metriken erfassen möchten, und exportieren Sie die Daten zur weiteren Überwachung und Visualisierung in eine andere Anwendung.
- Melden Sie sich bei der Deep Learning-VM als vmware über SSH an.
- Führen Sie den Container für die DL-Arbeitslast aus und ziehen Sie ihn aus dem NVIDIA NGC-Katalog oder aus einer lokalen Containerregistrierung.
So führen Sie beispielsweise den folgenden Befehl aus, um das tensorflow-pb24h1:24.03.02-tf2-py3-Image von NVIDIA NGC auszuführen:
docker run -d --gpus all -p 8888:8888 nvcr.io/nvidia/tensorflow-pb24h1:24.03.02-tf2-py3 /usr/local/bin/jupyter lab --allow-root --ip=* --port=8888 --no-browser --NotebookApp.token="$TOKEN" --NotebookApp.allow_origin="*" --notebook-dir=/workspace
- Beginnen Sie mit der Verwendung der DL-Arbeitslast für die KI-Entwicklung.
Installieren von Prometheus und Grafana
Sie können die vGPU-Metriken von der DCGM Exporter-VM auf einer virtuellen Maschine, auf der Prometheus und Grafana ausgeführt wird, visualisieren und überwachen.
- Erstellen Sie eine Visualisierungs-VM mit installierter Docker Community Engine.
- Stellen Sie über SSH eine Verbindung zur VM her und erstellen Sie eine YAML-Datei für Prometheus.
$ 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
- Erstellen Sie einen Datenpfad.
$ mkdir grafana_data prometheus_data && chmod 777 grafana_data prometheus_data
- Erstellen Sie eine Docker-Erstellungsdatei, um Prometheus und Grafana zu installieren.
$ 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
- Starten Sie die Prometheus- und Grafana-Container.
$ sudo docker compose up -d
Anzeigen von vGPU-Metriken in Prometheus
Sie können auf Prometheus unter http://visualization-vm-ip:9090 zugreifen. Sie können die folgenden vGPU-Informationen in der Prometheus-Benutzeroberfläche anzeigen:
Informationen | Abschnitt der Benutzeroberfläche |
---|---|
vGPU-Rohmetriken aus der Deep Learning-VM | Um die vGPU-Rohmetriken aus der Deep Learning-VM anzuzeigen, klicken Sie auf den Endpoint-Eintrag. |
Diagrammausdrücke |
|
Weitere Informationen zur Verwendung von Prometheus finden Sie in der Prometheus-Dokumentation.
Visualisieren von Metriken in Grafana
Legen Sie Prometheus als Datenquelle für Grafana fest und visualisieren Sie die vGPU-Metriken aus der Deep Learning-VM in einem Dashboard.
- Greifen Sie unter http://visualization-vm-ip:3000 auf Grafana zu, indem Sie den Standardbenutzernamen admin und das Kennwort
admin
verwenden. - Fügen Sie Prometheus als erste Datenquelle hinzu und verbinden Sie sich mit visualization-vm-ip auf Port 9090.
- Erstellen Sie ein Dashboard mit den vGPU-Metriken.
Weitere Informationen zum Konfigurieren eines Dashboards mithilfe einer Prometheus-Datenquelle finden Sie in der Grafana-Dokumentation.
Triton Inference Server
Sie können eine Deep Learning-VM mit einem Triton Inference Server verwenden, um ein Modell-Repository zu laden und Rückschlussanforderungen zu erhalten.
Weitere Informationen finden Sie auf der Seite Triton Inference Server.
Komponente | Beschreibung |
---|---|
Container-Image | nvcr.io/nvidia/tritonserver-pb24h1:ngc_image_tag Beispiel: nvcr.io/nvidia/tritonserver-pb24h1:24.03.02-py3 Informationen zu den Triton Inference Server-Container-Images, die für Deep Learning-VMs unterstützt werden, finden Sie unter Versionshinweise zu VMware Deep Learning VM. |
Erforderliche Eingaben | Um eine Triton Inference Server-Arbeitslast bereitzustellen, müssen Sie die OVF-Eigenschaften für die Deep Learning-VM wie folgt festlegen:
Weitere Informationen finden Sie unter OVF-Eigenschaften von Deep Learning-VMs. |
Ausgabe |
Das Modell-Repository für den Triton Inference Server befindet sich in /home/vmware/model_repository. Anfänglich ist das Modell-Repository leer, und das anfängliche Protokoll der Triton Inference Server-Instanz zeigt an, dass kein Modell geladen ist. |
Erstellen eines Modell-Repository
Führen Sie die folgenden Schritte aus, um Ihr Modell für den Modell-Rückschluss zu laden:
- Erstellen Sie das Modell-Repository für Ihr Modell.
Weitere Informationen finden Sie in der Dokumentation Dokumentation zum NVIDIA Triton Inference Server-Modell-Repository.
- Kopieren Sie das Modell-Repository in
/home/vmware/model_repository
, damit der Triton Inference Server es laden kann.cp -r path_to_your_created_model_repository/* /home/vmware/model_repository/
Senden von Modell-Rückschlussanforderungen
- Stellen Sie sicher, dass der Triton Inference Server fehlerfrei ist und die Modelle bereit sind, indem Sie diesen Befehl in der Deep Learning-VM-Konsole ausführen.
curl -v localhost:8000/v2/simple_sequence
- Senden Sie eine Anforderung an das Modell, indem Sie diesen Befehl auf der Deep Learning-VM ausführen.
curl -v localhost:8000/v2/models/simple_sequence
Weitere Informationen zur Verwendung des Triton Inference-Servers finden Sie in der Dokumentation NVIDIA Triton Inference Server-Modell-Repository.
NVIDIA RAG
Sie können eine Deep Learning-VM verwenden, um RAG-Lösungen (Retrieval Augmented Generation) mit einem Llama2-Modell zu erstellen.
Weitere Informationen finden Sie in der Dokumentation zu NVIDIA RAG-Anwendungen mit Docker Compose (erfordert bestimmte Kontoberechtigungen).
Komponente | Beschreibung |
---|---|
Container-Images und -Modelle | docker-compose-nim-ms.yaml rag-app-multiturn-chatbot/docker-compose.yamlin der NVIDIA-Beispiel-RAG-Pipeline. Informationen zu den für Deep Learning-VMs unterstützten NVIDIA RAG-Containeranwendungen finden Sie unter Versionshinweise zu VMware Deep Learning VM. |
Erforderliche Eingaben | Um eine NVIDIA RAG-Arbeitslast bereitzustellen, müssen Sie die OVF-Eigenschaften für die Deep Learning-VMs wie folgt festlegen:
Weitere Informationen finden Sie unter OVF-Eigenschaften von Deep Learning-VMs. |
Ausgabe |
|
Zuweisen einer statischen IP-Adresse zu einer Deep Learning-VM in VMware Private AI Foundation with NVIDIA
Standardmäßig werden die Deep Learning-VM-Images auf Zuweisung von Adressen mittels DHCP konfiguriert. Wenn Sie eine Deep Learning-VM mit einer statischen IP-Adresse direkt auf einem vSphere-Cluster bereitstellen möchten, müssen Sie dem Abschnitt „cloud-init“ zusätzlichen Code hinzufügen.
Prozedur
Beispiel: Zuweisen einer statischen IP-Adresse zu einer CUDA-Beispielarbeitslast
Für ein Beispiel für eine Deep Learning-VM mit einer CUDA-Beispiel-DL-Arbeitslast:
Deep Learning-VM-Element | Beispielwert |
---|---|
DL-Arbeitslast-Image | nvcr.io/nvidia/k8s/cuda-sample:vectoradd-cuda11.7.1-ubi8 |
IP-Adresse | 10.199.118.245 |
Subnetzpräfix | /25 |
Gateway | 10.199.118.253 |
DNS-Server |
|
Stellen Sie den folgenden cloud-init-Code bereit:
I2Nsb3VkLWNvbmZpZwp3cml0ZV9maWxlczoKLSBwYXRoOiAvb3B0L2Rsdm0vZGxfYXBwLnNoCiAgcGVybWlzc2lvbnM6ICcwNzU1JwogIGNvbnRlbnQ6IHwKICAgICMhL2Jpbi9iYXNoCiAgICBkb2NrZXIgcnVuIC1kIG52Y3IuaW8vbnZpZGlhL2s4cy9jdWRhLXNhbXBsZTp2ZWN0b3JhZGQtY3VkYTExLjcuMS11Ymk4CgptYW5hZ2VfZXRjX2hvc3RzOiB0cnVlCiAKd3JpdGVfZmlsZXM6CiAgLSBwYXRoOiAvZXRjL25ldHBsYW4vNTAtY2xvdWQtaW5pdC55YW1sCiAgICBwZXJtaXNzaW9uczogJzA2MDAnCiAgICBjb250ZW50OiB8CiAgICAgIG5ldHdvcms6CiAgICAgICAgdmVyc2lvbjogMgogICAgICAgIHJlbmRlcmVyOiBuZXR3b3JrZAogICAgICAgIGV0aGVybmV0czoKICAgICAgICAgIGVuczMzOgogICAgICAgICAgICBkaGNwNDogZmFsc2UgIyBkaXNhYmxlIERIQ1A0CiAgICAgICAgICAgIGFkZHJlc3NlczogWzEwLjE5OS4xMTguMjQ1LzI1XSAgIyBTZXQgdGhlIHN0YXRpYyBJUCBhZGRyZXNzIGFuZCBtYXNrCiAgICAgICAgICAgIHJvdXRlczoKICAgICAgICAgICAgICAgIC0gdG86IGRlZmF1bHQKICAgICAgICAgICAgICAgICAgdmlhOiAxMC4xOTkuMTE4LjI1MyAjIENvbmZpZ3VyZSBnYXRld2F5CiAgICAgICAgICAgIG5hbWVzZXJ2ZXJzOgogICAgICAgICAgICAgIGFkZHJlc3NlczogWzEwLjE0Mi43LjEsIDEwLjEzMi43LjFdICMgUHJvdmlkZSB0aGUgRE5TIHNlcnZlciBhZGRyZXNzLiBTZXBhcmF0ZSBtdWxpdHBsZSBETlMgc2VydmVyIGFkZHJlc3NlcyB3aXRoIGNvbW1hcy4KIApydW5jbWQ6CiAgLSBuZXRwbGFuIGFwcGx5
was dem folgenden Skript im Klartextformat entspricht:
#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
Bereitstellen einer Deep Learning-VM mit einer Proxyserver
Zum Herstellen einer Verbindung zwischen der Deep Learning-VM und dem Internet in einer getrennten Umgebung, in der über einen Proxyserver auf das Internet zugegriffen wird, müssen Sie die Details des Proxyservers in der Datei config.json auf der virtuellen Maschine bereitstellen.