Introduzione.
In DataScience il lavoro è svolto principalmente all'interno di una Notebook Session. La Notebook Session offre un'ambiente di runtime, la cui capacità (numero di CPU, GPU?) è definita al momento dello start e può essere modificata, senza perdere il lavoro svolto ed i dati caricati, semplicemente ripartendo con una nuova "shape".
In certe fasi del lavoro di sviluppo di un modello ML, sopratutto nella fase di training ma a volte anche in fase di "inferenza", la capacità computazionale richiesta può essere elevata e può essere importante poter verificare quanta capacità è effettivamente utilizzata e ,se è il caso, aumentarla per velocizzare il training.
Quello che voglio esplorare oggi è quali strumenti abbiamo a disposizione per controllare l'utilizzo delle risorse allocate.
Novità e strumenti per il monitoring.
Nel mese di settembre 2020, come parte del continuo flusso di innovazione portato nel nostro Oracle Cloud Infrastructure (OCI), è stata completata l'integrazione piena di OCI DataScience nell'insieme delle funzionalità infrastrutturali di OCI.
E' oggi possibile attivare le funzionalità di monitoring semplicemente attribuendo delle "policy"al gruppo o ai gruppi che contengono gli utenti di DataScience. L'operazione deve essere ovviamente eseguita da un Cloud Admin.
L'integrazione con il framework di monitoring (lo stesso usato, ad esempio, per i servizi di Compute/VM) abilita la raccolta e la distribuzione di una serie di metriche, posizionate all'interno del namespace
oci_datascience
Le metriche riguardano:
- CPU utilization
- Memory utilization
- Network bytes in input/output
Tali metriche possono essere ispezionate semplicemente entrando nella pagina della UI dedicata alla singola Notebook Session, come nell'immagine sottostante. Possono essere esplorate nel servizio di Monitoring di OCI, selezionando il namespace indicato (oci_datascience).
Oppure possono essere raccolte e visualizzate mediante strumenti come Grafana.
Si veda, ad esempio, il mio precedente articolo:
https://luigisaetta.it/index.php/others/23-oracle-cloud-infrastructure-monitoring-with-grafana
Nella figura è visualizzato l'uso delle CPU del Notebook (100%) durante il training di un AutoEncoder.
Integrazione con OCI SDK.
Ovviamente, per la raccolta di tali metriche possiamo sviluppare strumenti custom utilizzando uno degli OCI SDK, disponibili per Python, Java, etc.
Per particolari relativi all'uso del Python SDK:
https://oracle-cloud-infrastructure-python-sdk.readthedocs.io/en/latest/api/data_science.html
Documentazione.
Per tutti i dettagli, la documentazione è alla pagina:
https://docs.cloud.oracle.com/en-us/iaas/data-science/using/metrics.htm
Buona Scienza dei Dati a tutti.