Data Drift
La deriva dei dati è uno spostamento dei dati di input in produzione rispetto alla distribuzione di addestramento, che riduce la precisione. Scopri i tipi di deriva, i test statistici e il riaddestramento.
Il data drift è un cambiamento nella distribuzione statistica dei dati di input ricevuti da un modello distribuito, rispetto ai dati su cui è stato addestrato. I modelli presuppongono che gli input in produzione provengano dalla stessa distribuzione dei dati di addestramento; quando questa ipotesi viene meno, la precisione può diminuire senza messaggi di errore e senza modifiche al codice o ai pesi del modello. Tra le cause comuni nei sistemi di visione figurano nuove telecamere o obiettivi, cambiamenti nell'illuminazione e nelle stagioni, lo spostamento dell'angolazione della telecamera, nuove confezioni di prodotti e modifiche alle pipeline a monte, come un'impostazione diversa per la compressione delle immagini. Rilevare il drift e rispondervi è un'attività fondamentale del monitoraggio dei modelli e delle operazioni di machine learning (MLOps).
Tipi di slittamento della distribuzione#
Un classificatore modella la probabilità di un'etichetta dato un input; lo slittamento può verificarsi negli input, nelle etichette o nella relazione tra i due:
- Slittamento delle covariate: la distribuzione degli input cambia, mentre l'etichetta corretta per ogni input dato resta invariata. Un rilevatore addestrato su immagini diurne che inizia a ricevere filmati al crepuscolo è soggetto a uno slittamento delle covariate, perché un'auto resta un'auto. In senso stretto, il data drift indica questo caso.
- Slittamento delle etichette: detto anche slittamento della probabilità a priori, si verifica quando cambiano le frequenze delle classi. Se il tasso di difetti di una linea di produzione sale dall'1% al 5%, aumenta anche la quota di allarmi del rilevatore che corrisponde a difetti reali, quindi cambia la sua precisione, anche se il modello e l'aspetto di ogni difetto rimangono invariati.
- Slittamento del concetto: cambia la relazione tra input ed etichette, quindi lo stesso input richiede ora un'etichetta diversa. Gli schemi di frode evolvono man mano che i truffatori si adattano, e l'inasprimento di uno standard di qualità trasforma in scarti componenti che prima venivano accettati.
Il drift può essere improvviso, come la sostituzione di una telecamera; graduale, come l'accumulo di sporco sull'obiettivo; oppure ricorrente, come il fogliame stagionale e la neve.
Rilevamento del data drift#
Il rilevamento della deriva confronta un campione di riferimento, in genere i dati di validazione o di addestramento, con una finestra recente di dati di produzione. Senza etichette, i team verificano se le due distribuzioni di input differiscono, usando il test di Kolmogorov-Smirnov per due campioni (KS) per le caratteristiche continue, un test del chi quadrato per quelle categoriche o l'indice di stabilità della popolazione (PSI), comune nel credit scoring. I pixel grezzi sono troppo dimensionalmente elevati per essere confrontati direttamente, quindi il monitoraggio delle immagini verifica statistiche riassuntive come luminosità e nitidezza oppure gli embedding di una rete preaddestrata; uno studio sui metodi di rilevamento del cambiamento ha rilevato che i test a due campioni sulle rappresentazioni di classificatori preaddestrati erano i più efficaci. Anche gli output del modello forniscono un secondo segnale: variazioni nelle frequenze delle classi previste, nei riquadri per immagine o nei punteggi di confidenza spesso si manifestano prima che qualcuno misuri la precisione.
import numpy as np
from scipy.stats import ks_2samp
rng = np.random.default_rng(0)
# Mean brightness (0-255) of 500 training images and two batches of 200 production images
reference = rng.normal(130, 25, 500)
same_light = rng.normal(130, 25, 200)
dusk = rng.normal(110, 25, 200)
# Two-sample Kolmogorov-Smirnov test: a small p-value means the distributions differ
for name, batch in (("same light", same_light), ("dusk", dusk)):
result = ks_2samp(reference, batch)
drifted = result.pvalue < 0.01
print(f"{name}: KS statistic {result.statistic:.3f}, p-value {result.pvalue:.2g}, drift {drifted}")Il batch estratto dalla distribuzione di addestramento ottiene una statistica KS di 0.046 con un p-value di 0.91, mentre il batch la cui luminosità media è diminuita di 20 livelli ottiene 0.346 con un p-value di 1.1e-15 e viene segnalato. La statistica KS è la distanza massima tra le due distribuzioni cumulative; con campioni molto grandi, anche slittamenti innocui producono p-value minuscoli. Per questo gli avvisi di drift vengono spesso impostati sulla statistica KS stessa, che misura l'entità dello slittamento, anziché basarsi solo sul p-value.
Come rispondere al drift#
Solo nuove etichette consentono di stabilire se uno slittamento rilevato ha ridotto la precisione. La risposta standard consiste nel campionare i dati di produzione recenti, etichettarli, misurarvi la precisione media media (mAP) o altre metriche dell'attività e, se le prestazioni sono diminuite, riaddestrare o ottimizzare il modello con una combinazione di dati nuovi e originali, mantenendo nel mix gli esempi precedenti per evitare l'oblio catastrofico. L'aumento dei dati, ad esempio tramite variazioni di luminosità, sfocatura e colore, prepara il modello a variazioni prevedibili, mentre l'adattamento non supervisionato del dominio adatta un modello a un nuovo dominio usando dati di destinazione non etichettati. Nella Ultralytics Platform, la scheda Monitoring di un endpoint dedicato mostra nel tempo la confidenza media delle previsioni, il conteggio delle classi e le dimensioni e le posizioni dei riquadri per le immagini elaborate; gli esempi recenti possono essere salvati in un dataset per la revisione e il riaddestramento.
Data drift e termini correlati#
- Drift del modello: il calo delle prestazioni di un modello nel tempo, causato dal data drift e dallo slittamento del concetto. È detto anche decadimento del modello.
- Disallineamento tra addestramento e servizio: una discrepanza tra i dati di addestramento e quelli di produzione causata da elaborazioni diverse nelle due pipeline, ad esempio un altro metodo di ridimensionamento. È presente fin dal primo giorno della distribuzione, anziché svilupparsi nel tempo.
- Rilevamento delle anomalie: segnala singoli input che si discostano dalla norma, come un singolo fotogramma corrotto. Il rilevamento del drift confronta distribuzioni intere e segnala una settimana di immagini uniformemente più scure.
- Rilevamento fuori distribuzione (OOD): assegna a ogni input un punteggio che indica quanto si discosta dai dati di addestramento, di solito affinché il modello possa astenersi o demandare a una persona la gestione di quell'input.










