Le best practice seguenti ti aiuteranno a pianificare e utilizzare Vertex AI Feature Store (legacy) in vari scenari. Questa guida non intende essere esaustiva.
Funzionalità del modello 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 in base all'utente. Questa funzionalità descrive congiuntamente le coppie prodotto-utente.
La best practice, in questo caso, è creare un tipo di entità separato per raggruppare le funzionalità condivise. Puoi creare un tipo di entità, come product-user
, per
contenere le funzionalità condivise.
Per gli ID entità, concatena gli ID delle singole entità, ad esempio gli ID entità del singolo prodotto e dell'utente. L'unico requisito è che gli ID siano stringhe. Questi tipi di entità combinate sono denominati tipi di entità composite.
Per ulteriori informazioni, consulta la sezione sulla creazione di un tipo di entità.
Utilizza i criteri IAM per controllare l'accesso tra più team
Utilizza i ruoli e i criteri IAM per impostare diversi livelli di accesso a diversi gruppi di utenti. Ad esempio, ricercatori ML, data scientist, DevOps e Site Reliability Engineer devono accedere tutti allo stesso archivio di caratteristiche, ma il loro livello di accesso può variare. Ad esempio, gli utenti DevOps potrebbero richiedere autorizzazioni per gestire un archivio di caratteristiche, ma non per accedere ai relativi contenuti.
Puoi anche limitare l'accesso a un particolare archivio di caratteristiche o tipo di entità utilizzando i criteri IAM a livello di risorsa.
Ad esempio, immagina che la tua organizzazione includa i seguenti utenti tipo. Poiché ogni utente tipo richiede un livello di accesso diverso, a ogni utente viene assegnato un ruolo IAM predefinito diverso. Puoi anche creare e utilizzare ruoli personalizzati.
Utente tipo | Descrizione | Ruolo predefinito |
---|---|---|
Ricercatore o analista aziendale sul machine learning | Utenti che visualizzano solo i dati relativi a tipi di entità specifici | roles/aiplatform.featurestoreDataViewer (può essere concesso a livello di progetto o di risorsa) |
Data scientist o data engineer | Utenti che lavorano con risorse specifiche per i tipi di entità. Per le risorse di loro proprietà, possono delegare l'accesso ad altre entità. | roles/aiplatform.entityTypeOwner (può essere concesso a livello di progetto o di risorsa) |
IT o DevOps | Utenti che devono gestire e ottimizzare le prestazioni di archivi di caratteristiche specifici, ma non hanno bisogno di accedere ai dati. | roles/aiplatform.featurestoreInstanceCreator (può essere
concesso a livello di progetto o di risorsa) |
Pipeline di importazione automatica dei dati | Applicazioni che scrivono dati su tipi di entità specifici. | roles/aiplatform.featurestoreDataWriter (può essere concesso
a livello di progetto o di risorsa) |
Site Reliability Engineer | Utenti che gestiscono determinati featurestore o tutti gli archivi di caratteristiche in un progetto | roles/aiplatform.featurestoreAdmin (può essere concesso a livello di progetto o di risorsa) |
Globale (qualsiasi utente Vertex AI Feature Store (legacy)) | Consenti agli utenti di visualizzare e cercare le funzionalità esistenti. Se trovano una funzionalità su cui vuole lavorare, può richiedere l'accesso ai relativi proprietari. 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 ottimizza le risorse di conseguenza per ottimizzare l'importazione batch
I job di importazione batch richiedono ai worker di elaborare e scrivere dati, il che può aumentare l'utilizzo della CPU del tuo archivio di caratteristiche e influire sulle prestazioni della pubblicazione online. Se la conservazione delle prestazioni della pubblicazione online è una priorità, inizia con un worker 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 job di importazione batch futuri 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 numero di worker di importazione batch. Entrambi i casi 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 prestazioni ottimali dopo aver eseguito l'aggiornamento.
Per ulteriori informazioni, consulta Aggiornare un archivio di caratteristiche e Importare in gruppo i valori delle caratteristiche.
Per ulteriori informazioni sul monitoraggio dell'archivio di caratteristiche, consulta Metriche di Cloud Monitoring.
Utilizza il campo disableOnlineServing
per il backfill dei dati storici
Il backfill è il processo di importazione dei valori storici delle caratteristiche e non influisce sui valori delle caratteristiche più recenti. In questo caso, puoi disabilitare la pubblicazione online in modo da saltare qualsiasi modifica al negozio online. Per ulteriori informazioni, consulta la sezione Dati storici di backfill.
Utilizza la scalabilità automatica per ridurre i costi durante le fluttuazioni del carico
Se utilizzi in modo intensivo Vertex AI Feature Store (legacy) e riscontri frequenti fluttuazioni del carico nei pattern di traffico, utilizza la scalabilità automatica per ottimizzare i costi. La scalabilità automatica consente a Vertex AI Feature Store (legacy) di esaminare i pattern di traffico e di regolare automaticamente il numero di nodi in base all'utilizzo della CPU, invece di mantenere un numero elevato di nodi. Questa opzione funziona bene per modelli di traffico che presentano una crescita e una diminuzione graduali.
Per saperne di più sulla scalabilità automatica, consulta Opzioni di scalabilità.
Testa le prestazioni dei nodi di pubblicazione online per la pubblicazione in tempo reale
Puoi garantire le prestazioni del tuo archivio di caratteristiche durante la pubblicazione online in tempo reale testando le prestazioni 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 derivanti dagli hop tra le regioni.
Utilizzo dell'API gRPC nell'SDK: l'API gRPC ha prestazioni migliori dell'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, che aumenta la latenza.
Esegui test di durata maggiore: esegui test con una durata maggiore (almeno 15 minuti) e con un minimo di 5 QPS per calcolare metriche più accurate.
Aggiungi un periodo di "preparazione": se inizi il test dopo un periodo di inattività, potresti notare un'elevata latenza mentre le connessioni vengono ripristinate. Per tenere conto del periodo iniziale di alta latenza, puoi designare questo periodo come un "periodo di preparazione", in cui le letture iniziali dei dati vengono ignorate. In alternativa, puoi inviare un tasso di traffico artificiale basso ma costante al featurestore per mantenere attiva la connessione.
Se necessario, abilita la scalabilità automatica: abilita la scalabilità automatica se prevedi una crescita graduale e una riduzione del traffico online. 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 la sezione Pubblicazione online. Per saperne di più sui nodi di pubblicazione online, consulta Nodi di pubblicazione online.
Specifica un'ora di inizio per ottimizzare i costi di archiviazione offline durante l'elaborazione in batch e l'esportazione in batch
Per ottimizzare i costi di archiviazione offline durante recupero dati in batch e l'esportazione in 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 valore startTime
specificato. In caso contrario, la richiesta esegue query sull'intero volume disponibile di dati delle funzionalità, con un conseguente costo elevato di utilizzo dell'archiviazione offline.