Un container Deep Learning (DL) è un container Docker con framework, librerie e strumenti di data science preinstallati. Un utente, ad esempio un data scientist, sceglie un singolo contenitore DL e lo implementa. Il container di cui è stato eseguito il deployment ha un ambiente coerente e ottimizzato per le prestazioni che consente di prototipare e implementare rapidamente i flussi di lavoro.
Esegui il deployment di un container DL
Prima di utilizzare un container DL, devi scegliere e implementare un'immagine container che esegue l'attività di machine learning (ML). Framework, librerie e strumenti preinstallati forniscono un container DL.
Esegui il deployment di un container DL utilizzando i file kubeconfig
L'appliance con air gap di Google Distributed Cloud (GDC) fornisce il seguente file kubeconfig
che esegue il deployment del container DL:
CLUSTER_KUBECONFIG
: il file kubeconfig per il cluster Kubernetes bare metal. GDC fornisce un cluster per tutti i carichi di lavoro.
Per ulteriori informazioni sull'accesso alla UI e allo strumento kubectl
, vedi
Accedere.
Per recuperare il file CLUSTER_KUBECONFIG
, consulta Ottenere un file kubeconfig
.
Scarica lo script e il set di dati di esempio di machine learning (ML)
Scarica lo script ML di esempio, beginner.ipynb
, e il set di dati, mnist.npz
, per
eseguire il tutorial di avvio rapido di ML. Il tutorial mostra come eseguire il deployment e utilizzare
un container DL per eseguire esperimenti di 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
Sostituisci GDC_APPLIANCE_URL
con il nome di dominio utilizzato per accedere a
GDC. Quando apri un URL per la prima
volta, GDC ti reindirizza alla pagina di accesso
del tuo provider di identità.
Cerca l'indirizzo IP del registro Harbor
Prima di utilizzare lo script e il set di dati di esempio, devi trovare la posizione dell'immagine container DL nel registro Harbor. Il registro Harbor è un servizio che archivia immagini container private.
La prima riga di codice campione imposta il percorso della variabile di ambiente KUBECONFIG
, che recupera l'indirizzo del registro Harbor. L'indirizzo del registro Harbor fornisce l'accesso a un elenco di immagini container disponibili.
Nella seconda riga del codice campione, lo strumento kubectl
utilizza la variabile di ambiente KUBECONFIG
.
Nella terza riga del codice campione, il comando REGISTRY_URL#https://
rimuove il prefisso https://
dall'URL e archivia il dominio del registro Harbor nella variabile di ambiente REGISTRY_IP
.
Nell'ultima riga dell'codice campione, lo strumento kubectl recupera la password per l'utente 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)
Scelta di un'immagine container
Prima di poter eseguire un'attività di ML, devi scegliere un'immagine container da eseguire il deployment. Utilizza il dominio del registro Harbor e il percorso nella seguente tabella dal registro Harbor per visualizzare l'elenco delle immagini container disponibili:
Framework | Processore | Nome immagine container |
---|---|---|
Livelli | GPU | base-cu113 |
Livelli | CPU | base-cpu |
TensorFlow Enterprise 2.x | GPU | tf2-gpu |
PyTorch | GPU | pytorch-gpu |
Questa tabella è organizzata in base al framework e al processore. Per scegliere un'immagine del contenitore DL in grado di elaborare l'esperimento di ML, segui questi passaggi:
- Identifica il framework, che contiene gli strumenti di ML.
- Scegli il processore. Scegli il processore in base al tipo di attività di ML da eseguire e all'intensità di calcolo di questa attività. Ad esempio, scegli uno dei processori GPU quando hai un'attività di ML che richiede molte risorse di calcolo e alloca una risorsa GPU al contenitore DL.
Crea ed esegui il deployment di un container DL nel cluster Kubernetes
Per creare l'istanza GDC, specifica il percorso del file kubeconfig
del cluster Kubernetes bare metal. La variabile di ambiente KUBECONFIG
specifica a quale cluster lo strumento kubectl
esegue il deployment del container DL. Il comando
kubectl apply
esegue il deployment dell'istanza di container DL.
Sostituisci CONTAINER_IMAGE_NAME
con l'immagine selezionata dall'elenco di immagini in Scegli un'immagine container e assicurati di fornire il 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
Utilizzare un container DL di cui è stato eseguito il deployment
Gli argomenti seguenti forniscono un esempio di come utilizzare un'immagine del container DL per addestrare e utilizzare un modello per generare previsioni.
Copia i file del tutorial nel pod del container DL
Copia i file del tutorial di avvio rapido nel pod del container DL. beginner.ipynb
contiene i passaggi per addestrare e utilizzare un modello per fare previsioni.
Il tutorial sull'addestramento ML utilizza il file del set di dati mnist.npz
per addestrare un modello.
cd /tmp/datasets
kubectl cp beginner.ipynb dl-container-pod:/tmp
kubectl cp mnist.npz dl-container-pod:/tmp
Esegui il tutorial guida rapida di ML
Esegui il tutorial con questi comandi. Utilizza la prima riga per inserire il pod
del container. Dopo essere entrato nel pod del container, cambia directory in tmp
ed esegui lo strumento papermill
incluso nel container DL.
Lo strumento papermill
esegue il tutorial per creare un notebook che genera
previsioni.
Inserisci un terminale interattivo nel pod DL:
kubectl exec -it dl-container-pod -- /bin/bash
Nel contesto del pod DL, esegui i seguenti comandi:
cd tmp papermill beginner.ipynb result.ipynb
Il deployment genera un file
result.ipynb
nella directory/tmp
.Visualizza i contenuti e gli output di previsione del modello ML generato:
cat result.ipynb
(Facoltativo) Elimina il pod del container DL
Dopo aver terminato l'esecuzione dell'esperimento nel pod del contenitore DL, elimina il pod come best practice:
kubectl delete pod dl-container-pod