Sistemi di ML di produzione: quando trasformare i dati?

I dati non elaborati devono essere sottoposti a feature engineering (trasformati). Quando dovresti trasformare dati? In termini generali, puoi eseguire il feature engineering durante i due punti seguenti:

  • Prima di addestrare il modello.
  • Durante l'addestramento del modello.

Trasformazione dei dati prima dell'addestramento

Questo approccio prevede due passaggi:

  1. Scrivere codice o utilizzare strumenti specializzati per trasformare i dati non elaborati.
  2. Archivia i dati trasformati in una posizione che il modello può importare, ad esempio come su disco.

Vantaggi

  • Il sistema trasforma i dati non elaborati solo una volta.
  • Il sistema può analizzare l'intero set di dati per determinare la tua strategia di trasformazione.

Svantaggi

Il disallineamento addestramento/produzione è più pericoloso quando il sistema esegue dinamiche (online). Su un sistema che utilizza l'inferenza dinamica, il software che trasforma il set di dati non elaborato di solito è diverso dal software che fornisce le previsioni, il che può causare un disallineamento addestramento/produzione. Al contrario, i sistemi che utilizzano l'inferenza statica (offline) a volte possono usano lo stesso software.

Trasformazione dei dati durante l'addestramento

In questo approccio, la trasformazione fa parte del codice del modello. Il modello importa dati non elaborati e li trasforma.

Vantaggi

  • Se modifichi le trasformazioni, puoi comunque utilizzare gli stessi file di dati non elaborati.
  • Avrai la garanzia delle stesse trasformazioni al momento dell'addestramento e della previsione.

Svantaggi

  • Le trasformazioni complicate possono aumentare la latenza del modello.
  • Le trasformazioni avvengono per ogni batch.

La trasformazione dei dati per batch può essere complessa. Ad esempio, supponiamo che tu voglia utilizza la normalizzazione dello Z-Score per trasformare i dati numerici non elaborati. La normalizzazione dello z-score richiede la media e deviazione standard della caratteristica. Tuttavia, le trasformazioni per batch significano che avrai accesso solo un batch di dati, non il set di dati completo. Quindi, se i batch sono molto un punteggio Z pari, ad esempio, a -2,5 in un batch non avrà lo stesso significato come -2.5 in un altro batch. Come soluzione alternativa, il tuo sistema può precalcolare la media e la deviazione standard nell'intero set di dati e poi utilizzarle come costanti nel modello.