Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa pagina descrive l'intero percorso di un progetto di machine learning (ML), dalla definizione iniziale dell'ambito fino alla produzione, e come mantenerne elevate le prestazioni nel tempo. Il codice, i dati e i modelli passano attraverso tre fasi generali: sviluppo, gestione temporanea e produzione. Ogni fase ha obiettivi e requisiti distinti:
- Definire l'ambito del caso d'uso e definire l'esito positivo
- Esplorare e comprendere i dati
- Preparare dati e funzionalità
- Eseguire il training di modelli e tenere traccia degli esperimenti
- Valutare
- Registrare, distribuire e testare i modelli
- Eseguire la distribuzione nell'ambiente di produzione
- Monitorare e ripetere il training
1. Definire l'ambito del caso d'uso e definire l'esito positivo
Prima di sviluppare qualsiasi cosa, mettetevi d'accordo su ciò che il modello deve fare e su come stabilirete che sta funzionando.
- Qual è la variabile target della previsione e quale classe di problema di apprendimento automatico ne consegue: classificazione, regressione, previsione, raccomandazione, ordinamento, rilevamento di anomalie o qualcos'altro?
- Quali dati di input sono disponibili e sono sufficienti per apprendere lo schema obiettivo?
- Quali metriche definiscono il successo: accuratezza, AUC, precisione in K o indicatori KPI aziendali?
- Quali sono i requisiti di gestione e produzione: latenza, velocità effettiva e aggiornamento dei dati?
- Quali parti interessate devono approvare le distribuzioni in produzione? Quali sono i requisiti relativi alla spiegazione?
I requisiti precedenti non specificano il metodo ML specifico. Si può iniziare a modellare con un approccio più semplice, ad esempio con modelli ad albero basati sul gradient boosting, e in seguito decidere che sono necessari metodi di apprendimento profondo più potenti.
2. Esplorare e comprendere i dati
Prima di preparare le variabili o addestrare un modello, esplorare i dati per comprenderne la struttura, la qualità e la relazione con l'obiettivo di previsione. L'analisi esplorativa dei dati (EDA) consiste nel riassumere e visualizzare un dataset per far emergere distribuzioni, correlazioni, valori mancanti e valori anomali che orientano le decisioni di modellazione successive.
Fin dall'inizio, stabilisci come verificare di avere dati di test validi tenuti separati dall'addestramento. Anche durante l'EDA, fai attenzione a non prendere decisioni di modellazione basate sui dati di test.
EDA risponde alle domande che informano il resto del ciclo di vita:
- Quali input sono i più predittivi della variabile target e alcuni di essi non sono disponibili al momento dell’inferenza?
- Sono presenti valori, outlier o distribuzioni asimmetriche mancanti che richiedono la pulizia o la trasformazione?
- Il set di dati è sufficientemente grande e rappresentativo per apprendere il modello di destinazione?
Azure Databricks semplifica EDA con strumenti interattivi, collaborativi e di intelligenza artificiale. Esplorare i dati usando chat in linguaggio naturale, interfacce utente o codice e collaborare tramite la condivisione di codice in tempo reale e basata su Git:
- I notebook offrono spazi collaborativi per l'esplorazione, la visualizzazione e la documentazione.
- I dashboard forniscono esplorazione basata su SQL e visualizzazione.
- Genie Chat offre un'interfaccia in linguaggio naturale e a pagina completa per porre domande relative ai dati.
- Genie Code può eseguire edA completamente automatizzato o fungere da assistente interattivo.
3. Preparare i dati e le funzionalità
Dopo aver compreso i dati, trasformare le origini non elaborate e le trasformazioni identificate durante l'analisi dei dati in funzionalità per i modelli di Machine Learning. Valutare le pipeline di dati per il training e la gestione, tra cui velocità, volume, aggiornamento e proprietà delle origini dati. Il limite tra la progettazione dei dati (preparazione e trasformazione dei dati) e la progettazione di funzionalità (derivando input ml) è fuzzy. In Azure Databricks, la progettazione dei dati e ML condividono lo stesso livello di piattaforma e governance in Unity Catalog, in modo che i dati preparati da un team possano essere resi disponibili immediatamente come funzionalità per un altro, senza spostamento dei dati o pipeline duplicate.
Cercare i dati e le definizioni di funzionalità esistenti:
- Esplorare i dati e le funzionalità disponibili in Unity Catalog. Se l'organizzazione dispone di modelli correlati, usare la derivazione di Unity Catalog per individuare origini dati e funzionalità usate per tali modelli.
- La ricerca nell'area di lavoro consente di individuare i dati, i modelli o le applicazioni regolate già esistenti.
Creare e gestire nuovi asset in base alle esigenze:
- Per altre informazioni sugli strumenti per l'inserimento e la progettazione dei dati, vedere Ingegneria dei dati con Databricks , tra cui Lakeflow Designer per un'esperienza di intelligenza artificiale senza codice.
- Usare l'Archivio funzionalità per definire e gestire le funzionalità come asset riutilizzabili e regolamentati. Le stesse definizioni di funzionalità vengono usate nel training e nell'ambiente di produzione, con supporto per l'inserimento di dati batch e in tempo reale e per la gestione batch e in tempo reale.
Usare Genie Code per accelerare l'individuazione e la preparazione dei dati esplorando Unity Catalog per individuare tabelle pertinenti, suggerire trasformazioni delle funzionalità e generare codice di avvio per le pipeline di inserimento e funzionalità.
4. Eseguire il training di modelli e tenere traccia degli esperimenti
Le applicazioni di data science e ML usano molti approcci diversi, ognuno dei quali ha requisiti specifici per algoritmi e librerie di Machine Learning, requisiti di calcolo e flussi di lavoro. Azure Databricks offre ambienti flessibili e risorse di calcolo per carichi di lavoro diversi, con il rilevamento dell'esperimento unificato in MLflow.
Ambienti e calcolo
Per impostazione predefinita, usare il calcolo serverless per notebook interattivi e processi automatizzati. L'elaborazione serverless si avvia istantaneamente e scala automaticamente in base al tuo carico di lavoro.
Per l'accelerazione tramite GPU, collega GPU alle tue risorse di calcolo serverless, che utilizzano poi il runtime IA, un ambiente preconfigurato per l'addestramento e l'inferenza GPU.
Per i carichi di lavoro della CPU e della GPU, è anche possibile usare il calcolo classico con Databricks Runtime per Machine Learning.
Personalizzare uno degli ambienti precedenti con le librerie di Machine Learning. Con ambienti spesso altamente personalizzati per le applicazioni ML, usa il tracciamento di MLflow per registrare le dipendenze, verificare la riproducibilità ed evitare la discrepanza tra training e serving.
Tracciamento MLflow
Usa MLflow gestito da Azure Databricks per monitorare le tue sperimentazioni e registrare i metadati del modello:
- Organizza i log del progetto in esperimenti, con esecuzioni registrate per l'addestramento o la valutazione.
- In ogni esecuzione, registra parametri, metriche e artefatti automaticamente o manualmente.
- Durante la sperimentazione, confrontare le esecuzioni nell'interfaccia utente di MLflow per trovare la configurazione con prestazioni ottimali.
- Registrare i modelli con MLflow per archiviare gli artefatti del modello con la provenienza completa: quale set di dati, quale codice e quale ambiente ha prodotto questo modello. Questi metadati semplificano la distribuzione dei modelli nell'ambiente di produzione, oltre al controllo e alla risoluzione dei problemi.
Introduzione alla modellazione
Genie Code può generare un notebook di Machine Learning completo da una descrizione in linguaggio normale dell'attività di stima, inclusa la selezione delle funzionalità dall'Archivio funzionalità, il training di ML e il rilevamento MLflow.
Vedere anche le risorse per l'ottimizzazione degli iperparametri, gli esempi di training del modello e Ray in Databricks.
Per il deep learning e l'addestramento ML classico accelerato da GPU, consulta i notebook di esempio per AI Runtime.
5. Valutazione
Durante lo sviluppo, definire le metriche di valutazione della qualità in base ai requisiti della definizione dell'ambito:
- Le metriche di base potrebbero essere metriche di Machine Learning comuni, ad esempio metriche di accuratezza, AUC, RMSE o specifiche del dominio.
- La valutazione può includere anche metriche derivate, ad esempio distorsioni e equità nei segmenti di popolazione, misurate confrontando le metriche di base tra segmenti dei dati.
Definire le metriche usando la libreria o il framework di Machine Learning scelti, usando il modulo di metriche predefinito di MLflow o la logica personalizzata. Per tutte le metriche, registra le metriche nelle esecuzioni di MLflow per collegarle ai modelli corrispondenti. Le metriche definite durante lo sviluppo e il training possono essere riutilizzate in un secondo momento come metriche per il monitoraggio della produzione.
6. Registrare, preparare e testare i modelli
Dopo aver eseguito il training di un modello o di una pipeline di Machine Learning, registrarlo nel Registro modelli MLflow nel catalogo unity per semplificare la governance e la gestione man mano che si promuove il modello verso la produzione. Un modello registrato ha delle versioni, ciascuna delle quali rimanda all'esecuzione di training originale da cui è stata prodotta. Le versioni dei modelli consentono flussi di lavoro di distribuzione sicuri: è possibile testare una nuova versione nella gestione temporanea prima di promuoverla in produzione, eseguire il rollback a una versione precedente se la qualità peggiora e mantenere un audit trail completo di ciò che è stato distribuito e quando.
Prima che una nuova versione del modello serva il traffico di produzione, testa la versione nell'ambiente di staging in condizioni realistiche:
-
Etichettare la versione del modello candidato con alias (
Staging,Production) per segnalare lo stato del ciclo di vita senza rinominare gli artefatti. - Eseguire test di integrazione sull'infrastruttura di staging: verificare che l'endpoint di servizio si avvii correttamente, che la latenza soddisfi i requisiti e che gli output siano ben formati.
- Eseguire test A/B o test shadow sui dati di produzione per convalidare le prestazioni prima del cutover completo.
- Ottenere l'approvazione degli stakeholder in base ai risultati della valutazione.
Questa descrizione semplifica le procedure di distribuzione e le operazioni di Machine Learning (MLOps). Altre informazioni su MLOps sono disponibili nei flussi di lavoro MLOps in Azure Databricks.
7. Distribuire nell'ambiente di produzione
Dopo la convalida nell'ambiente di staging, promuovere e distribuire il modello in produzione per generare previsioni per gli input del mondo reale. Azure Databricks supporta due modelli di gestione principali:
- Servizio in tempo reale: distribuire il modello come endpoint REST a bassa latenza usando La gestione dei modelli per i casi d'uso che richiedono decisioni a bassa latenza, ad esempio l'intercettazione delle frodi in fase di transazione, la personalizzazione in tempo reale o i prezzi dinamici.
-
Inferenza batch:
ai_queryoffre un'inferenza batch efficiente per i modelli personalizzati distribuiti come endpoint di gestione dei modelli. Puoi anche usare codice personalizzato con le UDF di Apache Spark (esempio) omlflow.pyfuncper l'inferenza batch. Le pipeline in batch scrivono i risultati nelle tabelle Delta per applicazioni a valle, dashboard o pipeline. Questo modello gestisce le previsioni giornaliere, gli aggiornamenti notturni e altri processi periodici.
Entrambi i pattern utilizzano lo stesso artefatto del modello addestrato. Addestra il modello una sola volta e distribuiscilo per il serving batch o in tempo reale a partire dalla stessa versione registrata, con la stessa governance e tracciabilità.
Genie Code può generare codice per la distribuzione e aiutare a risolvere i problemi di gestione, spiegare il comportamento dell'endpoint e accelerare l'iterazione quando i modelli devono essere aggiornati o ridistribuiti.
8. Monitorare e ripetere il training
I sistemi di Machine Learning di produzione possono peggiorare nel tempo man mano che cambiano i comportamenti degli utenti o le pipeline di dati. Monitorare continuamente i dati di produzione e le stime del modello:
- Registrare input e output dai modelli distribuiti. Per la gestione in tempo reale, le tabelle di inferenza forniscono la registrazione automatica senza modifiche al codice del modello. Per l'elaborazione batch, le pipeline leggono e scrivono naturalmente nelle tabelle Delta gestite da Unity Catalog.
- Inserire questi log nel monitoraggio della qualità dei dati, che tiene traccia della qualità dei dati, della deriva delle funzionalità e della distribuzione delle stime nel tempo. Se si dispone di dati di riferimento o di feedback, è possibile unire questi dati ai log di serving per calcolare le metriche di qualità delle previsioni.
- Usa la interfaccia di monitoraggio e gli avvisi di rilevamento delle anomalie per attivare l'escalation o il riaddestramento prima che la qualità si degradi sensibilmente.
Scopri di più sull'ML in produzione in Flussi di lavoro MLOps su Azure Databricks.
Risorse aggiuntive
- Funzionalità di data science e ML di Azure Databricks - le funzionalità di Azure Databricks a ciascuna fase di questo ciclo di vita
- Flussi di lavoro MLOps in Azure Databricks - Informazioni di riferimento sul flusso di lavoro MLOps di produzione
- Gestire il ciclo di vita del modello nel catalogo unity - Gestione delle versioni dei modelli e del ciclo di vita nel catalogo unity