Che cos'è esattamente un PC AI? E dovresti comprarne uno nel 2025?
Le organizzazioni si stanno rivolgendo all'apprendimento automatico a causa del ritorno sull'investimento. Quelli che lo fanno in tempo reale sono in cima alle classifiche.
Secondo quanto riferito, le organizzazioni che applicano l'apprendimento automatico in tempo reale stanno registrando un aumento del ritorno sull'investimento
Dopo aver parlato con gli ingegneri dell'apprendimento automatico e delle infrastrutture presso le principali aziende Internet negli Stati Uniti, in Europa e in Cina, sono emersi due gruppi di aziende. Un gruppo ha investito centinaia di milioni di dollari in infrastrutture per consentire l'apprendimento automatico in tempo reale e ha già visto i ritorni sui propri investimenti. L'altro gruppo si chiede ancora se ci sia un valore nell'apprendimento automatico in tempo reale.
Il fatto che la rendicontazione del ritorno sull'investimento sia un buon modo per attirare l'attenzione non sembra essere sfuggito a Chip Huyen. Huyen è uno scrittore e informatico che lavora sull'infrastruttura per l'apprendimento automatico in tempo reale. È lei che ha scritto l'introduzione di cui sopra alle sue scoperte sull'apprendimento automatico in tempo reale al fine di cristallizzare la crescente esperienza che lei e i suoi colleghi stanno accumulando.
Huyen ha lavorato con artisti del calibro di Netflix, Nvidia, Primer e Snorkel AI prima di fondare la sua startup (stealth). Si è laureata a Stanford, dove insegna anche Machine Learning Systems Design ed è stata Top Voice di LinkedIn nel 2019 e nel 2020.
In altre parole, Huyen è molto ben posizionato per riferire su quello che il collega Tony Baer, collaboratore di ZDNet, ha descritto come "un obiettivo a lungo sfuggente per i sistemi operativi e l'analisi" nel suo outlook sui dati per il 2022: unificare i dati in movimento (streaming) con i dati a riposo (dati che si trovano in un database o in un data lake). L'obiettivo finale nel fare ciò sarebbe quello di raggiungere il tipo di ROI su cui Huyen riporta.
Previsioni di machine learning e aggiornamenti di sistema in tempo reale
L'analisi di Huyen si riferisce a modelli e sistemi di apprendimento automatico in tempo reale su 2 livelli. Il livello 1 è costituito da previsioni online: sistemi ML che effettuano previsioni in tempo reale, per i quali definisce il tempo reale nell'ordine dei millisecondi e dei secondi. Il livello 2 è l'apprendimento continuo: sistemi ML che incorporano nuovi dati e si aggiornano in tempo reale, per i quali definisce il tempo reale nell'ordine dei minuti.
L'essenza del motivo per cui i sistemi di livello 1 sono importanti è che, come dice Huyen, "non importa quanto siano fantastici i tuoi modelli di ML, se impiegano solo millisecondi di troppo per fare previsioni, gli utenti faranno clic su qualcos'altro". Come spiega, una "non-soluzione" per le previsioni rapide è renderle in batch offline, memorizzarle ed estrarle quando necessario.
Questo può funzionare quando lo spazio di input è finito: si sa esattamente per quanti input possibili fare previsioni. Un esempio è quando devi generare consigli sui film per i tuoi utenti: sai esattamente quanti utenti ci sono. Pertanto, si prevede un set di raccomandazioni per ogni utente periodicamente, ad esempio ogni poche ore.
Per rendere lo spazio di input dell'utente limitato, molte applicazioni fanno in modo che gli utenti scelgano tra le categorie invece di inserire query aperte, osserva Huyen. Procede quindi a mostrare esempi di come questo approccio possa produrre risultati che possono danneggiare l'esperienza dell'utente, da artisti del calibro di TripAdvisor e Netflix.
Sebbene strettamente associato al coinvolgimento/fidelizzazione degli utenti, questo non è un fallimento catastrofico. I cattivi risultati potrebbero essere catastrofici in altri settori, come i veicoli autonomi di rilevamento delle frodi. Il passaggio dalle previsioni batch alle previsioni online consente l'uso di funzionalità dinamiche per effettuare previsioni più pertinenti.
I sistemi ML devono avere due componenti per essere in grado di farlo, osserva Huyen. Hanno bisogno di inferenza veloce, cioè di modelli in grado di fare previsioni nell'ordine dei millisecondi. E hanno anche bisogno di pipeline in tempo reale, ovvero pipeline in grado di elaborare i dati, inserirli nei modelli e restituire una previsione in tempo reale.
Per ottenere un'inferenza più rapida, continua Huyen, i modelli possono essere resi più veloci, possono essere resi più piccoli o l'hardware può essere reso più veloce. L'attenzione sull'inferenza, TinyML e sui chip AI di cui abbiamo parlato in questo articolo è perfettamente allineata a questo e, naturalmente, anche questi approcci non si escludono a vicenda.
Huyen ha anche intrapreso un'analisi sui fondamenti e sui framework dello streaming, qualcosa che ha visto un'ampia copertura su questa rubrica fin dall'inizio. Molte aziende stanno passando dall'elaborazione batch all'elaborazione a flusso, dall'architettura basata su richieste a quella basata su eventi, e questo è legato alla popolarità di framework come Apache Kafka e Apache Flink. Questo cambiamento è ancora lento negli Stati Uniti, ma molto più veloce in Cina, osserva Huyen.
Tuttavia, ci sono molte ragioni per cui lo streaming non è più popolare. Le aziende non vedono i benefici; c'è un cambiamento mentale e un elevato investimento iniziale nell'infrastruttura richiesta, il costo di elaborazione è più elevato e questi framework non sono nativi di Python, nonostante gli sforzi per colmare il divario tramite Apache Beam.
Huyen preferisce il termine "apprendimento continuo" invece di "formazione online" o "apprendimento online" per i sistemi di apprendimento automatico basati su modelli che vengono aggiornati in tempo reale. Quando le persone sentono parlare di formazione online o apprendimento online, pensano che un modello debba imparare da ogni punto dati in entrata.
Pochissime aziende lo fanno perché questo metodo soffre di una dimenticanza catastrofica: le reti neurali dimenticano bruscamente le informazioni apprese in precedenza dopo aver appreso nuove informazioni. Inoltre, può essere più costoso eseguire un passaggio di apprendimento su un solo punto dati rispetto a un batch.
Huyen ha effettuato l'analisi di cui sopra nel dicembre 2020. Nel gennaio 2022 ha rivisitato l'argomento. Sebbene la sua opinione sia che siamo ancora lontani alcuni anni dall'adozione mainstream dell'apprendimento continuo, vede investimenti significativi da parte delle aziende per passare all'inferenza online. Delinea il progresso evolutivo verso la previsione online.
Verso la previsione online
La fase 1 è la previsione batch. In questa fase, tutte le previsioni vengono pre-calcolate in batch, generate a un certo intervallo, ad esempio ogni 4 ore o ogni giorno. I casi d'uso tipici per la previsione batch sono il filtro collaborativo, le raccomandazioni basate sul contenuto. Esempi di aziende che utilizzano la previsione batch sono i consigli sui ristoranti di DoorDash, i consigli sui subreddit di Reddit o i consigli di Netflix intorno al 2021.
Huyen osserva che Netflix sta attualmente spostando online le sue previsioni sull'apprendimento automatico. Parte del motivo, aggiunge, è che per gli utenti che sono nuovi o non hanno effettuato l'accesso, non ci sono raccomandazioni pre-calcolate e personalizzate per loro. Nel momento in cui viene generato il prossimo batch di raccomandazioni, questi visitatori potrebbero essere già partiti senza effettuare un acquisto perché non hanno trovato nulla di rilevante per loro.
Huyen attribuisce la predominanza della previsione batch ai sistemi batch legacy come Hadoop. Questi sistemi consentivano l'elaborazione periodica di grandi quantità di dati in modo molto efficiente, quindi quando le aziende hanno iniziato con l'apprendimento automatico, hanno sfruttato i loro sistemi batch esistenti per fare previsioni.
La fase 2 è la previsione online con funzionalità batch. Le funzionalità dell'apprendimento automatico sono singole proprietà o caratteristiche misurabili di un fenomeno utilizzato per costruire un modello. Le funzionalità batch sono funzionalità estratte da dati storici, spesso con elaborazione batch, denominate anche funzionalità statiche o funzionalità storiche.
Invece di generare previsioni prima dell'arrivo delle richieste, le organizzazioni in questa fase generano previsioni dopo l'arrivo delle richieste. Raccolgono le attività degli utenti sulle loro applicazioni in tempo reale. Tuttavia, questi eventi vengono utilizzati solo per cercare incorporamenti pre-calcolati per generare incorporamenti di sessione.
Qui Huyen si riferisce agli incorporamenti nell'apprendimento automatico. Gli incorporamenti possono essere pensati come un modo per rappresentare i vettori, che è ciò con cui funzionano i modelli di apprendimento automatico per rappresentare le informazioni relative al mondo reale.
La cosa importante da ricordare sui sistemi Stage 2 è che utilizzano i dati in entrata dalle azioni dell'utente per cercare informazioni in incorporamenti pre-calcolati. I modelli di apprendimento automatico stessi non vengono aggiornati; è solo che producono risultati in tempo reale.
Architettura di un sistema di apprendimento automatico di previsione online
L'obiettivo delle previsioni basate sulle sessioni, secondo Huyen, è aumentare la conversione (ad esempio, la conversione dei visitatori per la prima volta in nuovi utenti o le percentuali di clic) e la fidelizzazione. L'elenco delle aziende che stanno già facendo inferenza online o hanno inferenza online nelle loro roadmap del 2022 è in crescita, tra cui Netflix, YouTube, Roblox, Coveo, ecc.
Huyen osserva che ogni singola azienda che è passata a un'inferenza online che le ha parlato le ha detto di essere molto soddisfatta delle vittorie delle proprie metriche. Si aspetta che nei prossimi due anni la maggior parte dei sistemi di raccomandazione sarà basata sulle sessioni: ogni clic, ogni visualizzazione, ogni transazione verrà utilizzata per generare raccomandazioni fresche e pertinenti quasi in tempo reale.
Per questa fase, le organizzazioni dovranno aggiornare i propri modelli dalla previsione batch alle previsioni basate sulla sessione. Ciò significa che potrebbe essere necessario aggiungere nuovi modelli. Le organizzazioni dovranno anche integrare i dati delle sessioni nel loro servizio di previsione. Questo può essere fatto in genere con l'infrastruttura di streaming, che consiste di due componenti, scrive Huyen.
La prima parte è un trasporto in streaming, come Kafka, AWS Kinesis o GCP Dataflow, per spostare i dati in streaming (le attività degli utenti). La seconda parte è un motore di calcolo in streaming, come Flink SQL, KSQL o Spark Streaming, per elaborare i dati in streaming.
Molte persone credono che la previsione online sia meno efficiente, sia in termini di costi che di prestazioni, rispetto alla previsione batch perché l'elaborazione delle previsioni in batch è più efficiente dell'elaborazione delle previsioni una per una. Huyen crede che questo non sia necessariamente vero.
Parte del motivo è che non è necessario generare previsioni per gli utenti che non visitano un sito con previsioni online. Se solo il 2% degli utenti totali accede ogni giorno e le previsioni vengono generate per ogni utente ogni giorno, il calcolo utilizzato per generare il 98% di tali previsioni andrà sprecato. Le sfide di questa fase riguarderanno la latenza di inferenza, la configurazione dell'infrastruttura di streaming e l'integrazione di alta qualità.
Previsione online con funzionalità complesse di streaming e batch
La fase 3 della scala evolutiva di Huyen è una previsione online con funzionalità complesse di streaming e batch. Le funzionalità di streaming sono funzionalità estratte dai dati in streaming, spesso con l'elaborazione del flusso, denominate anche funzionalità dinamiche o funzionalità online.
Se le aziende della fase 2 richiedono un'elaborazione del flusso, le aziende della fase 3 utilizzano molte più funzionalità di streaming. Ad esempio, dopo che un utente ha messo in ordine su Doordash, potrebbe aver bisogno sia di funzionalità batch che di funzionalità di streaming per stimare i tempi di consegna.
Le funzionalità batch possono includere il tempo medio di preparazione di questo ristorante in passato, mentre le funzionalità di streaming in questo momento possono includere quanti altri ordini hanno e quanti addetti alle consegne sono disponibili.
Nel caso della raccomandazione basata sulla sessione discussa nella fase 2, invece di utilizzare semplicemente gli incorporamenti di elementi per creare l'incorporamento di sessioni, è possibile utilizzare funzionalità di flusso come la quantità di tempo che l'utente ha trascorso sul sito o il numero di acquisti che un articolo ha avuto nelle ultime 24 ore.
Esempi di aziende in questa fase includono Stripe, Uber, Faire per casi d'uso come il rilevamento delle frodi, il punteggio di credito, la stima per la guida e la consegna e le raccomandazioni.
Il numero di funzionalità di flusso per ogni previsione può essere nell'ordine delle centinaia, se non delle migliaia. La logica di estrazione delle funzionalità del flusso può richiedere query complesse con join e aggregazione lungo dimensioni diverse. Per estrarre queste funzionalità sono necessari motori di elaborazione dei flussi efficienti.
Ci sono alcuni requisiti importanti per spostare i flussi di lavoro di apprendimento automatico a questa fase, secondo Huyen. Il primo è un'infrastruttura di streaming matura con un motore di elaborazione dei flussi efficiente in grado di calcolare tutte le funzionalità di streaming con una latenza accettabile. Il secondo è un archivio funzionalità per la gestione delle funzionalità materializzate e la garanzia della coerenza delle funzionalità del flusso durante l'addestramento e la previsione.
Il terzo è un negozio di modellismo. Una funzionalità di flusso, dopo essere stata creata, deve essere convalidata. Per garantire che una nuova funzionalità aiuti effettivamente le prestazioni del modello, è necessario aggiungerla a un modello, che crea in modo efficiente un nuovo modello, afferma Huyen. Idealmente, un negozio di modelli dovrebbe aiutare a gestire e valutare i modelli creati con le nuove funzionalità di streaming, ma i negozi di modelli che valutano anche i modelli non esistono ancora, osserva.
Ultimo ma non meno importante, un ambiente di sviluppo migliore. I data scientist attualmente lavorano sui dati storici anche quando creano funzionalità di streaming, il che rende difficile l'ideazione e la convalida di nuove funzionalità di streaming.
E se potessimo dare ai data scientist l'accesso diretto ai flussi di dati in modo che possano sperimentare e convalidare rapidamente nuove funzionalità di flusso, chiede Huyen. Invece di avere accesso solo ai dati storici, i data scientist potrebbero anche accedere ai flussi di dati in entrata dai loro notebook?
Questo sembra essere possibile oggi, ad esempio, con le integrazioni dei notebook Flink e Kafka. Anche se non siamo certi che questi soddisfino ciò che Huyen sta immaginando, è importante vedere il quadro generale qui.
È un argomento complicato e Huyen sta tracciando un percorso basato sulla sua esperienza con alcune delle organizzazioni tecnologicamente più avanzate. E non abbiamo nemmeno toccato il Livello 2: sistemi di apprendimento automatico che incorporano nuovi dati e si aggiornano in tempo reale.
Tuttavia, per chiudere il cerchio, se l'esperienza di Huyen è qualcosa su cui basarsi, i guadagni potrebbero giustificare l'investimento.

