Costruzione di una piattaforma di ML nel settore del commercio al dettaglio e dell’eCommerce

'Creazione di una piattaforma di ML per il commercio al dettaglio e l'eCommerce'

Ottenerne l’apprendimento automatico per risolvere alcuni dei problemi più difficili in un’organizzazione è fantastico. E le aziende di e-commerce hanno un sacco di casi d’uso in cui l’IA può aiutare. Il problema è che, con più modelli di IA e sistemi in produzione, è necessario configurare più infrastrutture per gestire tutto in modo affidabile. E a causa di ciò, molte aziende decidono di centralizzare questo sforzo in una piattaforma interna di IA.

Ma come costruirlo?

In questo articolo, condividerò ciò che ho imparato su come funzionano con successo le piattaforme di IA nell’e-commerce e quali sono le migliori pratiche che un team deve seguire durante il processo di costruzione.

Ma prima, discutiamo dei casi d’uso principali di apprendimento automatico nel settore del commercio al dettaglio/e-commerce che la tua piattaforma di IA può e dovrebbe supportare.

Quali sono i tipi di modelli che una piattaforma di IA per l’e-commerce può supportare?

Anche se ci sono cose che tutte le piattaforme di IA interne hanno in comune, ci sono tipi di modelli particolari che hanno più senso per un’e-commerce, come ad esempio:

  • 1
    Ricerca di prodotti
  • 2
    Personalizzazione e raccomandazione
  • 3
    Ottimizzazione del prezzo
  • 4
    Previsione della domanda

Ricerca di prodotti

La ricerca di prodotti è fondamentale per qualsiasi azienda di e-commerce. I clienti manifestano le loro intenzioni attraverso la piattaforma di ricerca. Se la piattaforma di ricerca di prodotti non è ottimale, molte richieste dei clienti possono rimanere insoddisfatte.

La piattaforma di IA può utilizzare dati storici di interazione con i clienti, noti anche come “clickstream data”, e trasformarli in caratteristiche essenziali per il successo della piattaforma di ricerca. Da un punto di vista algoritmico, “Learning To Rank” (LeToR) e “Elastic Search” sono alcuni degli algoritmi più popolari utilizzati per costruire un sistema di ricerca.

Personalizzazione e raccomandazione

La raccomandazione di prodotti nell’e-commerce è la via per fornire suggerimenti rilevanti e preziosi per soddisfare le esigenze dei clienti. Un sistema di raccomandazione di prodotti nell’e-commerce, se implementato correttamente, offre una migliore esperienza per il cliente, stimola un maggiore coinvolgimento del cliente e porta a un migliore guadagno.

Possiamo raccogliere e utilizzare dati storici di interazione tra utente e prodotto per addestrare algoritmi di sistema di raccomandazione. Gli algoritmi tradizionali di filtraggio collaborativo o di filtraggio collaborativo neurale, che si basano sull’interazione passata degli utenti con i prodotti, sono ampiamente utilizzati per risolvere problemi di personalizzazione e raccomandazione simili.

Ottimizzazione del prezzo

L’ottimizzazione del prezzo è un problema centrale del settore del commercio al dettaglio. Le aziende di e-commerce devono trovare un compromesso tra “mantenere un articolo invenduto in magazzino” e “promuovere la vendita dell’articolo offrendo uno sconto interessante”.

A causa di ciò, gli sviluppatori potrebbero dover ottimizzare la strategia di prezzo molto spesso. Per supportare tale sviluppo incrementale del modello, è necessario costruire una piattaforma di IA con il supporto di CI/CD/CT per muoversi più velocemente.

Previsione della domanda

L’analisi della domanda futura aiuta un’azienda di e-commerce a gestire meglio le decisioni di approvvigionamento e rifornimento. Ci sono alcuni prodotti che sono stagionali e la loro domanda fluttua durante l’anno. Vestiti estivi, vestiti invernali, decorazioni natalizie, costumi di Halloween, idratanti, ecc., sono alcuni esempi.

Un modello di IA che utilizza algoritmi di previsione popolari come SARIMAX, AIRMA, ecc. può tenere conto di tutti questi fattori per ottenere una migliore stima della domanda e aiutare a prendere decisioni di e-commerce migliori riguardo al catalogo e all’inventario.

Come configurare una piattaforma di IA nell’e-commerce?

L’obiettivo di una piattaforma di IA è automatizzare le attività ripetitive e ottimizzare i processi, partendo dalla preparazione dei dati fino alla distribuzione e al monitoraggio del modello. Una piattaforma di IA aiuta a velocizzare l’iterazione del ciclo di vita di un progetto di IA.

Il seguente diagramma schematico rappresenta i principali componenti di una piattaforma di IA.

L’architettura di una piattaforma di IA nell’e-commerce | Fonte: Autore

Un componente potrebbe avere un nome diverso, ma i principali componenti di una piattaforma di IA sono i seguenti:

  • 1
    Piattaforma dati
  • 2
    Elaborazione dati
  • 3
    Integrazione continua / distribuzione continua / addestramento continuo
  • 4
    Distribuzione del modello
  • 5
    Monitoraggio delle prestazioni

Questi sono i componenti che troveremo in qualsiasi piattaforma di IA, ma cosa c’è di speciale nella piattaforma di IA nel settore del commercio al dettaglio? Si tratta di come progettiamo ciascuno di questi componenti. Nelle sezioni seguenti, discuteremo come ciascuno di questi componenti è formulato per supportare i casi d’uso nel settore del commercio al dettaglio.

Considerazioni per la piattaforma dati

Configurare correttamente la piattaforma dati è fondamentale per il successo di una piattaforma di machine learning. Nel percorso end-to-end di una piattaforma di eCommerce, si possono individuare numerosi componenti in cui vengono generati dati. Come si può vedere nel diagramma seguente, per consegnare un articolo da un fornitore a un consumatore, l’articolo attraversa diversi livelli nella catena di approvvigionamento.

Ciascuno di questi livelli genera un elevato volume di dati ed è essenziale acquisire questi dati in quanto svolgono un ruolo cruciale nell’ottimizzazione. A volte diventa difficile gestire un tale volume di dati provenienti da diverse fonti.

Percorso end-to-end nel settore dell’eCommerce | Fonte: Autore

Fonti di dati

  • Dati di clickstream: Il percorso dei clienti inizia con la ricerca di un articolo tramite l’inserimento di una query. Man mano che i clienti interagiscono con il portale di eCommerce, viene generato un flusso di dati sui click. L’interazione dei clienti viene registrata in modo da migliorare il sistema di ricerca e raccomandazione analizzando il comportamento passato dei clienti.
  • Catalogo prodotti: I dati del catalogo prodotti rappresentano la fonte principale per qualsiasi algoritmo per conoscere un prodotto. Un’azienda di eCommerce acquista prodotti da diversi fornitori e produttori. Consolidare i dati provenienti da diversi canali e persistere tali dati per mantenere un catalogo prodotti arricchito è una sfida.
  • Dati di gestione della catena di approvvigionamento: Un’altra fonte di dati è il sistema di gestione della catena di approvvigionamento. Man mano che un articolo transita nella rete di approvvigionamento, genera dati ad ogni livello ed è importante che questi dati vengano persistiti per ottimizzare la rete di approvvigionamento.

L’obiettivo della piattaforma dati è persistere i dati in modo che siano facili da elaborare per lo sviluppo dei modelli di machine learning. Nelle sezioni seguenti, discuteremo le best practice per la configurazione di una piattaforma dati per il settore del retail.

Componenti di una piattaforma dati | Fonte: Autore

Mantenimento della cronologia dei dati

Nel processo di creazione di una piattaforma dati per il settore dell’eCommerce, è fondamentale conservare i dati sugli impegni passati dei clienti in quanto i sistemi di raccomandazione utilizzano i dati storici sull’interazione dei clienti per sviluppare algoritmi migliori. Mantenere una lunga cronologia dei dati a livello di sessione potrebbe essere complicato. Vediamo un esempio per capire meglio.

I dati di clickstream di solito contengono <IDSessione, Utente, Query, Articolo, Click, ATC, Ordine>. Mantenere i dati a livello di sessione per ciascun utente nel corso di una lunga cronologia potrebbe essere eccessivo e lo sviluppo del modello di machine learning potrebbe non richiedere sempre quel livello di dettaglio granulare.

Pertanto, una migliore architettura del database sarebbe quella di mantenere più tabelle in cui una delle tabelle mantiene la cronologia degli ultimi 3 mesi con dettagli a livello di sessione, mentre altre tabelle possono contenere dati aggregati settimanali sui click, ATC e ordini.

Versionamento del dataset

Nello sviluppo di un algoritmo, uno scienziato dei dati potrebbe dover eseguire più esperimenti. Tenere traccia dei dati utilizzati per eseguire un esperimento a volte diventa difficile per uno scienziato dei dati. Pertanto, il versionamento dei dati aiuta a tenere traccia delle modifiche ai dati nel tempo.

Ad esempio, nell’eCommerce, i dati del catalogo prodotti cambiano nel tempo. A volte vengono aggiunti nuovi prodotti al catalogo, mentre altri prodotti inattivi vengono rimossi. Pertanto, durante la creazione di un modello, è importante tenere traccia della versione dei dati del catalogo utilizzata per costruire il modello perché l’inclusione o l’eliminazione di prodotti potrebbe portare a previsioni inconsistenti.

Scelta della piattaforma di archiviazione dei dati corretta

Nell’eCommerce, uno scienziato dei dati si occupa di tutti i tipi di dati. La scelta di una piattaforma di archiviazione in base al tipo di dati e al tipo di applicazione è essenziale.

  • La piattaforma dati deve avere integrazione con BigQuery, piattaforme di archiviazione di file nel cloud (come Amazon S3, GCP bucket, ecc.) tramite connettori dati.
  • Potrebbero esserci più fonti di dati contemporaneamente, che possono essere disponibili in diverse forme come immagini, testo e dati tabulari. Potrebbe essere utile utilizzare una piattaforma di gestione del machine learning già pronta per mantenere diverse versioni dei dati.
  • Per archiviare i dati dell’immagine, il cloud storage come Amazon S3 e GCP buckets, Azure Blob Storage sono alcune delle migliori opzioni, mentre potrebbe essere utile utilizzare Hadoop + Hive o BigQuery per archiviare i dati di clickstream e altre forme di dati testuali e tabulari.

Come configurare una piattaforma di elaborazione dati?

Tutti sappiamo quanto sia importante la pre-elaborazione dei dati nel ciclo di vita di un progetto di ML. Gli sviluppatori passano più del 70% del tempo a preparare i dati nel formato corretto. In questa sezione, parlerò delle migliori pratiche per la costruzione della piattaforma di elaborazione dati.

L’obiettivo di questa piattaforma è pre-elaborare, preparare e trasformare i dati in modo che siano pronti per l’addestramento del modello. Questo è il livello ETL (Estrazione, Trasformazione e Caricamento) che combina dati da diverse fonti, rimuove il rumore dai dati, organizza i dati grezzi e li prepara per l’addestramento del modello.

Verifica dei dati

Come discusso in precedenza, l’e-commerce gestisce dati di diversa natura e i dati potrebbero provenire da diverse fonti di dati. Quindi, prima di combinare i dati provenienti da più fonti, è necessario verificare la qualità dei dati.

Ad esempio, per i dati di catalogo, è importante verificare se l’insieme di campi obbligatori come il titolo del prodotto, l’immagine principale, i valori nutrizionali, ecc. sono presenti nei dati. Quindi, è necessario costruire uno strato di verifica che viene eseguito in base a un insieme di regole per verificare e convalidare i dati prima di prepararli per l’addestramento del modello.

Analisi esplorativa dei dati

Lo scopo di avere uno strato di analisi esplorativa dei dati è individuare eventuali errori evidenti o valori anomali nei dati. In questo strato, è necessario impostare un insieme di visualizzazioni per monitorare i parametri statistici dei dati.

Elaborazione delle caratteristiche

Questo è l’ultimo strato dell’unità di elaborazione dati che trasforma i dati in caratteristiche e li memorizza in un repository di caratteristiche. Un repository di caratteristiche è un archivio che memorizza le caratteristiche che possono essere utilizzate direttamente per l’addestramento del modello.

Ad esempio, un modello utilizza il numero di volte in cui un utente ha ordinato un elemento come una delle caratteristiche. I dati di clickstream che otteniamo nel loro formato grezzo contengono dati a livello di sessione sull’interazione degli utenti con i prodotti. Dobbiamo aggregare questi dati di clickstream a livello di utente e di articolo per creare la caratteristica e memorizzare quella caratteristica nel repository di caratteristiche centralizzato.

La creazione di questo tipo di repository di caratteristiche ha numerosi vantaggi:

  • 1
    Consente il riutilizzo semplice delle caratteristiche in più progetti.
  • 2
    Aiuta anche a standardizzare le definizioni delle caratteristiche tra i team.

Considerazioni per la piattaforma CI/CD/CT

Creazione di una piattaforma per lo sviluppo continuo

È una piattaforma in cui gli sviluppatori eseguono esperimenti e trovano l’architettura del modello più ottimale. È il campo di prova per gli esperimenti in cui uno sviluppatore esegue vari esperimenti e prova diverse architetture di modello, cerca di individuare le funzioni di perdita appropriate e sperimenta con gli iperparametri dei modelli.

JupyterLabs è stato uno degli strumenti interattivi più popolari per lo sviluppo di ML con Python. Quindi, questa piattaforma può sfruttare l’ambiente JupyterLab per scrivere il codice ed eseguirlo. Questa piattaforma ha bisogno di accesso alla Piattaforma di Dati e deve supportare tutti i tipi di Connettori di Dati per recuperare i dati dalle fonti di dati.

Creazione di una piattaforma per l’addestramento continuo

Una piattaforma di ML per l’e-commerce ha bisogno di una varietà di modelli: previsione, sistema di raccomandazione, learning to rank, classificazione, regressione, ricerca operativa, ecc. Per supportare lo sviluppo di questa vasta gamma di modelli, è necessario eseguire diversi esperimenti di addestramento per individuare il miglior modello e continuare a riallenare il modello ottenuto ogni volta che si ottengono nuovi dati. Pertanto, la Piattaforma di ML dovrebbe supportare l’addestramento continuo (CT) insieme al CI/CD.

L’addestramento continuo viene realizzato configurando una pipeline che preleva i dati dal repository di caratteristiche, addestra il modello utilizzando l’architettura del modello pre-estimata dalla piattaforma di sviluppo continuo, calcola le metriche di valutazione e registra il modello nel registro dei modelli se le metriche di valutazione progrediscono nella direzione corretta. Una volta che il nuovo modello viene registrato nel registro dei modelli, viene creata una nuova versione e la stessa versione viene utilizzata per prelevare il modello durante il deployment.

Ma cos’è il Registro dei Modelli e quali sono queste metriche di valutazione?

Registro dei Modelli
  • Un registro dei modelli è una piattaforma centralizzata che memorizza e gestisce modelli di ML addestrati. Memorizza i pesi del modello e mantiene un registro delle versioni del modello. Un registro dei modelli è uno strumento molto utile per organizzare diverse versioni del modello.
  • Oltre ai pesi del modello, un registro dei modelli memorizza anche metadati sui dati e sui modelli.
  • Un registro dei modelli dovrebbe supportare una vasta gamma di tipi di modelli come modelli basati su TensorFlow, modelli basati su sklearn, modelli basati su transformer, ecc.
  • Strumenti come neptune.ai offrono un fantastico supporto per un registro dei modelli per semplificare questo processo.
  • Ogni volta che viene registrato un modello, viene generato un ID univoco per quel modello e lo stesso viene utilizzato per tracciare quel modello per il deployment.

Con neptune.ai puoi salvare i tuoi modelli pronti per la produzione in un registro centralizzato. Questo ti permetterà di versionare, revisionare e accedere ai tuoi modelli e ai relativi metadati in un unico posto.

  • Vedi una panoramica completa del registro dei modelli nella documentazione
Selezione delle migliori metriche di valutazione

Le metriche di valutazione ci aiutano a decidere le prestazioni di una versione dell’algoritmo. Nel settore dell’e-commerce, per i sistemi di raccomandazione o per qualsiasi altro algoritmo che influisce direttamente sull’esperienza del cliente, esistono due metodi per valutare questi modelli, “valutazione offline” e “valutazione online”.

Nel caso della “valutazione offline”, le prestazioni del modello vengono valutate in base a un insieme di metriche predefinite che vengono calcolate su un dataset predefinito. Questo metodo è più veloce e facile da usare, ma questi risultati non sono sempre correlati al comportamento effettivo dell’utente in quanto questi metodi non riescono a catturare il bias dell’utente.

Gli utenti diversi che vivono in diverse posizioni geografiche introducono il loro bias di selezione e bias culturale nella piattaforma di e-commerce. A meno che non catturiamo tali bias attraverso l’interazione diretta degli utenti con la piattaforma, è difficile valutare una nuova versione del modello.

Quindi, utilizziamo metodi come il test A/B e/o l’interleaving per valutare un algoritmo attraverso il deployment di una soluzione sulla piattaforma e quindi catturare come gli utenti interagiscono con il vecchio e il nuovo sistema.

Test A/B

Nell’e-commerce, il test A/B viene eseguito per confrontare due versioni dei sistemi di raccomandazione o degli algoritmi considerando l’algoritmo precedente come controllo e la nuova versione dell’algoritmo come esperimento.

Gli utenti con caratteristiche demografiche, interessi, esigenze dietetiche e scelte simili vengono divisi in due gruppi per ridurre il bias di selezione. Un gruppo di utenti interagisce con il vecchio sistema, mentre un altro gruppo di utenti interagisce con il nuovo sistema.

Un insieme di metriche di conversione, come il numero di ordini, il valore lordo delle merci (GMV), ATC/ordine, ecc., viene catturato e confrontato formulando un test di ipotesi per concludere con una significatività statistica.

Potrebbe essere necessario eseguire un esperimento di test A/B per 3-4 settimane per ottenere prove conclusive con significatività statistica. Il tempo dipende dal numero di utenti che partecipano agli esperimenti.

Interleaving

L’interleaving è un’alternativa al test A/B in cui si raggiunge un obiettivo simile, ma in meno tempo. Nell’interleaving, invece di dividere gli utenti in 2 gruppi, viene creato un elenco combinato di posizioni alternando i risultati delle 2 versioni dell’algoritmo di raccomandazione.

Test A/B vs interleaving | Modificato in base a: fonte

Per valutare un algoritmo di sistema di raccomandazione, abbiamo bisogno di metodi di valutazione sia online che offline. Dove la valutazione offline utilizzando metriche come NDCG (Normalised Discounted Cumulative Gain), Tau di Kendall, Precisione e Recall aiuta uno sviluppatore a ottimizzare e testare un algoritmo in un intervallo di tempo molto breve, la valutazione online fornisce una valutazione più realistica ma richiede più tempo.

Una volta completate le valutazioni offline e/o online, le metriche di valutazione vengono memorizzate in una tabella e le prestazioni del modello vengono confrontate per decidere se il nuovo modello sta superando gli altri modelli. In caso affermativo, il modello viene registrato in un registro dei modelli.

Framework di servizio del modello

Una volta sviluppato un modello di apprendimento automatico, la sfida successiva è servire il modello nel sistema di produzione. Servire un modello di apprendimento automatico è a volte difficile a causa dei vincoli operativi.

In primo luogo, ci sono due tipi di servizio del modello:

  1. Deployment in tempo reale: In questi tipi di sistemi, il modello viene implementato in un sistema online in cui l’output del modello viene ottenuto in una frazione di tempo molto breve. Questo insieme di modelli è molto sensibile alla latenza e richiede ottimizzazioni per soddisfare i requisiti di latenza. La maggior parte dei sistemi aziendali critici richiede elaborazione in tempo reale.
  1. Deployment batch: In questi tipi di sistemi, l’output del modello viene inferito su un batch di campioni. Tipicamente, viene pianificato un lavoro per eseguire l’output del modello. In questo tipo di deployment, c’è relativamente meno attenzione ai problemi di latenza.

Dobbiamo ottenere una latenza ridotta per la modalità in tempo reale o batch ridotto. Il processo di servizio e ottimizzazione dipende dalla scelta del framework e dal tipo di modello. Nelle sezioni seguenti, discuteremo alcuni degli strumenti popolari che aiutano a ottenere una latenza ridotta per servire modelli di machine learning nel sistema di produzione.

Open neural network exchange (ONNX)

L’ottimizzazione del tempo di inferenza di un modello di machine learning è difficile perché è necessario ottimizzare i parametri e l’architettura del modello e sintonizzarli anche per la configurazione hardware. A seconda che si esegua il modello su GPU/CPU o Cloud/Edge, questo problema diventa impegnativo. È impossibile ottimizzare e sintonizzare il modello per diversi tipi di piattaforme hardware e ambienti software. Ecco dove entra in gioco ONNX.

ONNX è uno standard aperto per la rappresentazione di modelli di machine learning. Un modello costruito in TensorFlow, Keras, PyTorch, scikit-learn, ecc., può essere convertito in un formato ONNX standard in modo che il modello ONNX possa essere eseguito su una varietà di piattaforme e dispositivi. ONNX supporta sia reti neurali profonde che modelli di machine learning classici. Quindi, avere ONNX come parte della piattaforma di machine learning risparmia molto tempo per iterare rapidamente.

Triton inference server

I modelli di computer vision e i modelli di linguaggio possono avere molti parametri e quindi richiedono molto tempo durante l’inferenza. A volte è necessario eseguire una serie di ottimizzazioni per migliorare il tempo di inferenza del modello. Triton Inference Server, sviluppato da NVIDIA AI Platform, offre la possibilità di distribuire, eseguire e scalare un modello di machine learning addestrato su qualsiasi tipo di infrastruttura.

Supporta TensorFlow, NVIDIA® TensorRT™, PyTorch, MXNet, Python, ONNX, XGBoost, scikit-learn, RandomForest, OpenVINO, ecc. Triton Inference Server supporta anche il Large Language Model, dove suddivide un grande modello in più file ed esegue su più GPU anziché su una singola.

Ecco alcuni link utili in merito: triton-inference, guida su triton-server.

Monitoraggio del modello

Le prestazioni di un modello di machine learning possono deteriorarsi nel tempo a causa di fattori come la deriva concettuale, la deriva dei dati e lo spostamento delle covariate. Prendiamo ad esempio un sistema di raccomandazione di prodotti nel settore dell’e-commerce.

Pensi che un modello addestrato utilizzando dati del periodo pre-pandemico funzionerebbe altrettanto bene nel periodo post-pandemico? A causa di queste circostanze impreviste, il comportamento degli utenti è cambiato molto.

  • 1
    Molti utenti ora si concentrano sull’acquisto di articoli di prima necessità anziché dispositivi costosi.
  • 2
    Oltre a ciò, molti prodotti potrebbero essere esauriti a causa di problemi nella catena di approvvigionamento.
  • 3
    Per non parlare del fatto che nell’e-commerce, il modello di acquisto di un utente cambia con l’età dell’utente.

Quindi, i sistemi di raccomandazione per il tuo e-commerce potrebbero diventare irrilevanti dopo un po’ a causa di tali cambiamenti.

Alcune persone ritengono che il monitoraggio del modello non sia necessario in quanto la ri-addestramento periodico del modello si occupa comunque di qualsiasi forma di deriva. Questo è vero, ma questa idea è utile solo se il modello non è troppo grande. Gradualmente ci stiamo orientando verso modelli più grandi. Il ri-addestramento di tali modelli è costoso e potrebbe comportare costi elevati. Pertanto, stabilire un sistema di monitoraggio del modello ti aiuta a superare tali difficoltà.

Migliori pratiche per la costruzione di una piattaforma MLOps per il settore del commercio al dettaglio

Un team di machine learning nel settore del commercio al dettaglio risolve una varietà di problemi, dalla previsione ai sistemi di raccomandazione. Configurare correttamente la piattaforma MLOps è essenziale per il successo del team. Di seguito è riportato un elenco non esaustivo di pratiche a cui è necessario aderire per costruire un sistema MLOps efficiente per l’e-commerce.

Migliori pratiche per la costruzione di una piattaforma MLOps per il settore del commercio al dettaglio | Fonte: Autore

Versionamento dei modelli

Nel processo di sviluppo di un modello di machine learning nell’e-commerce, un team deve eseguire molti esperimenti. Durante il processo, il team crea più modelli. Diventa difficile gestire così tante versioni dei modelli.

La migliore pratica è mantenere un registro dei modelli in cui viene registrato un modello insieme alle sue metriche di performance e metadati specifici del modello. Quindi, ogni volta che viene creato un nuovo modello, viene allegato un ID di versione al modello e archiviato nel registro dei modelli.

Durante il deployment, un modello viene estratto dal registro dei modelli e deployato sul dispositivo di destinazione. Mantenendo un registro dei modelli, si ha la possibilità di tornare a modelli precedenti in base alle necessità.

Mantenimento di un feature store

I Data Scientist passano molto tempo a convertire i dati grezzi in feature. Direi che circa il 70% dello sforzo di un Data Scientist viene impiegato nella preparazione del dataset. Automatizzare il processo di pre-elaborazione e post-elaborazione dei dati per creare le feature riduce gli sforzi ridondanti.

Un feature store è una piattaforma centralizzata per memorizzare, gestire e distribuire le feature. Questo repository centralizzato aiuta ad accedere alle feature da parte di più team, favorisce la collaborazione trasversale e facilita lo sviluppo più rapido dei modelli.

Monitoraggio delle metriche di performance

Molti modelli di machine learning nel settore dell’e-commerce migliorano nel tempo. Attraverso un processo iterativo, gradualmente le performance di un modello migliorano man mano che si ottengono dati migliori e si trova una migliore architettura. Una delle migliori pratiche è monitorare l’andamento delle metriche di valutazione. Quindi, è una buona pratica creare dashboard con le metriche di valutazione degli algoritmi e monitorare se il team sta progredendo nella giusta direzione.

Creazione di una pipeline CI/CD

La CI/CD è assolutamente essenziale per qualsiasi sistema di MLOps. Consente una distribuzione più rapida ed efficiente dei cambiamenti del codice in produzione. La pipeline CI/CD ottimizza il processo dal commit del codice alla generazione della build. Esegue una serie di test automatizzati ogni volta che viene effettuato un commit del codice e fornisce un feedback allo sviluppatore sugli eventuali cambiamenti. Dà fiducia agli sviluppatori nel scrivere codice di qualità.

Monitoraggio del data drift e del concept drift

Configurare un avviso per identificare cambiamenti significativi nella distribuzione dei dati (per catturare il Data Drift) o cambiamenti significativi nelle performance del modello (per catturare il Concept Drift) spesso viene trascurato ma è essenziale.

Piattaforma di test A/B robusta

Il test A/B è il metodo per valutare gli algoritmi in base all’interazione con i clienti. Ma spesso richiede molto tempo per convergere. Quindi, un team dovrebbe dedicare tempo a trovare metodi di valutazione più rapidi come l’interleaving per costruire metodi robusti per testare gli algoritmi.

Pensieri finali

Questo articolo ha trattato i principali componenti di una piattaforma di machine learning e come costruirli per un’attività di e-commerce. Abbiamo anche discusso della necessità di una tale piattaforma di machine learning e riassunto le migliori pratiche da seguire durante la sua costruzione.

A causa dei frequenti progressi nello spazio del machine learning, in futuro alcuni di questi componenti e pratiche potrebbero richiedere una modifica. È importante rimanere aggiornati sulle ultime evoluzioni per assicurarsi di fare le cose nel modo corretto. Questo articolo è stato un tentativo in una direzione simile e spero che dopo averlo letto troverai più facile preparare una piattaforma di machine learning per la tua attività di vendita al dettaglio.

Riferimenti

  1. https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning 
  2. https://learn.microsoft.com/en-us/azure/machine-learning/concept-onnx 
  3. https://kreuks.github.io/machine%20learning/onnx-serving/ 
  4. https://developer.nvidia.com/nvidia-triton-inference-server 
  5. https://www.run.ai/guides/machine-learning-engineering/triton-inference-server