Esegui il deployment e utilizza un container di deep learning (DL)

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:

  1. Identifica il framework, che contiene gli strumenti di ML.
  2. 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.

  1. Inserisci un terminale interattivo nel pod DL:

    kubectl exec -it dl-container-pod -- /bin/bash
    
  2. 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.

  3. 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