Un conteneur de deep learning (DL) est un conteneur Docker avec des frameworks, des bibliothèques et des outils de science des données préinstallés. Un utilisateur, tel qu'un data scientist, choisit un seul conteneur de DL et le déploie. Le conteneur déployé dispose d'un environnement cohérent et optimisé pour les performances, qui permet de créer rapidement des prototypes et d'implémenter des workflows.
Déployer un conteneur de DL
Avant d'utiliser un conteneur de deep learning, vous devez choisir et déployer une image de conteneur qui exécute votre tâche de machine learning (ML). Des frameworks, des bibliothèques et des outils préinstallés provisionnent un conteneur de DL.
Déployer un conteneur de DL à l'aide de fichiers kubeconfig
L'appliance Google Distributed Cloud (GDC) sous air gap fournit le fichier kubeconfig
suivant qui déploie votre conteneur de DL :
CLUSTER_KUBECONFIG
: fichier kubeconfig du cluster Kubernetes sur métal nu. GDC fournit un cluster pour toutes les charges de travail.
Pour en savoir plus sur la connexion à l'UI et à l'outil kubectl
, consultez Se connecter.
Pour récupérer le fichier CLUSTER_KUBECONFIG
, consultez Obtenir un fichier kubeconfig
.
Télécharger l'exemple de script et d'ensemble de données de machine learning (ML)
Téléchargez l'exemple de script ML, beginner.ipynb
, et l'ensemble de données, mnist.npz
, pour exécuter le tutoriel de démarrage rapide sur le ML. Ce tutoriel explique comment déployer et utiliser un conteneur de deep learning pour exécuter des expériences de ML.
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
Remplacez GDC_APPLIANCE_URL
par le nom de domaine utilisé pour accéder à GDC. Lorsque vous ouvrez une URL pour la première fois, GDC vous redirige vers la page de connexion de votre fournisseur d'identité.
Rechercher l'adresse IP du registre Harbor
Avant d'utiliser l'exemple de script et d'ensemble de données, vous devez trouver l'emplacement de l'image de conteneur DL dans le registre Harbor. Le registre Harbor est un service qui stocke des images de conteneurs privés.
La première ligne de l'exemple de code définit le chemin d'accès de la variable d'environnement KUBECONFIG
, qui récupère l'adresse du registre Harbor. L'adresse du registre Harbor permet d'accéder à une liste d'images de conteneurs disponibles.
Dans la deuxième ligne de l'exemple de code, l'outil kubectl
utilise la variable d'environnement KUBECONFIG
.
Dans la troisième ligne de l'exemple de code, la commande REGISTRY_URL#https://
supprime le préfixe https://
de l'URL et stocke le domaine du registre Harbor dans la variable d'environnement REGISTRY_IP
.
Dans la dernière ligne de l'exemple de code, l'outil kubectl récupère le mot de passe de l'utilisateur admin
.
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)
Choisir une image de conteneur
Vous devez choisir une image de conteneur à déployer avant de pouvoir exécuter une tâche de ML. Utilisez le domaine du registre Harbor et le chemin d'accès du registre Harbor dans le tableau suivant pour afficher la liste des images de conteneur disponibles :
Framework | Processeur | Nom de l'image de conteneur |
---|---|---|
Couches | GPU | base-cu113 |
Couches | Processeur | base-cpu |
TensorFlow Enterprise 2.x | GPU | tf2-gpu |
PyTorch | GPU | pytorch-gpu |
Ce tableau est organisé par framework et par processeur. Pour choisir une image de conteneur DL capable de traiter votre expérience de ML, procédez comme suit :
- Identifiez le framework contenant les outils de ML.
- Choisissez le processeur. Vous choisissez le processeur en fonction du type de tâche de ML à exécuter et de l'intensité de calcul de cette tâche. Par exemple, choisissez l'un des processeurs GPU lorsque vous avez une tâche de ML nécessitant beaucoup de calculs, et allouez une ressource GPU au conteneur DL.
Créer et déployer un conteneur DL dans le cluster Kubernetes
Pour créer l'instance GDC, spécifiez le chemin d'accès au fichier kubeconfig
du cluster Kubernetes sur bare metal. La variable d'environnement KUBECONFIG
spécifie le cluster sur lequel l'outil kubectl
déploie le conteneur DL. La commande kubectl apply
déploie l'instance de conteneur de DL.
Remplacez CONTAINER_IMAGE_NAME
par l'image sélectionnée dans la liste des images de Choisir une image de conteneur, et veillez à fournir le tag.
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
Utiliser un conteneur DL déployé
Les rubriques suivantes fournissent un exemple d'utilisation d'une image de conteneur de deep learning pour entraîner un modèle et l'utiliser afin de générer des prédictions.
Copier les fichiers du tutoriel dans le pod du conteneur de DL
Copiez les fichiers du tutoriel de démarrage rapide dans le pod de votre conteneur de deep learning. Le beginner.ipynb
contient les étapes à suivre pour entraîner et utiliser un modèle afin d'effectuer des prédictions.
Le tutoriel d'entraînement au ML utilise le fichier de données mnist.npz
pour entraîner un modèle.
cd /tmp/datasets
kubectl cp beginner.ipynb dl-container-pod:/tmp
kubectl cp mnist.npz dl-container-pod:/tmp
Exécuter le tutoriel de démarrage rapide sur le ML
Exécutez le tutoriel avec les commandes suivantes. Utilisez la première ligne pour accéder au pod du conteneur. Une fois dans le pod du conteneur, accédez au répertoire tmp
et exécutez l'outil papermill
inclus dans le conteneur DL.
L'outil papermill
exécute le tutoriel pour créer un notebook qui génère des prédictions.
Ouvrez un terminal interactif dans le pod DL :
kubectl exec -it dl-container-pod -- /bin/bash
Dans le contexte du pod DL, exécutez les commandes suivantes :
cd tmp papermill beginner.ipynb result.ipynb
Le déploiement génère un fichier
result.ipynb
dans le répertoire/tmp
.Affichez le contenu et les résultats de prédiction du modèle de ML généré :
cat result.ipynb
Facultatif : Supprimez le pod de conteneur DL.
Une fois votre test terminé dans le pod de conteneur DL, supprimez-le. C'est une bonne pratique :
kubectl delete pod dl-container-pod