Test delle pipeline in produzione

Complimenti! Hai eseguito il deployment del tuo predittore di unicorno globale. Vuoi che il predittore venga eseguito 24 ore su 24, 7 giorni su 7 senza intoppi. Ti rendi rapidamente conto che devi monitorare la tua pipeline ML. Il monitoraggio di tutti i componenti può sembrare scoraggiante, ma esaminiamo i requisiti e le soluzioni.

Verifica il disallineamento addestramento/produzione

Un disallineamento addestramento/produzione indica che i dati di input differiscono tra l'addestramento e la pubblicazione. La tabella seguente descrive i due tipi importanti di disallineamento:

Tipo Definizione Esempio Soluzione
Disallineamento schema I dati di input relativi all'addestramento e alla pubblicazione non sono conformi allo stesso schema. Il formato o la distribuzione dei dati di pubblicazione cambia mentre il modello continua a essere addestrato in base ai dati precedenti. Utilizza lo stesso schema per convalidare i dati di addestramento e pubblicazione. Assicurati di controllare separatamente le statistiche non controllate dallo schema, ad esempio la frazione dei valori mancanti
Disallineamento delle funzionalità I dati tecnici differiscono a seconda dell'addestramento e della pubblicazione. Il codice di progettazione delle funzionalità è diverso a seconda dell'addestramento e della pubblicazione, producendo dati strutturati diversi. Come per il disallineamento schema, applica le stesse regole statistiche nei dati di addestramento e pubblicazione. Monitora il numero di funzionalità inclinate rilevate e il rapporto di esempi inclinati per funzionalità.

Monitora l'età del modello durante tutta la pipeline

Se i dati di pubblicazione si evolvono nel tempo, ma il modello non viene addestrato regolarmente, si verificherà un calo della qualità del modello. Monitora il tempo trascorso da quando il modello è stato addestrato di nuovo e imposta un'età soglia per gli avvisi. Oltre a monitorare l'età del modello al momento della pubblicazione, devi monitorare l'età del modello durante l'intera pipeline per rilevare le relative bancarelle.

Verifica che le ponderazioni e gli output del modello siano stabili dal punto di vista numerico

Durante l'addestramento del modello, i tuoi pesi e gli output del livello non devono essere NaN o Inf. Scrivi test per verificare i valori NaN e Inf dei tuoi pesi e degli output del livello. Inoltre, verifica che più della metà degli output di un livello non sia zero.

Monitora le prestazioni del modello

Il tuo predittore dell'aspetto tra un unicorno è stato più popolare del previsto. Stai ricevendo molte richieste di previsione e ancora più dati di addestramento. Pensare che è fantastico finché non ti rendi conto che il tuo modello richiede sempre più memoria e tempo per l'addestramento. Decidi di monitorare le prestazioni del modello seguendo questi passaggi:

  • Monitora il rendimento dei modelli in base a versioni di codice, modello e dati. Tale monitoraggio ti consente di individuare la causa esatta di un peggioramento delle prestazioni.
  • Testa i passaggi di addestramento al secondo per una nuova versione del modello con la versione precedente e con una soglia fissa.
  • Rileva le perdite di memoria impostando una soglia per l'utilizzo della memoria.
  • Monitora i tempi di risposta dell'API e monitora i relativi percentili. Sebbene i tempi di risposta dell'API potrebbero essere fuori dal tuo controllo, le risposte lente potrebbero causare metriche reali nel mondo reale.
  • Monitora il numero di query con risposta al secondo.

Testa la qualità del modello in tempo reale in base ai dati pubblicati

Hai convalidato il tuo modello. Ma cosa succede se gli scenari reali, ad esempio il comportamento dell'unicorno, cambiano dopo la registrazione dei dati di convalida? la qualità del modello pubblicato si ridurrà. Tuttavia, testare la qualità nella pubblicazione è difficile perché i dati reali non sono sempre etichettati. Se i tuoi dati di pubblicazione non sono etichettati, valuta la possibilità di eseguire i seguenti test:

  • Genera le etichette utilizzando revisori umani.

  • Analizzare modelli che mostrano una significatività statistica nelle previsioni. Consulta Classificazione: bias di previsione.

  • Monitora le metriche reali del tuo modello. Ad esempio, se classifichi spam, confronta le tue previsioni con lo spam segnalato dagli utenti.

  • Riduci la potenziale divergenza tra i dati di addestramento e di pubblicazione pubblicando una nuova versione del modello su una parte delle query. Durante la convalida del nuovo modello di pubblicazione, passa gradualmente tutte le query alla nuova versione.

Utilizzando questi test, ricorda di monitorare sia il peggioramento improvviso che quello lento della qualità di previsione.