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 sistema può verificare le previsioni dedotte prima di pubblicarle.
Per un determinato input, il modello può fornire una previsione più rapidamente rispetto all'inferenza dinamica.
Il modello deve creare previsioni per tutti gli input possibili.
Puoi reagire rapidamente ai cambiamenti nel mondo.
Quale delle seguenti affermazioni è vera per l'inferenza dinamica?
Puoi eseguire la verifica post-trattamento delle previsioni prima che vengano utilizzate.
Puoi fornire previsioni per tutti gli elementi possibili.
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.