Le seguenti best practice ti aiuteranno a pianificare e utilizzare Vertex AI Feature Store (legacy) in vari scenari. Questa guida non è esaustiva.
Caratteristiche del modello che descrivono congiuntamente più entità
Alcune funzionalità potrebbero essere applicabili a più tipi di entità. Ad esempio, potresti avere un valore calcolato che registra i clic per prodotto per utente. Questa funzionalità descrive congiuntamente le coppie prodotto-utente.
In questo caso, la best practice è creare un tipo di entità separato per raggruppare le funzionalità condivise. Puoi creare un tipo di entità, ad esempio product-user
, per contenere funzionalità condivise.
Per gli ID entità, concatena gli ID delle singole entità, come gli ID entità del singolo prodotto e dell'utente. L'unico requisito è che gli ID debbano essere stringhe. Questi tipi di entità combinate sono chiamati tipi di entità composite.
Per ulteriori informazioni, consulta la sezione Creare un tipo di entità.
Utilizzare i criteri IAM per controllare l'accesso in più team
Utilizza i ruoli e i criteri IAM per impostare diversi livelli di accesso per diversi gruppi di utenti. Ad esempio, ricercatori di ML, data scientist, DevOps e ingegneri di affidabilità del sito richiedono tutti l'accesso allo stesso feature store, ma il loro livello di accesso può variare. Ad esempio, gli utenti DevOps potrebbero richiedere autorizzazioni per gestire un feature store, ma non richiedono l'accesso ai contenuti del feature store.
Puoi anche limitare l'accesso a un determinato tipo di entità o feature store utilizzando i criteri IAM a livello di risorsa.
Ad esempio, immagina che la tua organizzazione includa i seguenti profili. Poiché ogni persona richiede un livello di accesso diverso, a ogni persona viene assegnato un ruolo IAM predefinito diverso. Puoi anche creare e utilizzare i tuoi ruoli personalizzati.
Utente tipo | Descrizione | Ruolo predefinito |
---|---|---|
Ricercatore ML o analista aziendale | Utenti che visualizzano solo i dati relativi a tipi di entità specifici | roles/aiplatform.featurestoreDataViewer (può essere concesso
a livello di progetto o risorsa) |
Data scientist o data engineer | Utenti che lavorano con risorse di tipo di entità specifiche. Per le risorse di loro proprietà, possono delegare l'accesso ad altri principali. | roles/aiplatform.entityTypeOwner (può essere concesso
a livello di progetto o risorsa) |
IT o DevOps | Utenti che devono gestire e ottimizzare il rendimento di specifici feature store, ma che non richiedono l'accesso ai dati. | roles/aiplatform.featurestoreInstanceCreator (può essere concessa
a livello di progetto o risorsa) |
Pipeline di importazione automatica dei dati | Applicazioni che scrivono dati in tipi di entità specifici. | roles/aiplatform.featurestoreDataWriter (può essere concesso
a livello di progetto o risorsa) |
Site Reliability Engineer | Utenti che gestiscono determinati store o tutti gli store di funzionalità in un progetto | roles/aiplatform.featurestoreAdmin (può essere concesso a livello di progetto o risorsa) |
Global (qualsiasi utente di Vertex AI Feature Store (legacy)) | Consenti agli utenti di visualizzare e cercare funzionalità esistenti. Se trova una funzionalità con cui vuole lavorare, può richiedere l'accesso ai suoi proprietari. Per gli utenti della console Google Cloud, questo ruolo è necessario anche per visualizzare la pagina di destinazione del Feature Store di Vertex AI (legacy), la pagina dei job di importazione e la pagina dei job di recupero dati in batch. |
Concedi il ruolo roles/aiplatform.featurestoreResourceViewer
a livello di progetto. |
Monitora e ottimizza le risorse di conseguenza per ottimizzare l'importazione collettiva
I job di importazione batch richiedono ai worker di elaborare e scrivere dati, il che può aumentare l'utilizzo della CPU del tuo feature store e influire sulle prestazioni del servizio online. Se la priorità è preservare il rendimento della pubblicazione online, inizia con un lavoratore per ogni dieci nodi di pubblicazione online. Durante l'importazione, monitora l'utilizzo della CPU dello spazio di archiviazione online. Se l'utilizzo della CPU è inferiore alle aspettative, aumenta il numero di worker per i futuri job di importazione batch per aumentare il throughput. Se l'utilizzo della CPU è superiore alle aspettative, aumenta il numero di nodi di pubblicazione online per aumentare la capacità della CPU o riduci il numero di worker di importazione batch, entrambi i quali possono ridurre l'utilizzo della CPU.
Se aumenti il numero di nodi di pubblicazione online, tieni presente che Vertex AI Feature Store (legacy) impiega circa 15 minuti per raggiungere le prestazioni ottimali dopo l'aggiornamento.
Per ulteriori informazioni, consulta Aggiornare un feature store e Importare in batch i valori delle funzionalità.
Per ulteriori informazioni sul monitoraggio del feature store, consulta le metriche di Cloud Monitoring.
Utilizzare il campo disableOnlineServing
per il backfill dei dati storici
Il backfill è il processo di importazione dei valori delle caratteristiche storiche e non influisce sui valori più recenti. In questo caso, puoi disattivare la pubblicazione online, che ignora eventuali modifiche al negozio online. Per maggiori informazioni, consulta Eseguire il backfill dei dati storici.
Utilizza la scalabilità automatica per ridurre i costi durante le fluttuazioni del carico
Se utilizzi ampiamente Vertex AI Feature Store (legacy) e riscontri frequenti fluttuazioni del carico nei pattern di traffico, utilizza l'autoscaling per ottimizzare i costi. La scalabilità automatica consente a Vertex AI Feature Store (legacy) di esaminare i pattern di traffico e di aggiustare automaticamente il numero di nodi verso l'alto o verso il basso in base all'utilizzo della CPU, anziché mantenere un numero elevato di nodi. Questa opzione è ideale per i modelli di traffico che presentano una crescita e un calo graduali.
Per ulteriori informazioni sulla scalabilità automatica, consulta Opzioni di scalabilità.
Testare le prestazioni dei nodi di pubblicazione online per la pubblicazione in tempo reale
Puoi garantire il rendimento del tuo feature store durante la pubblicazione online in tempo reale testando il rendimento dei tuoi nodi di pubblicazione online. Puoi eseguire questi test in base a vari parametri di benchmarking, come QPS, latenza e API. Segui queste linee guida per testare le prestazioni dei nodi di pubblicazione online:
Esegui tutti i client di test dalla stessa regione, preferibilmente su Compute Engine o Google Kubernetes Engine: in questo modo vengono evitate discrepanze dovute alla latenza della rete derivante dai salti tra regioni.
Utilizza l'API gRPC nell'SDK: l'API gRPC ha un rendimento migliore rispetto all'API REST. Se devi utilizzare l'API REST, abilita l'opzione keep-alive HTTP per riutilizzare le connessioni HTTP. In caso contrario, ogni richiesta comporta la creazione di una nuova connessione HTTP, il che aumenta la latenza.
Esegui test di durata più lunga: esegui test con una durata più lunga (almeno 15 minuti) e un minimo di 5 QPS per calcolare metriche più accurate.
Aggiungi un periodo di "preparazione": se avvii il test dopo un periodo di inattività, potresti notare una latenza elevata durante il ricoinvolgimento delle connessioni. Per tenere conto del periodo iniziale di alta latenza, puoi designarlo come "periodo di riscaldamento", durante il quale le letture iniziali dei dati vengono ignorate. In alternativa, puoi inviare al feature store una frequenza bassa, ma costante, di traffico artificiale per mantenere attiva la connessione.
Se necessario, abilita la scalabilità automatica: se prevedi una crescita e un calo graduali del traffico online, abilita la scalabilità automatica. Se scegli la scalabilità automatica, Vertex AI modifica automaticamente il numero di nodi di pubblicazione online in base all'utilizzo della CPU.
Per ulteriori informazioni sulla pubblicazione online, consulta Pubblicazione online. Per ulteriori informazioni sui nodi di pubblicazione online, consulta Nodi di pubblicazione online.
Specifica un'ora di inizio per ottimizzare i costi di archiviazione offline durante l'esportazione e la pubblicazione batch
Per ottimizzare i costi di archiviazione offline durante l'esportazione e la pubblicazione batch, puoi specificare un startTime
nella richiesta batchReadFeatureValues
o exportFeatureValues
. La richiesta esegue una query su un sottoinsieme dei dati delle funzionalità disponibili, in base a startTime
specificato. In caso contrario, la richiesta esegue query sull'intero volume disponibile di dati delle funzionalità, con conseguenti elevati costi di utilizzo dello spazio di archiviazione offline.