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:

Figura 4. Nell'inferenza statica, un modello genera previsioni,
            che vengono poi memorizzate nella cache su un server.
Figura 4. Nell'inferenza statica, un modello genera previsioni, che vengono poi memorizzate nella cache su un server.

 

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.

Figura 5. Nell'inferenza dinamica, un modello deduce le previsioni sulla domanda.
Figura 5. Nell'inferenza dinamica, un modello deduce le previsioni su richiesta.

 

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.