Feature Store
Scopri cos'è un feature store, come gli store offline e online prevengono il disallineamento tra training e serving, e perché la gestione delle feature è importante per un MLOps scalabile.
Un feature store è un sistema centralizzato per la gestione, l'archiviazione, l'individuazione e l'erogazione delle feature di dati utilizzate dai modelli di machine learning. Aiuta i team ad applicare le stesse definizioni di feature durante l'addestramento e l'inferenza in produzione, riducendo il lavoro duplicato e le incoerenze. Ad esempio, invece di ricostruire il valore degli "acquisti negli ultimi 30 giorni" di un cliente in diverse pipeline, i team possono definirlo una volta, mantenerne la cronologia e recuperare il suo valore più recente quando un modello effettua una previsione.
Come funziona un Feature Store#
Una feature è un input misurabile per un modello, come l'età dell'account, il valore medio delle transazioni, il conteggio degli oggetti rilevati o l'embedding di un'immagine. I dati grezzi diventano un utile input per il modello tramite feature engineering o feature extraction automatizzata.
Un tipico feature store coordina diversi componenti:
- Definizioni di feature: Gli schemi descrivono il nome, il tipo di dato, il proprietario, la logica di trasformazione, la chiave di entità e la versione di ciascuna feature. Le feature correlate possono essere organizzate in gruppi di feature o viste, come descritto nei concetti di Amazon SageMaker Feature Store.
- Offline store: I valori storici supportano l'esplorazione, l'addestramento, la validazione e l'inferenza batch. La documentazione del Feast offline store spiega come le feature storiche di serie temporali vengono recuperate dalle origini dati sottostanti.
- Online store: I valori più recenti sono conservati in un database a bassa Latenza per previsioni in tempo reale. Un Feast online store, ad esempio, in genere conserva il valore più recente per ciascuna chiave di entità.
- Materializzazione: Un processo pianificato o in streaming sposta i valori di feature calcolati nell'online store.
- Registry e metadati: Definizioni ricercabili aiutano i team a scoprire, governare, versionare e riutilizzare le feature.
Un'entità identifica ciò che la feature descrive. Potrebbe trattarsi di un ID cliente, un ID prodotto, un ID macchina o un ID telecamera. Un timestamp di evento registra quando il valore era valido anziché quando è stato scritto.
Perché i Feature Store sono importanti#
Un vantaggio importante è la coerenza tra l'addestramento e l'erogazione. Se un modello viene addestrato con un calcolo ma riceve un calcolo leggermente diverso in produzione, lo sfasamento tra addestramento ed erogazione può ridurre la qualità delle previsioni. Definizioni centralizzate e logica di recupero condivisa rendono questo scenario meno probabile.
Il recupero basato sul tempo è altrettanto importante. Una riga di addestramento dovrebbe contenere solo informazioni esistenti quando si è verificato l'evento previsto. I join point-in-time in Feast ricostruiscono tali valori storici, aiutando a prevenire il data leakage da informazioni future. La guida all'erogazione delle feature di Google Cloud enfatizza analogamente i timestamp e le ricerche point-in-time per le feature sensibili al tempo.
I feature store supportano anche:
- Riutilizzo: Più modelli possono consumare feature affidabili senza ricostruire le pipeline.
- Freschezza: Gli aggiornamenti in streaming possono mantenere aggiornati gli input in tempo reale.
- Governance: Proprietà, lignaggio, controlli di accesso e versioni rendono le feature più facili da controllare.
- Monitoraggio: I team possono rilevare valori mancanti, record obsoleti, modifiche agli schemi e data drift.
Queste capacità rendono i feature store una parte importante del MLOps di produzione, specialmente quando molti modelli e team dipendono da dati condivisi.
Confronto tra Feature Store e sistemi correlati#
Un feature store non è semplicemente un altro database.
- Un data lake contiene grandi volumi di dati grezzi o elaborati, mentre un feature store aggiunge definizioni orientate ai modelli, timestamp, logica di recupero e interfacce di erogazione.
- Un vector database è specializzato nella ricerca di similarità su vettori. Un feature store può gestire embedding, ma può anche contenere feature scalari, categoriche, aggregate e di serie temporali.
- Una pipeline di feature engineering calcola le feature; il feature store gestisce ed eroga i valori risultanti.
- Un model registry gestisce le versioni dei modelli e gli artefatti, mentre un feature store gestisce gli input dei modelli.
I sistemi gestiti possono combinare diverse di queste responsabilità. Ad esempio, gli Azure Machine Learning managed feature stores offrono individuazione delle feature, versionamento, materializzazione e recupero storico.
Applicazioni nel mondo reale#
Rilevamento delle frodi: Un modello di pagamento può utilizzare la velocità delle transazioni, l'importo medio degli acquisti, l'età dell'account e il conteggio dei recenti pagamenti non riusciti. L'offline store ricostruisce i valori storici per l'addestramento, mentre l'online store fornisce i valori correnti in pochi millisecondi quando arriva una nuova transazione.
Ispezione di computer vision: Un sistema di produzione può memorizzare conteggi di difetti in corso, stato delle apparecchiature, metadati dei turni e embedding visivi indicizzati per linea di produzione e timestamp. Le feature storiche supportano il riaddestramento, mentre i valori correnti aiutano un modello distribuito a interpretare i nuovi rilevamenti. I team possono gestire immagini, annotazioni, addestramento, distribuzione e monitoraggio con Ultralytics Platform, mentre un feature store separato fornisce gli input operativi.
Ultralytics YOLO26 può generare feature di immagini che potrebbero essere successivamente registrate con ID di entità, timestamp e metadati di versione:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
images = [
"https://ultralytics.com/images/bus.jpg",
"https://ultralytics.com/images/zidane.jpg",
]
embeddings = model.embed(images)
first_image_features = embeddings[0]
print(len(embeddings))
print(first_image_features.shape)Questo esempio esegue l'estrazione delle feature, non la gestione completa del feature store. Un flusso di lavoro di produzione convaliderebbe i vettori, li associerebbe a record e tempi di evento, memorizzerebbe le versioni storiche e monitorerebbe la freschezza e la qualità utilizzando pratiche come quelle nelle linee guida sulla qualità ML di Google Cloud.






