Guida a OCI per data scientist
Oracle Cloud Infrastructure (OCI) offre una famiglia di servizi di intelligenza artificiale (AI) e machine learning (ML). Questa guida offre ai data scientist un tour introduttivo di questi servizi che utilizzano il ciclo di vita ML come framework.
Il ciclo di vita del Machine Learning
La creazione di un modello di Machine Learning (ML) è un processo iterativo. Molti dei passaggi necessari vengono ripetuti e modificati fino a quando i data scientist non sono soddisfatti delle prestazioni del modello. Questo processo richiede molta esplorazione, visualizzazione e sperimentazione dei dati.
Il servizio OCI Data Science supporta un data scientist durante l'intero ciclo di vita del machine learning. Crea, addestra, distribuisce e gestisce rapidamente modelli ML. Gli utenti di Data Science lavorano in un'interfaccia notebook JupyterLab familiare in cui scrivono codice Python e hanno accesso alle librerie open source.
|
Come prerequisito per utilizzare Data Science per il ciclo di vita del machine learning, devi preparare l'ambiente e l'area di lavoro OCI. Quindi, eseguire i task riportati di seguito.
Puoi anche esplorare tutte le nostre offerte ML e AI e visitare risorse aggiuntive. |
Il modo più rapido per configurare la tenancy per la data science è utilizzare OCI Resource Manager, che gestisce i prerequisiti con pochi clic. Vedere Uso di Resource Manager per configurare la tenancy per Data Science.
Prima di iniziare a utilizzare i dati e la modellazione, è necessario assicurarsi che la tenancy OCI sia configurata in modo corretto, con le risorse riportate di seguito. Per un'esercitazione sull'impostazione di una tenancy per Data Science, vedere Configurazione manuale di una tenancy Data Science.
- Compartimenti: un contenitore logico per l'organizzazione delle risorse OCI. Per saperne di più, visita Scopri le best practice per impostare la tua tenancy.
- Gruppi di utenti: un gruppo di utenti, inclusi i data scientist.
- Gruppi dinamici: tipo speciale di gruppo che contiene risorse, ad esempio sessioni notebook di data science, esecuzioni di job e distribuzioni di modelli, che corrispondono alle regole definite dall'utente. Queste regole di corrispondenza consentono di modificare dinamicamente l'appartenenza al gruppo quando le risorse che corrispondono a tali regole vengono create o eliminate. Queste risorse possono effettuare chiamate API ai servizi in base ai criteri scritti per il gruppo dinamico. Ad esempio, utilizzando il principal delle risorse di una sessione notebook di Data Science, puoi chiamare l'API di storage degli oggetti per leggere i dati da un bucket.
- Criteri: definisce a quali principal, ad esempio utenti e risorse, è consentito l'accesso in OCI. L'accesso viene concesso a livello di gruppo e compartimento. Puoi scrivere un criterio che fornisca a un gruppo un tipo specifico di accesso all'interno di un compartimento specifico.
- Crea un progetto di data science nel tuo compartimento.
I progetti sono contenitori che consentono ai team di data science di organizzare il proprio lavoro. Rappresentano aree di lavoro collaborative per l'organizzazione di sessioni notebook e modelli.
Puoi anche utilizzare il metodo
create_projectnell'SDK Oracle Accelerated Data Science (ADS). - Creare una sessione di notebook nel progetto e specificare il compartimento.
Le sessioni notebook sono interfacce JupyterLab in cui è possibile lavorare in un ambiente di codifica interattivo per creare e addestrare i modelli. Gli ambienti sono dotati di librerie open source preinstallate e la possibilità di aggiungerne altre.
Le sessioni notebook vengono eseguite nell'infrastruttura completamente gestita. Quando crei una sessione notebook, puoi selezionare CPU o GPU, la forma di computazione e la quantità di storage senza eseguire il provisioning manuale. Ogni volta che si riattiva una sessione notebook, è possibile modificare queste opzioni. È inoltre possibile lasciare al servizio la gestione della rete per la sessione notebook.
È inoltre possibile utilizzare il metodo
create_notebook_sessionnell'SDK ADS. - Nella sessione notebook, installare o creare un ambiente Honda. Conda è un ambiente open source e un sistema di gestione dei pacchetti che puoi utilizzare per installare, eseguire e aggiornare rapidamente i pacchetti e le loro dipendenze. È possibile isolare diverse configurazioni software, cambiare ambienti e pubblicare ambienti per rendere la ricerca riproducibile.Suggerimento
Il modo più rapido per iniziare a utilizzare una sessione notebook è selezionare un ambiente Data Science Conda esistente. Il team di OCI Data Science gestisce questi ambienti. Gli ambienti si concentrano sulla fornitura di strumenti specifici e di un framework per svolgere attività di ML o sulla fornitura di un ambiente completo per risolvere i casi d'uso aziendali. Ogni ambiente Data Science è dotato di un proprio set di esempi di notebook, che ti aiutano a iniziare con le librerie installate nell'ambiente. - Dopo aver installato un ambiente Conda nella sessione notebook, accedere ai dati e avviare il ciclo di vita ML.
Tutti i modelli ML iniziano con i dati. I data scientist che utilizzano OCI Data Science possono accedere e utilizzare le fonti di dati in qualsiasi ambiente cloud o on-premise, il che consente di avere più funzioni di dati e modelli migliori. Consulta l'elenco completo delle origini dati e dei formati supportati dall'SDK ADS.
Quando si utilizza il servizio Data Science, si consiglia di memorizzare i dati nella sessione notebook per un accesso rapido. Dalla sessione notebook è possibile accedere ai dati dalle origini riportate di seguito.
- Storage degli oggetti: per recuperare i dati, è innanzitutto necessario impostare una connessione allo storage degli oggetti. Dopo questa impostazione, puoi utilizzare l'SDK Python OCI in una sessione notebook per recuperare i dati. Puoi anche utilizzare l'SDK ADS per estrarre i dati dallo storage degli oggetti.
- Storage locale: per caricare un dataframe da un'origine locale utilizzando l'SDK ADS, utilizzare direttamente le funzioni dei pandas.
- Endpoint HTTP e HTTPS: per caricare un dataframe da un'origine server Web remota, utilizzare i pandas direttamente.
- Database: è possibile connettersi ad Autonomous Data Warehouse da una sessione notebook. Il notebook di esempio
autonomous_database.ipynbillustra in modo interattivo questo tipo di connessione. - Origini dati in streaming: la libreria client
kafka-pythonè disponibile nelle sessioni notebook. La libreria client Python per il sistema di elaborazione dei flussi distribuiti Apache Kafka consente ai data scientist di connettersi al servizio di streaming utilizzando l'API compatibile con Kafka. Nell'ambiente della sessione notebook viene fornito l'esempio del notebookstreaming.ipynb. - Librerie di riferimento: per aprire un set di dati dalle librerie di riferimento, utilizzare
DatasetBrowser. Per visualizzare le librerie supportate, utilizzareDatasetBrowser.list().
Sicurezza
È possibile utilizzare il servizio Vault OCI per gestire centralmente le chiavi di cifratura che proteggono i dati e le credenziali utilizzate per accedere in modo sicuro alle risorse. È possibile utilizzare il notebook di esempio vault.ipynb per imparare a utilizzare i vault con Data Science.
Per ulteriori informazioni, consultare la documentazione relativa al vault dell'SDK ADS.
I dati possono essere preparati, trasformati e manipolati con le funzioni integrate dell'SDK ADS. Alla base di un oggetto ADSDataset si trova un frame di dati Pandas. Qualsiasi operazione che può essere eseguita su un data frame pandas può essere applicata anche a un data set ADS.
Tutti i set di dati ADS non sono modificabili e qualsiasi trasformazione applicata genera un nuovo set di dati.
Preparazione
I dati potrebbero essere incompleti, incoerenti o contenere errori. È possibile utilizzare ADS SDK per eseguire i task riportati di seguito.
- Combinare e pulire i dati utilizzando le operazioni di riga e colonna.
- Imputazione dei dati mediante la ricerca e la sostituzione di valori nulli.
- Codifica categorie.
È possibile utilizzare i tipi di funzioni per separare la rappresentazione fisica dei dati dalle misure dati. È possibile creare e assegnare molti tipi di funzioni ai dati. Leggi un post sul blog che spiega come i tipi di funzioni migliorano il flusso di lavoro.
Trasformazione
Nell'SDK ADS è possibile trasformare automaticamente un set di dati con i seguenti metodi:
suggest_recommendations()visualizza i problemi e consiglia le modifiche e il codice per risolvere i problemiauto_transform()restituisce un data set trasformato con tutti i suggerimenti e le ottimizzazioni applicate automaticamentevisualize_transforms()visualizza la trasformazione eseguita in un data set
OCI Data Science supporta anche strumenti di manipolazione dei dati open source come pandas, Dask e NumPy.
Al termine di tutte le trasformazioni dei dati, è possibile frazionare i dati in un set di addestramento e test o in un set di addestramento, test e convalida.
Visualizzare ed esplorare
La visualizzazione è uno dei passi iniziali utilizzati per derivare il valore dai dati. Consente agli analisti di ottenere insight in modo efficiente dai dati e guida l'analisi esplorativa dei dati. ADS SDK include uno strumento di visualizzazione intelligente che rileva automaticamente il tipo di dati e visualizza i grafici che rappresentano in modo ottimale le caratteristiche dei dati. Di seguito sono riportati alcuni metodi di visualizzazione automatica.
show_in_notebook()fornisce un'anteprima completa delle informazioni di base di un set di datishow_corr()include il rapporto di correlazione, il metodo Pearson e il metodo Cramer Vplot()utilizza la rappresentazione automatica per esplorare la relazione tra due colonnefeature_plot()utilizza rappresentazioni e visualizzazioni personalizzate utilizzando tipi di funzioni
È inoltre possibile utilizzare il metodo ADS SDK call() per tracciare i dati utilizzando le librerie e i pacchetti preferiti, ad esempio seaborn, Matplotlib, Plotly, Bokeh e Geographic Information System (GIS). Consulta gli Esempi di SDK ADS.
La modellazione crea la migliore rappresentazione matematica della relazione tra i datapoint. I modelli sono artifact creati dal processo di formazione che acquisisce questa relazione o pattern.
Dopo l'addestramento del modello, valutarlo, quindi distribuirlo.
È possibile addestrare un modello utilizzando Automated Machine Learning (AutoML) o da una libreria open source. È possibile apprendere i seguenti metodi:
- Notebook: scrivere ed eseguire il codice Python utilizzando le librerie nell'interfaccia JupyterLab
- Ambienti Conda: utilizzare ADS SDK, AutoML o Machine Learning Explainability (MLX) per l'addestramento
- Job: eseguire attività ML o di data science al di fuori delle sessioni notebook in JupyterLab
AutoML
La creazione di un modello ML di successo richiede molte iterazioni e sperimentazioni e un modello viene raramente raggiunto utilizzando un set ottimale di iperparametri nella prima iterazione. AutoML automatizza quattro passaggi nel processo di modellazione ML:
- La selezione degli algoritmi identifica i migliori algoritmi per i dati e il problema ed è più veloce di una ricerca esaustiva.
- Il campionamento adattivo identifica la giusta dimensione del campione e si adatta ai dati non bilanciati.
- La selezione delle funzioni identifica il sottoinsieme delle funzioni ottimale e riduce il numero di funzioni.
- L'ottimizzazione del modello ottimizza automaticamente gli iperparametri per ottenere la massima precisione del modello.
Per ulteriori informazioni, consulta la documentazione della pipeline AutoML dell'SDK ADS.
Dopo l'addestramento di un modello, è possibile vedere come viene eseguito rispetto a una serie di benchmark. Utilizzare le funzioni di valutazione per convertire l'output dei dati di test in una serie di punteggi e grafici interpretabili e standardizzati.
Valutazione automatizzata mediante il kit SDK ADS
La valutazione automatica genera una suite completa di metriche e visualizzazioni per misurare le prestazioni dei modelli rispetto ai nuovi dati e per confrontare i candidati dei modelli. ADS offre una raccolta di strumenti, metriche e grafici relativi alla contradistinzione di diversi modelli. I valutatori sono i seguenti:
- Il classificatore binario viene utilizzato per i modelli in cui l'output è binario, ad esempio Sì o No, Su o Giù, 1 o 0. Questi modelli sono un caso speciale di classificazione multiclasse, quindi hanno specifiche metriche.
- Il classificatore multiclasse viene utilizzato per i modelli in cui l'output è discreto. Questi modelli dispongono di un set specializzato di grafici e metriche per la loro valutazione.
- La regressione viene utilizzata per i modelli in cui l'output è continuo, ad esempio prezzo, altezza, vendite o lunghezza. Questi modelli hanno le proprie metriche specifiche che aiutano a confrontare il modello.
Convalida, spiegazioni e interpretazione
La spiegabilità del Machine Learning (MLX) è il processo di spiegazione e interpretazione di ML e modelli di deep learning. La spiegabilità è la capacità di spiegare i motivi alla base della previsione di un modello. Interpretabilità è il livello al quale un essere umano può comprendere tale spiegazione. MLX può aiutarti a eseguire i seguenti task:
- Comprendere e interpretare meglio il comportamento del modello
- Debug e miglioramento della qualità del modello
- Aumenta la fiducia nel modello e la fiducia nella distribuzione del modello
Scopri di più sulla spiegabilità dei modelli per familiarizzare con gli spiegatori globali, gli spiegatori locali e gli spiegatori WhatIf.
Una volta completati i processi di formazione e valutazione del modello, i migliori modelli candidati vengono salvati in modo che possano essere distribuiti. Scopri le distribuzioni dei modelli e i relativi componenti chiave.
ADS SDK dispone di un set di classi che eseguono il push di un modello nella produzione in pochi passi. Per ulteriori informazioni, vedere Serializzazione del modello.
Introduzione al catalogo modelli
Prima di poter distribuire un modello, è necessario salvarlo nel catalogo dei modelli. Il catalogo modelli è un repository centralizzato e gestito di artifact del modello. I modelli memorizzati nel catalogo possono essere condivisi tra i membri di un team e possono essere caricati di nuovo in una sessione notebook. Un artifact del modello è un file di archivio contenente i file e i dati seguenti:
score.py: script Python che contiene la logica personalizzata per il caricamento di oggetti modello serializzati in memoria e definisce un endpoint di inferenza(predict())runtime.yaml: l'ambiente runtime del modello, che fornisce il riferimento all'ambiente Conda necessario ai fini della distribuzione del modello.- Eventuali file aggiuntivi necessari per eseguire il modello nell'artifactImportante
Qualsiasi codice utilizzato per l'inferenza deve essere archiviato allo stesso livello discore.pyo a un livello inferiore. Se i file richiesti sono presenti in livelli di cartella superiori al filescore.py, vengono ignorati, il che potrebbe causare un errore di distribuzione. - Metadati sulla provenienza del modello, comprese le informazioni relative a Git
- Script o notebook utilizzato per eseguire il push del modello nel catalogo
Nel repository GitHub vengono forniti vari esempio e modelli di catalogo dei modelli, inclusi i file
score.py.Prepara metadati e documentazione modello
I metadati del modello sono facoltativi ma consigliati. Vedere Preparazione dei metadati del modello e Utilizzo dei metadati. I metadati includono le informazioni elencate di seguito.
- Schemi di input e output del modello: descrizione delle funzioni necessarie per eseguire una previsione del modello riuscita
- Provenienza: documentazione che aiuta a migliorare la riproducibilità e la verificabilità del modello
- Tassonomia: descrizione del modello che si sta salvando nel catalogo modelli
- Test di introspezione del modello: una serie di test e controlli eseguiti su un artifact del modello per testare tutti gli aspetti dello stato operativo del modello
L'SDK ADS popola automaticamente la provenienza e la tassonomia quando si salva un modello con ADS.
Salva il modello nel catalogo
Puoi salvare un modello nel catalogo utilizzando l'SDK ADS, l'SDK Python OCI o la console. Per informazioni dettagliate, vedere Salvataggio dei modelli nel catalogo modelli.
Gli artifact del modello memorizzati nel catalogo non sono modificabili dalla progettazione per evitare modifiche indesiderate e garantire che qualsiasi modello in produzione possa essere tracciato sull'artifact esatto utilizzato. Impossibile modificare un modello salvato.
Distribuisce il modello
Il modo più comune per distribuire i modelli in produzione è come endpoint HTTP per fornire previsioni in tempo reale. Il servizio Data Science gestisce le distribuzioni dei modelli sotto forma di risorse e gestisce tutte le operazioni dell'infrastruttura, incluso il provisioning della computazione e il bilanciamento del carico. È possibile distribuire un modello utilizzando l'SDK ADS o la console.
È inoltre possibile distribuire i modelli come funzione. Le funzioni sono architetture serverless altamente scalabili, on-demand in OCI. Per ulteriori informazioni, vedere questo post del blog.
Richiama il modello
Dopo la distribuzione e l'attivazione di un modello, l'endpoint può ricevere correttamente le richieste effettuate dai client. Il richiamo di una distribuzione del modello significa che è possibile passare vettori di funzioni o campioni di dati all'endpoint di previsione. Il modello restituisce quindi le previsioni per tali campioni di dati. Per ulteriori informazioni, vedere Richiamo di una distribuzione modello, quindi leggere informazioni sulla modifica, disattivazione e gestione di un modello distribuito.
MLOps è la standardizzazione, la semplificazione e l'automazione della gestione del ciclo di vita del ML. Gli asset ML vengono trattati come altri asset software all'interno di un ambiente iterativo di integrazione continua (CI), distribuzione continua (CD).
In DevOps, CI si riferisce alla convalida e all'integrazione del codice aggiornato in un repository centrale e CD si riferisce alla ridistribuzione di tali modifiche in produzione. In MLOps, CI si riferisce alla convalida e all'integrazione di nuovi dati e modelli ML e CD si riferisce al rilascio di tale modello in produzione.
La formazione continua è esclusiva di MLOps e si riferisce alla riqualificazione automatica dei modelli ML per la ridistribuzione. Se il modello non viene aggiornato, le sue previsioni diventano sempre meno accurate, ma puoi utilizzare l'automazione per riqualificare il modello su nuovi dati il più rapidamente possibile.
Job
I job di Data Science ti consentono di definire ed eseguire un task ML ripetibile su un'infrastruttura completamente gestita. Utilizzando i job, è possibile eseguire le attività riportate di seguito.
- Esegui attività ML o di data science al di fuori di una sessione notebook
- Operatività di attività discrete di data science e ML, come operazioni eseguibili riutilizzabili
- Automatizza MLOps o la pipeline CI/CD
- Esegui job batch o carichi di lavoro attivati da eventi o azioni
- Eseguire l'inferenza del processo batch, mini batch o batch distribuito
- In una sessione notebook JupyterLab, creare task con tempi di esecuzione lunghi o task a uso intensivo di calcolo in un job Data Science per mantenere il notebook libero e continuare il lavoro
Controllo in corso
Monitoraggio e registrazione sono gli ultimi passi del ciclo di vita del lavoro. Forniscono approfondimenti sulle prestazioni e sulle metriche di un job, oltre a un record a cui è possibile fare riferimento in seguito per ogni esecuzione del job. Per ulteriori informazioni su monitoraggio, allarmi e metriche, vedere Metriche.
- Il monitoraggio è costituito da metriche e allarmi e consente di controllare lo stato, la capacità e le prestazioni delle risorse cloud. È quindi possibile utilizzare questi dati per determinare quando creare più istanze per gestire un maggiore carico, risolvere i problemi con un'istanza o comprendere meglio il funzionamento del sistema.
- Gli allarmi vengono attivati quando una metrica supera le soglie impostate.
- Le metriche tengono traccia dell'utilizzo della CPU o della GPU, della percentuale di utilizzo della memoria del contenitore di esecuzione del job disponibile, del traffico di rete del contenitore e dell'utilizzo del disco del contenitore. Quando questi numeri raggiungono una determinata soglia, puoi eseguire lo scale up delle risorse, come lo storage a blocchi e la forma di computazione, per accogliere il carico di lavoro.
- Gli eventi consentono di eseguire la sottoscrizione alle modifiche delle risorse, ad esempio gli eventi di esecuzione di job e job, nonché di rispondere utilizzando funzioni, notifiche o flussi. Vedere Creazione di automazione mediante eventi.
Log
È possibile utilizzare i log del servizio o i log personalizzati con le esecuzioni dei job. Un'esecuzione del job emette i log del servizio al servizio di log OCI. Con i log personalizzati, è possibile specificare quali eventi di log vengono raccolti in un contesto specifico e la posizione in cui vengono memorizzati i log. È possibile utilizzare il servizio Log per abilitare, gestire e sfogliare i log di esecuzione dei job per i job. Per informazioni complete, vedere Log e Informazioni sui log.
L'integrazione delle risorse dei job con il servizio di log è facoltativa, ma consigliata, sia per il debug di potenziali problemi che per il monitoraggio dell'avanzamento dell'esecuzione degli artifact del job.
Elenco completo di servizi ML e AI
Sebbene questa guida si concentri sul servizio OCI Data Science, puoi utilizzare altri servizi ML e AI con Data Science come modo per utilizzare i servizi o come parte di progetti ML più ampi.
I servizi di machine learning OCI vengono utilizzati principalmente dai data scientist per creare, formare, distribuire e gestire modelli di machine learning. Data Science fornisce ambienti curati in modo che i data scientist possano accedere agli strumenti open source di cui hanno bisogno per risolvere i problemi aziendali più velocemente.
- Data Science consente di creare, addestrare e gestire modelli ML utilizzando Python open source, con funzionalità aggiuntive per ML automatizzato (AutoML), valutazione dei modelli e spiegazione dei modelli.
- Data Labeling fornisce set di dati etichettati per addestrare in modo più accurato i modelli AI e ML. Gli utenti possono assemblare i dati, creare e sfogliare i data set e applicare etichette ai record di dati tramite interfacce utente e API pubbliche. I set di dati con etichetta possono essere esportati e utilizzati per lo sviluppo del modello. Quando crei modelli ML che funzionano su immagini, testo o sintesi vocale, hai bisogno di dati con etichette che possano essere utilizzati per addestrare i modelli.
- Data Flow offre a sviluppatori e data scientist un ambiente scalabile per eseguire applicazioni Apache Spark in esecuzione batch, su larga scala. Puoi eseguire applicazioni scritte in qualsiasi lingua Spark per eseguire vari task di preparazione dei dati.
- Machine Learning in Oracle Database supporta l'esplorazione e la preparazione dei dati, nonché la creazione e la distribuzione di modelli ML utilizzando interfacce SQL, R, Python, REST, AutoML e senza codice. Include oltre 30 algoritmi nel database che producono modelli in Oracle Database per l'uso immediato nelle applicazioni. Crea rapidamente modelli semplificando e automatizzando gli elementi chiave del processo ML.
I servizi AI di OCI contengono modelli ML predefiniti per usi specifici. Alcuni dei servizi AI sono pre-addestrati e altri possono essere addestrati con i propri dati. Per utilizzarli, è sufficiente chiamare l'API per il servizio e trasmettere i dati da elaborare; il servizio restituisce un risultato. Nessuna infrastruttura da gestire.
- Digital Assistant offre competenze e modelli predefiniti per creare esperienze di conversazione per le applicazioni business e i clienti mediante interfacce di testo, chat e voce.
- La lingua consente di eseguire sofisticate analisi del testo su larga scala. Il servizio Lingua include modelli pre-addestrati per l'analisi del sentiment, l'estrazione di frasi chiave, la classificazione del testo, il riconoscimento di entità denominate e altro ancora.
- Speech utilizza il riconoscimento vocale automatico (ASR, Automatic Speech Recognition) per convertire la sintesi vocale in testo. Costruito sugli stessi modelli AI utilizzati per Digital Assistant, gli sviluppatori possono utilizzare modelli acustici e linguistici testati nel tempo per fornire una trascrizione altamente accurata per file audio o video in molte lingue.
- Vision applica la visione artificiale per analizzare i contenuti basati su immagini. Gli sviluppatori possono integrare facilmente modelli pre-addestrati nelle loro applicazioni con API o modelli di addestramento personalizzati per soddisfare i loro casi d'uso specifici. Questi modelli possono essere utilizzati per rilevare anomalie visive nella produzione, estrarre testo dai documenti per automatizzare i flussi di lavoro aziendali e contrassegnare gli elementi nelle immagini per conteggiare prodotti o spedizioni.