Sistemi di ML di produzione: addestramento statico e dinamico
In linea di massima, puoi addestrare un modello in due modi:
L'addestramento statico (chiamato anche addestramento offline) prevede l'addestramento di un modello soltanto una volta. Poi pubblichi lo stesso modello addestrato per un po' di tempo.
L'addestramento dinamico (chiamato anche addestramento online) consiste nell'addestrare un modello con continuità o almeno di frequente. Di solito viene pubblicato il modello addestrato più di recente.
Tabella 1. Vantaggi e svantaggi principali.
Addestramento statico
Formazione dinamica
Vantaggi
Più semplice. Devi sviluppare e testare il modello una sola volta.
Più adattabili. Il modello manterrà aggiornata la relazione tra caratteristiche ed etichette.
Svantaggi
A volte meno aggiornate. Se la relazione tra caratteristiche ed etichette cambia nel tempo, la qualità delle previsioni del modello peggiorerà.
Più lavoro. Devi creare, testare e rilasciare un nuovo prodotto
continuamente.
Se il tuo set di dati non cambia nel tempo, scegli l'addestramento statico perché è più economico da creare e gestire rispetto all'addestramento dinamico. Tuttavia, i set di dati tendono a cambiare nel tempo, anche quelli con elementi che ritieni costanti, ad esempio il livello del mare. Il punto di partenza: anche con l'addestramento statico, devi comunque monitorare i dati di input per rilevare eventuali modifiche.
Ad esempio, prendiamo in considerazione un modello addestrato per prevedere la probabilità che gli utenti acquistino fiori. A causa delle tempistiche, il modello viene addestrato una sola volta utilizzando un set di dati sul comportamento di acquisto di fiori durante i mesi di luglio e agosto.
Il modello funziona bene per diversi mesi, ma poi fa previsioni terribili
intorno al giorno di San Valentino perché
il comportamento degli utenti durante questo periodo di festività floreali cambia radicalmente.
Per un'esplorazione più dettagliata dell'addestramento statico e dinamico, consulta il corso Gestione dei progetti di ML.
Esercizi: verifica la comprensione
Quali due delle seguenti affermazioni sono vere per quanto riguarda
l'addestramento statico (offline)?
Il modello rimane aggiornato con l'arrivo di nuovi dati.
In realtà, se esegui l'addestramento offline, il modello non ha modo di incorporare i nuovi dati man mano che arrivano. Ciò può portare a un modello
obsoleto, se la distribuzione da cui stai cercando di apprendere
cambia nel tempo.
Puoi verificare il modello prima di applicarlo in produzione.
Sì, l'addestramento offline offre ampie opportunità per verificare il rendimento del modello prima di introdurlo in produzione.
L'addestramento offline richiede meno monitoraggio dei job di addestramento rispetto all'addestramento online.
In generale, i requisiti di monitoraggio durante l'addestramento sono più modesti per l'addestramento offline, il che ti isola da molte considerazioni di produzione. Tuttavia, più spesso addestrini il modello,
maggiore sarà l'investimento che dovrai fare per il monitoraggio. Inoltre,
ti consigliamo di eseguire regolarmente la convalida per assicurarti che le modifiche al codice
(e alle relative dipendenze) non influiscano negativamente sulla qualità del modello.
È necessario eseguire pochissimo monitoraggio dei dati di input al
momento dell'inferenza.
In modo controintuitivo, devi monitorare i dati di input al momento della pubblicazione. Se le distribuzioni di input cambiano, le
previsioni del nostro modello potrebbero diventare inaffidabili. Immagina, ad esempio, che un modello
addestrato solo sui dati sull'abbigliamento estivo venga improvvisamente utilizzato per
prevedere il comportamento di acquisto di abbigliamento in inverno.
Quale delle seguenti affermazioni è vera per la formazione dinamica (online)?
Il modello rimane aggiornato con l'arrivo di nuovi dati.
Questo è il vantaggio principale dell'addestramento online: puoi evitare molti problemi di inattualità consentendo al modello di addestrarsi sui nuovi dati man mano che vengono acquisiti.
È necessario eseguire pochissimo monitoraggio dei job di addestramento.
In realtà, devi monitorare continuamente i job di addestramento per assicurarti che siano integri e funzionino come previsto. Inoltre, ti servirà un'infrastruttura di supporto, ad esempio la possibilità di ripristinare un modello a uno snapshot precedente nel caso in cui si verifichi un problema durante l'addestramento, ad esempio un job con bug o la corruzione dei dati di input.
È necessario eseguire pochissimo monitoraggio dei dati di input al
momento dell'inferenza.
Come per un modello statico offline, è importante anche monitorare gli input ai modelli aggiornati dinamicamente. È probabile che non sia esposto a effetti significativi della stagionalità, ma variazioni improvvise e significative degli input (ad esempio l'interruzione di un'origine dati a monte) possono comunque causare previsioni inaffidabili.