Nel mondo Cloud l'innovazione viaggia sul ritmo dei mesi.
Al rientro dalle vacanze tante interessanti novità per il servizio OCI Data Science. Alcune di queste sono miglioramenti significativi su funzionalità già esistenti. Altre, nuove ed importanti funzionalità.
Per dare un idea del "ritmo", in genere il team di sviluppo di Oracle Data Science (ODS) rilascia nuove funzionalità ogni mese.
Ovviamente, per dovere di chiarezza, devo ricordare che le funzionalità menzionate qui, sopratutto se previste nell'immediato futuro, devono essere confermate prima di intraprendere qualsiasi sviluppo concreto. In questo i Cloud Engineer di Oracle (ed il sottoscritto) vi possono aiutare, sia ad entrare, laddove possibile, in un programma di Limited Availability (il nostro Early Adopter) sia a confermare l'effettiva disponibilità delle funzionalità in General Availability.
Passiamo a vedere quali sono disponibili per settembre e quali saranno disponibili entro ottobre.
Disponibilità delle GPU.
Entro la fine di questo mese sarà possibile attivare Sessioni Notebook utilizzando shape GPU. Le GPU sono particolarmente importanti per velocizzare il training di modelli basati su Neural Network, in particolare reti Convolutive (Image Classification, Object Detection), modelli di Natural Language Processing, ma anche per velocizzare l'addestramento di modelli che utilizzano dati strutturati. Data Science supporta sia TensorFlow 2 sia PyTorch. L'ambiente messo a disposizione attivando la Notebook Session è del tutto configurato e quindi non dobbiamo spender tempo a selezionare librerie compatibili, configurare l'integrazione di TensorFlow con le libreria di NVIDIA.
La funzionalità è stata testata e migliorata con il supporto di numerosi clienti nei mesi scorsi ed ora diviene General Availability (GA).
Le shape di GPU (GPU2, GPU3) disponibili dipendono dalla Region scelta.
Ambiente PySpark
Data Science diviene sempre più integrato con tutti i servizi OCI di Data Management, Processing ed Integration.
Per i clienti che vogliono utilizzare le tecnologie del mondo BigData, per processare in modo scalabile ed efficiente grossi volumi di dati, OCI mette a disposizione la combinazione Object Storage+DataFlow+Data Integration, che consente di processare file memorizzati sull'Object Storage, in modalità Serverless, utilizzando Apache Spark.
Data Science è già integrata con DataFlow e quindi è possibile, all'interno di un Jupyter Notebook, scrivere un programma PySpark (usando DataFrame, SQL, MLLib...) che elabori file sull'Object Storage. Sempre all'interno del Notebook DataScience è possibile registrare il programma, lanciarne l'esecuzione in DataFlow e seguire il progresso dell'esecuzione.
La novità, disponibile in LA per i clienti che vogliono provarla entro fine settembre, è che DataScience offrirà un ambiente completo di runtime PySpark. Ovvero: il Data Scientist potrà scrivere il programma e testarlo all'interno del runtime del Notebook, senza ricorrere a DataFlow. Soltanto quando sarà abbastanza certo della correttezza del programma il Data Scientist potrà passare all'esecuzione nell'ambiente Serverless e parallelo di DataFlow. Un'importante miglioramento che darà ancora maggiore agilità ai Data Scientist e Data Engineer.
Sempre più DataScience si configura anche come il front end per tutte le analisi, elaborazioni e visualizzazioni di dati su OCI. Unico vincolo per gli utenti: voler usare il linguaggio Python e le molte librerie disponibili.
Ambienti Anaconda multipli.
Oggi un Session Notebook mette a disposizione un ambiente di runtime, con la capacità richiesta, con più di 100 librerie Python installate, integrate, configurate. Il cliente se vuole può aggiungere altre librerie (se compatibili) usando le modalità previste dal mondo Python (il famoso pip install o conda install).
La nuova funzionalità, sempre disponibile in LA entro la fine del mese, consente di selezionare tra una lista di "ambienti". In questo modo si potrà selezionare un ambiente più completo (più librerie) od un ambiente dedicato a elaborazioni particolari (con meno librerie ma versioni più recenti, ad esempio). Uno di questi ambienti è l'ambiente PySpark del punto precedente.
Il Data Scientist potrà anche creare un ambiente "custom" e salvarlo sull'Object Storage, in modo da consentire ad altri Data Scientist del suo team di lanciare ambienti di esecuzione analoghi. Vi sarà un "Marketplace" di ambienti disponibili, testati e messi a disposizione da Oracle.
Deploy dei modelli ML.
Dove finisce il mestiere del Data Scientist ed inizia quello del Data Engineer (o ML Engineer)? Domanda complessa, ammesso che nella vostra realtà sia codificata tale distinzione.
Comunque, dovrebbe essere chiaro a (quasi) tutti che, dopo aver sviluppato un bellissimo e potentissimo modello di ML o DL lo si deve mettere a disposizione delle applicazioni, in modo adeguatamente strutturato (H24, etc..).
Un primo problema qui è il formato di serializzazione del modello. Un modello addestrato alla fine è un algoritmo, codificato, + un insieme (nel caso delle Neural Network molto ampio) di parametri. I parametri (weights) si salvano in un file e parrebbe finita la storia.
Beh, no: come al solito nella Computer Science vi sono scelte multiple e si pone poi la questione della compatibilità.
Nel mondo Scikit-learn si usa il formato "pickle". Nel mondo TensorFlow è frequente il formato "h5".
Oracle Data Science ha scelto di standardizzare sul formato ONNX.
La funzionalità per il deploy in produzione di un modello prevederà:
- Il salvataggio del modello nel Model Catalog (già disponibile ora)
- La generazione del codice che implementa il servizio REST che espone le predizioni del modello (già disponibile, sarà migliorata)
- La possibilità di selezionare dalla UI (o via API) un modello dal catalogo, specificare la shape dell'ambiente di runtime e l'automazione creerà l'ambiente Compute con il servizio REST up&running