Ein Deep-Learning-Container ist ein Docker-Container mit vorinstallierten Data-Science-Frameworks, -Bibliotheken und -Tools. Ein Nutzer, z. B. ein Data Scientist, wählt einen einzelnen DL-Container aus und stellt ihn bereit. Der bereitgestellte Container bietet eine leistungsoptimierte, konsistente Umgebung, die das schnelle Erstellen von Prototypen und Implementieren von Workflows unterstützt.
DL-Container bereitstellen
Bevor Sie einen DL-Container verwenden, müssen Sie ein Container-Image auswählen und bereitstellen, in dem Ihr ML-Task ausgeführt wird. Vorgefertigte Frameworks, Bibliotheken und Tools stellen einen DL-Container bereit.
DL-Container mit kubeconfig
-Dateien bereitstellen
Die Google Distributed Cloud (GDC) Air Gap-Appliance stellt die folgende kubeconfig
-Datei bereit, mit der Ihr DL-Container bereitgestellt wird:
CLUSTER_KUBECONFIG
: Die kubeconfig-Datei für den Bare-Metal-Kubernetes-Cluster. GDC stellt einen Cluster für alle Arbeitslasten bereit.
Weitere Informationen zum Anmelden in der Benutzeroberfläche und im kubectl
-Tool finden Sie unter Anmelden.
Informationen zum Abrufen der Datei CLUSTER_KUBECONFIG
finden Sie unter kubeconfig
-Datei abrufen.
Beispielskript und ‑dataset für maschinelles Lernen (ML) herunterladen
Laden Sie das Beispiel-ML-Skript beginner.ipynb
und das Dataset mnist.npz
herunter, um die ML-Kurzanleitung auszuführen. In der Anleitung wird gezeigt, wie Sie einen DL-Container bereitstellen und verwenden, um ML-Tests auszuführen.
mkdir -p /tmp/datasets
cd /tmp/datasets
wget --no-check-certificate
https://GDC_APPLIANCE_URL/.well-known/static/dl-container-tutorial/beginner.ipynb
wget --no-check-certificate
https://GDC_APPLIANCE_URL/.well-known/static/dl-container-tutorial/mnist.npz
Ersetzen Sie GDC_APPLIANCE_URL
durch den Domainnamen, der für den Zugriff auf GDC verwendet wird. Wenn Sie eine URL zum ersten Mal öffnen, werden Sie von GDC zur Anmeldeseite Ihres Identitätsanbieters weitergeleitet.
IP-Adresse der Harbor-Registrierung ermitteln
Bevor Sie das Beispielskript und das Dataset verwenden können, müssen Sie den Speicherort des DL-Container-Images in der Harbor-Registry ermitteln. Die Harbor-Registry ist ein Dienst, in dem private Container-Images gespeichert werden.
In der ersten Zeile des Beispielcodes wird der Pfad der Umgebungsvariable KUBECONFIG
festgelegt, die die Harbor-Registrierungsadresse abruft. Über die Harbor-Registry-Adresse haben Sie Zugriff auf eine Liste der verfügbaren Container-Images.
In der zweiten Zeile des Beispielcodes verwendet das kubectl
-Tool die Umgebungsvariable KUBECONFIG
.
In der dritten Zeile des Beispielcodes wird mit dem Befehl REGISTRY_URL#https://
das Präfix https://
aus der URL entfernt und die Harbor-Registrierungsdomain in der Umgebungsvariable REGISTRY_IP
gespeichert.
In der letzten Zeile des Beispielcodes ruft das kubectl-Tool das Passwort für den Nutzer admin
ab.
export KUBECONFIG=CLUSTER_KUBECONFIG
REGISTRY_URL=$(kubectl get harborcluster harbor -n harbor-system -o=jsonpath='{.spec.externalURL}')
REGISTRY_IP=${REGISTRY_URL#https://}
ADMIN_PASS=$(kubectl -n harbor-system get secret harbor-admin -o jsonpath="{.data.secret}" | base64 -d)
Container-Image auswählen
Sie müssen ein Container-Image für die Bereitstellung auswählen, bevor Sie eine ML-Aufgabe ausführen können. Verwenden Sie die Harbor-Registry-Domain und den Pfad in der folgenden Tabelle aus der Harbor-Registry, um die Liste der verfügbaren Container-Images aufzurufen:
Framework | Prozessor | Container-Image-Name |
---|---|---|
Basis | GPU | base-cu113 |
Basis | CPU | base-cpu |
TensorFlow Enterprise 2.x | GPU | tf2-gpu |
PyTorch | GPU | pytorch-gpu |
Diese Tabelle ist nach Framework und Prozessor sortiert. So wählen Sie ein DL-Container-Image aus, mit dem Ihr ML-Test verarbeitet werden kann:
- Ermitteln Sie das Framework, das die ML-Tools enthält.
- Wählen Sie den Prozessor aus. Sie wählen den Prozessor basierend auf der Art der auszuführenden ML-Aufgabe und der Rechenintensität dieser Aufgabe aus. Wählen Sie beispielsweise einen der GPU-Prozessoren aus, wenn Sie eine rechenintensive ML-Aufgabe haben, und weisen Sie dem DL-Container eine GPU-Ressource zu.
DL-Container erstellen und im Kubernetes-Cluster bereitstellen
Geben Sie zum Erstellen der GDC-Instanz den Pfad zur Datei kubeconfig
des Bare-Metal-Kubernetes-Clusters an. Die Umgebungsvariable KUBECONFIG
gibt an, in welchem Cluster das Tool kubectl
den DL-Container bereitstellt. Mit dem Befehl kubectl apply
wird die DL-Containerinstanz bereitgestellt.
Ersetzen Sie CONTAINER_IMAGE_NAME
durch das Image, das Sie in Container-Image auswählen aus der Liste der Images ausgewählt haben, und geben Sie das Tag an.
export KUBECONFIG=CLUSTER_KUBECONFIG
kubectl apply -f - <<EOF
apiVersion: v1
kind: Pod
metadata:
name: dl-container-pod
namespace: NAMESPACE
spec:
containers:
- image: gcr.io/private-cloud-staging/notebooks/deeplearning-platform-release/CONTAINER_IMAGE_NAME:CONTAINER_IMAGE_TAG
command: ["tail", "-f", "/dev/null"]
name: training
EOF
Bereitgestellten DL-Container verwenden
In den folgenden Themen wird anhand eines Beispiels gezeigt, wie Sie ein DL-Container-Image verwenden, um ein Modell zu trainieren und damit Vorhersagen zu generieren.
Anleitungsdateien in den DL-Container-Pod kopieren
Kopieren Sie die Dateien des Schnellstart-Tutorials in Ihren DL-Container-Pod. Die beginner.ipynb
enthält die Schritte zum Trainieren und Verwenden eines Modells für Vorhersagen.
Im Tutorial zum ML-Training wird die Dataset-Datei mnist.npz
zum Trainieren eines Modells verwendet.
cd /tmp/datasets
kubectl cp beginner.ipynb dl-container-pod:/tmp
kubectl cp mnist.npz dl-container-pod:/tmp
ML-Schnellstartanleitung ausführen
Führen Sie das Tutorial mit den folgenden Befehlen aus. Verwenden Sie die erste Zeile, um den Container-Pod aufzurufen. Wechseln Sie nach dem Aufrufen des Container-Pods zum Verzeichnis tmp
und führen Sie das Tool papermill
aus, das im DL-Container enthalten ist.
Das papermill
-Tool führt das Tutorial aus, um ein Notebook zu erstellen, das Vorhersagen generiert.
Geben Sie ein interaktives Terminal in den DL-Pod ein:
kubectl exec -it dl-container-pod -- /bin/bash
Führen Sie im Kontext des DL-Pods die folgenden Befehle aus:
cd tmp papermill beginner.ipynb result.ipynb
Bei der Bereitstellung wird eine
result.ipynb
-Datei im Verzeichnis/tmp
generiert.Inhalte und Vorhersageausgaben des generierten ML-Modells ansehen:
cat result.ipynb
Optional: DL-Container-Pod löschen
Nachdem Sie den Test im DL-Container-Pod abgeschlossen haben, sollten Sie den Pod löschen:
kubectl delete pod dl-container-pod