Monitoraggio dei modelli di Azure Machine Learning
Il monitoraggio dei modelli è l'ultimo passaggio del ciclo di vita end-to-end di apprendimento automatico. Questo passaggio monitora le prestazioni dei modelli nell'ambiente di produzione e analizza le prestazioni sia dal punto di vista della data science che dal punto di vista operativo. Questo articolo illustra il monitoraggio dei modelli in Azure Machine Learning, i segnali e le metriche che è possibile monitorare e le procedure consigliate per il monitoraggio dei modelli.
A differenza dei sistemi software tradizionali, il comportamento del sistema di apprendimento automatico non dipende solo dalle regole specificate nel codice, ma viene anche appreso dai dati. Le modifiche alla distribuzione dei dati, l'asimmetria del training, i problemi di qualità dei dati, i cambiamenti negli ambienti o le modifiche del comportamento dei consumer possono causare l'obsolescenza di un modello.
Quando un modello diventa obsoleto, le prestazioni possono peggiorare fino al punto in cui non riesce ad aggiungere valore aziendale o inizia a causare gravi problemi di conformità in ambienti altamente regolamentati. È quindi importante monitorare le prestazioni dei modelli.
Per implementare il monitoraggio, Azure Machine Learning acquisisce i segnali di monitoraggio eseguendo calcoli statistici sui dati di inferenza di produzione trasmessi e sui dati di riferimento. I dati di inferenza di produzione fanno riferimento ai dati di input e output dei modelli raccolti nell'ambiente di produzione. I dati di riferimento possono essere dati di training cronologici, dati di convalida o dati di verità di base.
Importante
Il monitoraggio dei modelli di Azure Machine Learning supporta solo l'autenticazione basata su credenziali, ad esempio un token di firma di accesso condiviso, per accedere ai dati contenuti negli archivi dati. Per altre informazioni sugli archivi dati e sulle modalità di autenticazione, vedere Amministrazione dei dati.
Ogni segnale di monitoraggio ha una o più metriche. È possibile impostare soglie per queste metriche per attivare avvisi relativi ad anomalie dei modelli o dei dati tramite Azure Machine Learning o Griglia di eventi di Azure. Quando si ricevono avvisi, è possibile usare lo studio di Azure Machine Learning per analizzare o risolvere i problemi relativi ai segnali di monitoraggio per il miglioramento continuo della qualità dei modelli.
Azure Machine Learning usa il processo seguente per gestire un segnale di monitoraggio predefinito, ad esempio la deriva dei dati, per un modello in produzione:
Azure Machine Learning calcola prima di tutto la distribuzione statistica del valore della caratteristica nei dati di training. Questa distribuzione è la distribuzione di base per la funzionalità.
Successivamente, Azure Machine Learning calcola la distribuzione statistica dei valori più recenti della caratteristica registrati nell'ambiente di produzione.
Azure Machine Learning esegue quindi un test statistico o calcola un punteggio di distanza per confrontare la distribuzione dei valori più recenti della caratteristica nell'ambiente di produzione con la distribuzione baseline. Se il test statistico o il punteggio di distanza tra le due distribuzioni supera una soglia specificata dall'utente, Azure Machine Learning identifica l'anomalia e avvisa l'utente.
Per usare il monitoraggio dei modelli in Azure Machine Learning:
Prima di tutto, abilitare la raccolta dei dati di inferenza di produzione.
- Se si distribuisce un modello in un endpoint online di Azure Machine Learning, è possibile abilitare la raccolta dei dati di inferenza di produzione usando la raccolta di dati del modello di Azure Machine Learning.
- Se si distribuisce un modello all'esterno di Azure Machine Learning o in un endpoint batch di Azure Machine Learning, si è responsabili della raccolta dei dati di inferenza di produzione che è possibile usare per il monitoraggio dei modelli di Azure Machine Learning.
Successivamente, configurare il monitoraggio dei modelli. È possibile usare l'SDK/interfaccia della riga di comando 2.0 di Azure Machine Learning o l'interfaccia utente di Studio per configurare facilmente il monitoraggio dei modelli. Durante la configurazione, è possibile specificare i segnali di monitoraggio preferiti e personalizzare metriche e soglie per ogni segnale.
Infine, visualizzare e analizzare i risultati del monitoraggio dei modelli. Dopo la configurazione del monitoraggio dei modelli, Azure Machine Learning esegue un processo di monitoraggio in base alla pianificazione specificata. Ogni esecuzione calcola e valuta le metriche per tutti i segnali di monitoraggio selezionati e attiva le notifiche di avviso quando viene superata una soglia specificata. È possibile seguire il collegamento nella notifica di avviso per visualizzare e analizzare i risultati del monitoraggio nell'area di lavoro di Azure Machine Learning.
Azure Machine Learning offre le seguenti capacità per il monitoraggio dei modelli continuo:
- I segnali di monitoraggio predefiniti per i dati tabulari, tra cui deriva dei dati, deviazione della stima, qualità dei dati, deviazione dell'attribuzione delle caratteristiche e prestazioni del modello.
- Monitoraggio predefinito dei modelli per gli endpoint online. Se si distribuisce il modello nell'ambiente di produzione in un endpoint online, Azure Machine Learning raccoglie automaticamente i dati di inferenza di produzione e li usa per il monitoraggio continuo.
- Più segnali di monitoraggio in un'unica configurazione di monitoraggio. Per ogni segnale di monitoraggio, è possibile selezionare le metriche preferite e la soglia di avviso.
- Scelta dei dati di riferimento per il confronto. Per i segnali di monitoraggio, è possibile impostare i dati di riferimento usando i dati di training o i dati di produzione precedenti recenti.
- Monitoraggio delle principali caratteristiche N per la deriva o la qualità dei dati. Se si usano i dati di training come dati di riferimento, è possibile definire segnali di deriva dei dati o di qualità dei dati a più livelli rispetto all'importanza della caratteristica.
- Possibilità di definire segnali di monitoraggio personalizzati. Se i segnali di monitoraggio predefiniti non sono adatti per lo scenario aziendale, è possibile definire un segnale di monitoraggio personalizzato con un componente del segnale di monitoraggio personalizzato.
- Flessibilità per usare i dati di inferenza di produzione da qualsiasi origine. Se si distribuiscono modelli all'esterno di Azure Machine Learning o si distribuiscono modelli negli endpoint batch, è comunque possibile raccogliere manualmente i dati di inferenza di produzione da usare in Azure Machine Learning per il monitoraggio dei modelli.
Ogni modello di Machine Learning e i relativi casi d'uso sono unici. Di conseguenza, il monitoraggio dei modelli è univoco per ogni situazione. L'elenco seguente descrive le procedure consigliate per il monitoraggio dei modelli.
- Avviare il monitoraggio dei modelli immediatamente dopo la distribuzione di un modello nell'ambiente di produzione.
- Collaborare con gli scienziati dei dati che hanno familiarità con il modello per configurare il monitoraggio. Gli scienziati dei dati che hanno informazioni dettagliate sul modello e sui relativi casi d'uso possono consigliare segnali di monitoraggio e metriche e impostare le soglie di avviso corrette per ogni metrica per evitare di ricevere troppi avvisi.
- Includere più segnali di monitoraggio nella configurazione. Con più segnali di monitoraggio, si ottengono visualizzazioni di monitoraggio ampie e granulari. Ad esempio, è possibile combinare i segnali di deriva dei dati e di deviazione dell'attribuzione delle caratteristiche per ricevere avvisi anticipati sui problemi di prestazioni dei modelli.
- Usare i dati di riferimento appropriati come baseline di confronto. Per i dati di riferimento usati come baseline di confronto, è possibile usare dati di produzione o dati cronologici precedenti recenti, ad esempio dati di training o convalida. Per un confronto più significativo, usare i dati di training come baseline di confronto per la deriva dei dati e la qualità dei dati. Usare i dati di convalida come baseline di confronto per la deviazione della stima.
- Specificare la frequenza di monitoraggio in base alla crescita dei dati di produzione nel tempo. Ad esempio, se il modello di produzione ha traffico giornaliero elevato e l'accumulo giornaliero dei dati è sufficiente, impostare la frequenza di monitoraggio su giornaliera. In caso contrario, considerare una frequenza di monitoraggio settimanale o mensile, in base alla crescita dei dati di produzione nel tempo.
- Monitorare le principali N caratteristiche o un subset di funzionalità. Se si usano i dati di training come baseline di confronto, è possibile configurare facilmente il monitoraggio della deriva dei dati o il monitoraggio della qualità dei dati per le N caratteristiche più importanti. Per i modelli con un numero elevato di caratteristiche, è consigliabile monitorare un subset di tali caratteristiche per ridurre i costi di calcolo e gli errori di monitoraggio.
- Usare il segnale di prestazioni del modello quando si ha accesso ai dati di verità di base. Se si ha accesso ai dati di verità di base, detti anche effettivi, in base all'applicazione di apprendimento automatico, usare il segnale di prestazioni del modello per confrontare i dati di verità di base con l'output del modello. Questo confronto offre una visualizzazione obiettiva delle prestazioni del modello nell'ambiente di produzione.
La dimensione della finestra di ricerca posticipata è la durata temporale in formato ISO 8601 per la finestra dati di produzione o riferimento. Lo scostamento della finestra di ricerca posticipataè la durata temporale per lo scostamento della fine della finestra dei dati dalla data di esecuzione del monitoraggio.
Ad esempio, il modello in produzione ha un monitoraggio impostato per l'esecuzione il 31 gennaio alle 15:15 (UTC). Una finestra di ricerca posticipata dei dati di produzione pari a P7D
o sette giorni e uno scostamento pari a P0D
o giorni per la finestra di ricerca posticipata dei dati indicano che il monitoraggio usa dati di produzione dal 24 gennaio alle 15:15 (UTC) fino al 31 gennaio alle 15:15 (UTC), ovvero l'ora di esecuzione del monitoraggio.
Per i dati di riferimento, se si imposta lo scostamento della finestra di ricerca posticipata su P7D
o sette giorni, la finestra dei dati di riferimento termina immediatamente prima dell'avvio della finestra dei dati di produzione, per evitare sovrapposizioni. È quindi possibile impostare le dimensioni della finestra di ricerca dei dati di riferimento come desiderato.
Ad esempio, se si imposta la dimensione della finestra di ricerca posticipata dei dati di riferimento su P24D
o 24 giorni, la finestra dei dati di riferimento include i dati dal 1° gennaio alle 15:15 (UTC) fino al 24 gennaio alle 15:15 (UTC). Il diagramma seguente illustra questo esempio.
In alcuni casi, potrebbe risultare utile impostare lo scostamento della finestra di ricerca posticipata per i dati di produzione su un numero maggiore di zero giorni. Ad esempio, se il monitoraggio è pianificato per l'esecuzione settimanale il lunedì alle 15:15 (UTC), ma non si vogliono includere i dati del fine settimana nell'esecuzione del monitoraggio, è possibile usare una dimensione della finestra di ricerca posticipata pari a P5D
o cinque giorni e uno scostamento della finestra di ricerca posticipata pari a P2D
o due giorni. La finestra dei dati inizia quindi il lunedì precedente alle 15:15 (UTC) e termina venerdì alle 15:15 (UTC).
In pratica, è necessario assicurarsi che la finestra dei dati di riferimento e la finestra dei dati di produzione non si sovrappongano. Come illustrato nella figura seguente, è possibile garantire finestre non sovrapposte assicurandosi che lo scostamento della finestra di ricerca posticipata dei dati di riferimento, ovvero P10D
o 10 giorni in questo esempio, sia superiore o uguale alla somma delle dimensioni della finestra di ricerca posticipata dei dati di produzione e del relativo scostamento della finestra di ricerca posticipata, ovvero sette giorni totali in questo esempio.
Con il monitoraggio dei modelli di Azure Machine Learning, è possibile usare impostazioni predefinite intelligenti per le dimensioni e lo scostamento della finestra di ricerca oppure personalizzarli in base alle proprie esigenze. Sono supportate le finestre in sequenza e le finestre fisse.
È possibile selezionare le dimensioni della finestra di ricerca sia per i dati di produzione che per i dati di riferimento.
Per impostazione predefinita, le dimensioni della finestra di ricerca per i dati di produzione corrispondono alla frequenza di monitoraggio. Tutti i dati raccolti nel periodo di monitoraggio prima dell'esecuzione del processo di monitoraggio sono inclusi nella finestra di ricerca posticipata. È possibile usare la proprietà
production_data.data_window.lookback_window_size
per modificare la finestra dei dati in sequenza per i dati di produzione.Per impostazione predefinita, la finestra di ricerca per i dati di riferimento è il set di dati completo. È possibile utilizzare la proprietà
reference_data.data_window.lookback_window_size
per regolare le dimensioni della finestra di ricerca di riferimento.
Per specificare una finestra dei dati fissa per i dati di riferimento, usare le proprietà reference_data.data_window.window_start_date
e reference_data.data_window.window_end_date
.
È possibile selezionare uno scostamento della finestra di ricerca per la finestra di dati sia per i dati di produzione che per i dati di riferimento. È possibile usare lo scostamento per il controllo granulare sui dati usati dal monitoraggio. Lo scostamento si applica solo alle finestre dei dati in sequenza.
Per impostazione predefinita, lo scostamento per i dati di produzione è
P0D
o zero giorni. È possibile modificare questo scostamento con la proprietàproduction_data.data_window.lookback_window_offset
.Per impostazione predefinita, lo scostamento per i dati di riferimento è pari a due volte
production_data.data_window.lookback_window_size
. Questa impostazione garantisce che siano presenti dati di riferimento sufficienti per i risultati di monitoraggio statisticamente significativi. È possibile modificare questo scostamento con la proprietàreference_data.data_window.lookback_window_offset
.
Il monitoraggio dei modelli di Azure Machine Learning supporta i segnali e le metriche di monitoraggio seguenti.
Importante
Gli elementi contrassegnati (anteprima) in questo articolo sono attualmente disponibili in anteprima pubblica. La versione di anteprima viene messa a disposizione senza contratto di servizio e non è consigliata per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate. Per altre informazioni, vedere le Condizioni supplementari per l'uso delle anteprime di Microsoft Azure.
Segnale di monitoraggio | Descrizione | Metriche | Attività del modello o formato di dati supportato | Dati di produzione | Dati di riferimento |
---|---|---|---|---|---|
Deriva dei dati | Tiene traccia delle modifiche nella distribuzione dei dati di input di un modello confrontando la distribuzione con i dati di training del modello o i dati di produzione recenti. | Distanza di Jensen-Shannon Distance, Indice di stabilità del popolamento, Distanza normalizzata di Wasserstein, Test Kolmogorov-Smirnov a due campioni, Test del chi quadrato di Pearson | Classificazione (dati tabulari), Regressione (dati tabulari) | Dati di produzione: input del modello | Dati di training o dati di produzione passati recenti |
Deriva della stima | Tiene traccia delle modifiche nella distribuzione degli output stimati di un modello, confrontando la distribuzione con i dati di convalida, i dati di test etichettati o i dati di produzione recenti. | Distanza Jensen-Shannon, Indice di stabilità del popolamento, Distanza normalizzata di Wasserstein, Distanza di Chebyshev, Test Kolmogorov-Smirnov a due campioni, Test del chi quadrato di Pearson | Classificazione (dati tabulari), Regressione (dati tabulari) | Dati di produzione: output del modello | Dati di convalida o dati di produzione passati recenti |
Qualità dei dati | Tiene traccia dell'integrità dei dati dell'input di un modello confrontandoli con i dati di training o i dati di produzione recenti del modello. I controlli di qualità dei dati includono il controllo dei valori null, la mancata corrispondenza del tipo o i valori fuori intervallo. | Frequenza dei valori Null, Percentuale di errore del tipo di dati, Frequenza fuori intervallo | Classificazione (dati tabulari), Regressione (dati tabulari) | Dati di produzione: input del modello | Dati di training o dati di produzione passati recenti |
Deriva dell'attribuzione delle caratteristiche (anteprima) | Si basa sul contributo delle caratteristiche alle stime, noto anche come importanza della caratteristica. La deriva dell'attribuzione delle caratteristiche tiene traccia dell'importanza delle caratteristiche durante la produzione confrontandola con l'importanza delle caratteristiche durante il training. | Guadagno cumulativo scontato normalizzato | Classificazione (dati tabulari), Regressione (dati tabulari) | Dati di produzione: input e output del modello | Dati di training (obbligatorio) |
Prestazioni del modello: classificazione (anteprima) | Tiene traccia delle prestazioni obiettive dell'output di un modello nell'ambiente di produzione confrontandole con i dati di verità di base raccolti. | Accuratezza, precisione e richiamo | Classificazione (dati tabulari) | Dati di produzione: output del modello | Dati di verità di base (obbligatorio) |
Prestazioni del modello: regressione (anteprima) | Tiene traccia delle prestazioni obiettive dell'output di un modello nell'ambiente di produzione confrontandole con i dati di verità di base raccolti. | Errore assoluto medio (MAE), errore quadratico medio (MSE), radice errore quadratico medio (RMSE) | Regressione (dati tabulari) | Dati di produzione: output del modello | Dati di verità di base (obbligatorio) |
Intelligenza artificiale generativa: sicurezza e qualità della generazione (anteprima) | Valuta le applicazioni di intelligenza artificiale generative per la sicurezza e la qualità, usando le metriche con assistenza GPT. | Allineamento, Rilevanza, Scorrevolezza, Somiglianza, Coerenza | Domande e risposte | Modello di richiesta, completamento, contesto e annotazione | N/D |
Il segnale di monitoraggio della qualità dei dati tiene traccia dell'integrità dei dati di input di un modello calcolando le tre metriche seguenti:
- Frequenza dei valori null
- Percentuale di errore del tipo di dati
- Frequenza fuori intervallo
Il monitoraggio dei modelli di Azure Machine Learning supporta una precisione fino a 0,00001 per i calcoli della frequenza dei valori null, della percentuale di errore del tipo di dati e della frequenza fuori intervallo.
La frequenza dei valori Null è la frequenza dei valori Null nell'input del modello per ogni caratteristica. Ad esempio, se la finestra dei dati di produzione di monitoraggio contiene 100 righe e il valore della caratteristica temperature
è Null per 10 di tali righe, la frequenza dei valori Null per temperature
è 10%.
Azure Machine Learning supporta il calcolo della frequenza dei valori Null per tutti i tipi di dati delle caratteristiche.
Durante l'esecuzione di ogni monitoraggio, il monitoraggio del modello di Azure Machine Learning deduce il tipo di dati per ogni caratteristica dai dati di riferimento. La frequenza di errore del tipo di dati è la frequenza delle differenze tra la finestra dei dati di produzione correnti e i dati di riferimento.
Ad esempio, se si deduce che il tipo di dati per una caratteristica temperature
è IntegerType
in base ai dati di riferimento, ma nella finestra dei dati di produzione 10 su 100 valori per temperature
non sono IntegerType
ma sono stringhe, la percentuale di errore del tipo di dati per temperature
è 10%.
Azure Machine Learning supporta il calcolo della percentuale di errore del tipo di dati per i tipi di dati seguenti disponibili in PySpark: ShortType
, BooleanType
, BinaryType
, DoubleType
, TimestampType
, StringType
, IntegerType
, FloatType
, ByteType
, LongType
e DateType
. Se il tipo di dati per una caratteristica non è incluso in questo elenco, il monitoraggio dei modelli di Azure Machine Learning viene comunque eseguito ma non calcola la percentuale di errore del tipo di dati per tale caratteristica.
Durante ogni esecuzione del monitoraggio, il monitoraggio dei modelli di Azure Machine Learning determina l'intervallo o il set accettabile per ogni caratteristica dei dati di riferimento. La frequenza fuori intervallo è la frequenza di valori per ogni caratteristica che non rientrano nell'intervallo o nel set appropriato in base ai dati di riferimento.
- Per le caratteristiche numeriche, l'intervallo appropriato è l'intervallo numerico tra i valori minimo e massimo nel set di dati di riferimento, ad esempio
[0, 100]
. - Per le caratteristiche categoriche, ad esempio
color
, l'intervallo appropriato è un set di tutti i valori contenuti nel set di dati di riferimento, ad esempio[red, yellow, green]
.
Se si ha ad esempio la caratteristica numerica temperature
in cui tutti i valori del set di dati di riferimento rientrano nell'intervallo [37, 77]
, ma 10 su 100 valori per temperature
nella finestra dei dati di produzione non rientrano nell'intervallo [37, 77]
, la frequenza fuori intervallo per temperature
è 10%.
Azure Machine Learning supporta il calcolo della frequenza fuori intervallo per i tipi di dati seguenti disponibili in PySpark: StringType
, IntegerType
, DoubleType
, ByteType
, LongType
e FloatType
. Se il tipo di dati per una caratteristica non è incluso in questo elenco, il monitoraggio dei modelli di Azure Machine Learning viene comunque eseguito ma non calcola la frequenza fuori intervallo per tale caratteristica.
È possibile usare gli eventi generati dalle esecuzioni del monitoraggio dei modelli di Azure Machine Learning per configurare applicazioni, processi o flussi di lavoro CI/CD (integrazione continua/recapito continuo) basati su eventi con la Griglia di eventi di Azure. Quando il monitoraggio del modello rileva derive, problemi di qualità dei dati o riduzione delle prestazioni dei modelli, è possibile tenere traccia di questi eventi con Griglia di eventi e intervenire a livello programmatico.
Ad esempio, se l'accuratezza del modello di classificazione nei cali di produzione al di sotto di una determinata soglia, è possibile usare Griglia di eventi per avviare un processo di ripetizione del training che usa i dati di verità di base raccolti. Per informazioni su come integrare Azure Machine Learning con Griglia di eventi, vedere Monitorare le prestazioni dei modelli distribuiti nell'ambiente di produzione.