Sistemi di ML di produzione: inferenza statica e dinamica
L'inferenza è il processo di
generazione di previsioni mediante l'applicazione di un modello addestrato a
esempi non etichettati.
In linea di massima, un modello può dedurre le previsioni in due modi:
L'inferenza statica (chiamata anche inferenza offline o
inferenza batch) indica che il modello genera previsioni su un insieme di
esempi non etichettati comuni
e poi memorizza queste previsioni in qualche parte.
L'inferenza dinamica (chiamata anche inferenza online o in tempo reale) indica che il modello genera previsioni solo su richiesta, ad esempio quando un cliente ne richiede una.
Per fare un esempio estremo, immagina un modello molto complesso che impiega un'ora per dedurre una previsione.
Questa sarebbe probabilmente una situazione eccellente per l'inferenza statica:
Supponiamo che lo stesso modello complesso utilizzi erroneamente l'inferenza dinamica anziché statica. Se molti clienti richiedono previsioni all'incirca nello stesso momento, la maggior parte di loro non le riceverà per ore o giorni.
Ora prendi in considerazione un modello che esegue l'inferenza rapidamente, ad esempio in 2 millisecondi, utilizzando un minimo relativo di risorse di calcolo. In questa situazione, i clienti possono ricevere le previsioni in modo rapido ed efficiente tramite l'inferenza dinamica, come suggerito nella Figura 5.
Inferenza statica
L'inferenza statica offre determinati vantaggi e svantaggi.
Vantaggi
Non preoccuparti troppo del costo dell'inferenza.
Può eseguire la verifica post-trattamento delle previsioni prima del push.
Svantaggi
Può fornire solo previsioni memorizzate nella cache, pertanto il sistema potrebbe non essere in grado di fornire previsioni per esempi di input insoliti.
La latenza di aggiornamento viene probabilmente misurata in ore o giorni.
Inferenza dinamica
L'inferenza dinamica offre determinati vantaggi e svantaggi.
Vantaggi
Può dedurre una previsione su qualsiasi nuovo elemento man mano che viene inserito, il che è ottimo per le previsioni long tail (meno comuni).
Svantaggi
Ad alta intensità di calcolo e sensibili alla latenza. Questa combinazione può limitare la complessità del modello, ovvero potresti dover creare un modello più semplice che possa dedurre le previsioni più rapidamente di un modello complesso.
Le esigenze di monitoraggio sono più intense.
Esercizi: verifica la comprensione
Quali tre delle seguenti quattro affermazioni sono vere per l'inferenza statica?
Il modello deve creare previsioni per tutti gli input possibili.
Sì, il modello deve fare previsioni per tutti gli input possibili e memorizzarli in una cache o una tabella di ricerca.
Se l'insieme di elementi previsto dal modello è limitato, l'inferenza statica potrebbe essere una buona scelta.
Tuttavia, per input di tipo libero come le query degli utenti che hanno una coda lunga di elementi insoliti o rari, l'inferenza statica non può fornire una copertura completa.
Il sistema può verificare le previsioni dedotte prima di pubblicarle.
Sì, questo è un aspetto utile dell'inferenza statica.
Per un determinato input, il modello può fornire una previsione più rapidamente
rispetto all'inferenza dinamica.
Sì, l'inferenza statica può quasi sempre fornire previsioni più velocemente
rispetto all'inferenza dinamica.
Puoi reagire rapidamente ai cambiamenti nel mondo.
No, questo è uno svantaggio dell'inferenza statica.
Quale delle seguenti affermazioni è vera per l'inferenza dinamica?
Puoi fornire previsioni per tutti gli elementi possibili.
Sì, questo è un punto di forza dell'inferenza dinamica. A ogni richiesta inviata verrà assegnato un punteggio. L'inferenza dinamica gestisce le distribuzioni a coda lunga (quelle con molti elementi rari), come lo spazio di tutte le frasi possibili scritte nelle recensioni dei film.
Puoi eseguire la verifica post-trattamento delle previsioni prima che vengano utilizzate.
In generale, non è possibile eseguire una verifica postuma di tutte le
previsioni prima che vengano utilizzate perché vengono
effettuate su richiesta. Tuttavia, puoi potenzialmente monitorare
le qualità di previsione aggregate per fornire un certo livello di
controllo qualità, ma queste segnaleranno gli allarmi antincendio solo dopo
che l'incendio si è già diffuso.
Quando esegui l'inferenza dinamica, non devi preoccuparti della latenza di previsione (il tempo di attesa per la restituzione delle previsioni) quanto quando esegui l'inferenza statica.
La latenza di previsione è spesso un problema reale nell'inferenza dinamica.
Purtroppo, non è necessariamente possibile risolvere i problemi di latenza delle previsioni
aggiungendo altri server di inferenza.
[null,null,["Ultimo aggiornamento 2024-11-14 UTC."],[[["Inference involves using a trained model to make predictions on unlabeled examples, and it can be done statically or dynamically."],["Static inference generates predictions in advance and caches them, making it suitable for scenarios where prediction speed is critical but limiting its ability to handle uncommon inputs."],["Dynamic inference generates predictions on demand, offering flexibility for diverse inputs but potentially increasing latency and computational demands."],["Choosing between static and dynamic inference depends on factors like model complexity, desired prediction speed, and the nature of the input data."],["Static inference is advantageous when cost and prediction verification are prioritized, while dynamic inference excels in handling diverse, real-time predictions."]]],[]]