Le seguenti best practice ti aiuteranno a pianificare e utilizzare Vertex AI Feature Store (legacy) in vari scenari. Questa guida non è esaustiva.
Modellare le caratteristiche che descrivono congiuntamente più entità
Alcune funzionalità potrebbero essere applicate 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 consiste nel creare un tipo di entità separato per raggruppare
le funzionalità condivise. Puoi creare un tipo di entità, ad esempio product-user
, per
contenere caratteristiche condivise.
Per gli ID entità, concatena gli ID delle singole entità, ad esempio gli ID entità del singolo prodotto e utente. L'unico requisito è che gli ID devono essere stringhe. Questi tipi di entità combinati sono chiamati tipi di entità compositi.
Per saperne di più, consulta la sezione Creare un tipo di entità.
Utilizzare i criteri IAM per controllare l'accesso in più team
Utilizza ruoli e policy IAM per impostare diversi livelli di accesso per diversi gruppi di utenti. Ad esempio, i ricercatori di ML, i data scientist, DevOps e gli ingegneri dell'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 particolare feature store o tipo di entità utilizzando i criteri IAM a livello di risorsa.
Ad esempio, supponiamo che la tua organizzazione includa le seguenti buyer persona. Poiché ogni persona richiede un livello di accesso diverso, a ogni persona viene assegnato un ruolo IAM predefinito. Puoi anche creare e utilizzare ruoli personalizzati.
Utente tipo | Descrizione | Ruolo predefinito |
---|---|---|
Ricercatore ML o analista aziendale | Utenti che visualizzano solo i dati su 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 tipi di entità specifici. Per le risorse di loro proprietà, possono delegare l'accesso ad altre entità. | roles/aiplatform.entityTypeOwner (può essere concesso a livello di progetto o risorsa) |
IT o DevOps | Utenti che devono gestire e ottimizzare il rendimento di feature store specifici, ma non richiedono l'accesso ai dati. | roles/aiplatform.featurestoreInstanceCreator (può essere
concesso 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 feature store specifici o tutti i feature store di un progetto | roles/aiplatform.featurestoreAdmin (può essere concesso a livello di progetto o risorsa) |
Globale (qualsiasi utente di Vertex AI Feature Store (legacy)) | Consente agli utenti di visualizzare e cercare le funzionalità esistenti. Se trovano una funzionalità con cui vogliono lavorare, possono richiedere l'accesso ai proprietari della funzionalità. Per gli utenti della console Google Cloud , questo ruolo è necessario anche per visualizzare la pagina di destinazione di Vertex AI Feature Store (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 regola le risorse di conseguenza per ottimizzare l'importazione batch
I job di importazione batch richiedono ai worker di elaborare e scrivere i dati, il che può aumentare l'utilizzo della CPU del feature store e influire sulle prestazioni dell'online serving. Se la priorità è preservare le prestazioni della pubblicazione online, inizia con un worker 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 al previsto, aumenta il numero di worker per i futuri job di importazione batch per aumentare la velocità effettiva. Se l'utilizzo della CPU è superiore al previsto, aumenta il numero di nodi di pubblicazione online per aumentare la capacità della CPU o ridurre il conteggio dei worker di importazione batch, entrambi i quali possono ridurre l'utilizzo della CPU.
Se aumenti il numero di nodi di distribuzione online, tieni presente che Vertex AI Feature Store (legacy) impiega circa 15 minuti per raggiungere prestazioni ottimali dopo l'aggiornamento.
Per saperne di più, consulta Aggiornare un feature store e Importare in batch i valori delle caratteristiche.
Per ulteriori informazioni sul monitoraggio di Feature Store, consulta le metriche di Cloud Monitoring.
Utilizzare il campo disableOnlineServing
durante il backfill dei dati storici
Il riempimento è il processo di importazione dei valori storici delle caratteristiche e non influisce sui valori delle caratteristiche più recenti. In questo caso, puoi disattivare la pubblicazione online, che ignora qualsiasi modifica allo store online. Per maggiori informazioni, consulta la pagina Eseguire il backfill dei dati storici.
Utilizza la scalabilità automatica per ridurre i costi durante le fluttuazioni del carico
Se utilizzi Vertex AI Feature Store (legacy) in modo intensivo e riscontri frequenti fluttuazioni del carico nei pattern di traffico, utilizza lo scalabilità automatica per ottimizzare i costi. La scalabilità automatica consente a Vertex AI Feature Store di esaminare i pattern di traffico e regolare automaticamente il numero di nodi in base all'utilizzo della CPU, anziché mantenere un numero elevato di nodi. Questa opzione è ideale per i pattern di traffico che registrano una crescita e un calo graduali.
Per saperne di più sulla scalabilità automatica, consulta Opzioni di scalabilità.
Testare le prestazioni dei nodi di pubblicazione online per la pubblicazione in tempo reale
Puoi verificare il rendimento del tuo feature store durante la pubblicazione online in tempo reale testando il rendimento dei 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 si evitano discrepanze dovute alla latenza di rete derivante da hop 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, attiva l'opzione HTTP keep-alive 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 di durata più lunga (15 minuti o più) e un minimo di 5 QPS per calcolare metriche più accurate.
Aggiungi un periodo di "riscaldamento": se inizi a eseguire i test dopo un periodo di inattività, potresti notare una latenza elevata mentre le connessioni vengono ristabilite. Per tenere conto del periodo iniziale di latenza elevata, puoi designare questo periodo come "periodo di riscaldamento", durante il quale le letture iniziali dei dati vengono ignorate. In alternativa, puoi inviare una velocità bassa ma costante di traffico artificiale al feature store 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 servizio online in base all'utilizzo della CPU.
Per ulteriori informazioni sulla pubblicazione online, consulta la sezione Pubblicazione online. Per saperne di più sui nodi di pubblicazione online, consulta la sezione Nodi di pubblicazione online.
Specifica un orario di inizio per ottimizzare i costi di archiviazione offline durante la pubblicazione batch e l'esportazione batch
Per ottimizzare i costi di archiviazione offline durante recupero dati in batch e l'esportazione 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 al startTime
specificato. In caso contrario, la richiesta esegue query sull'intero volume disponibile di dati delle funzionalità, con conseguenti costi elevati per l'utilizzo dello spazio di archiviazione offline.
Passaggi successivi
Scopri le best practice per l'implementazione di modelli ML addestrati personalizzati su Vertex AI di Vertex AI Feature Store (legacy).