Vertex AI Feature Store ti consente di pianificare ed eseguire job di monitoraggio delle caratteristiche per monitorare i dati delle caratteristiche, recuperare le statistiche delle caratteristiche e rilevare la deviazione delle caratteristiche. Puoi monitorare i dati delle funzionalità solo se hai registrato l'origine dati delle funzionalità nel registro delle funzionalità.
Per monitorare i dati delle funzionalità, puoi creare la risorsa FeatureMonitor
in una risorsa FeatureGroup
. Durante la creazione della risorsa FeatureMonitor
, puoi
configurare la pianificazione del monitoraggio per eseguire periodicamente i job di monitoraggio sui dati delle funzionalità. In alternativa, puoi eseguire manualmente un job di monitoraggio delle funzionalità per monitorare i dati delle funzionalità al di fuori della pianificazione del monitoraggio.
Per ogni job di monitoraggio eseguito, Vertex AI Feature Store
genera una risorsa FeatureMonitorJob
, che puoi recuperare per visualizzare le
statistiche sulle funzionalità e le informazioni sulla deriva rilevata nei dati delle funzionalità.
Prima di iniziare
Prima di monitorare le caratteristiche utilizzando Vertex AI Feature Store, completa i prerequisiti elencati in questa sezione.
Registra l'origine dati delle funzionalità
Registra l'origine dei dati delle caratteristiche da BigQuery nel
registro delle caratteristiche creando
gruppi di caratteristiche e
caratteristiche. Le risorse FeatureMonitor
utilizzate per recuperare e monitorare le statistiche delle funzionalità sono associate ai gruppi di funzionalità.
Autenticarsi in Vertex AI
Autenticati su Vertex AI, a meno che tu non l'abbia già fatto.
Select the tab for how you plan to use the samples on this page:
Python
Per utilizzare gli esempi di Python questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Per ulteriori informazioni, vedi Set up authentication for a local development environment.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Per saperne di più, consulta la sezione Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .
Crea un monitoraggio di funzionalità con una pianificazione del monitoraggio
Per recuperare e monitorare le statistiche sulle funzionalità, crea una risorsa FeatureMonitor
specificando la pianificazione per eseguire periodicamente i job di monitoraggio delle funzionalità e recuperare le statistiche sulle funzionalità registrate nel gruppo di funzionalità.
Utilizza gli esempi riportati di seguito per creare una risorsa FeatureMonitor
. Per configurare
più programmazioni per lo stesso gruppo di funzionalità, devi creare più
risorse FeatureMonitor
.
REST
Per creare una risorsa FeatureMonitor
e pianificare i job di monitoraggio delle funzionalità, invia una richiesta POST
utilizzando il metodo featureMonitors.create.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION_ID: la regione in cui vuoi creare il monitor delle funzionalità, ad esempio
us-central1
. - PROJECT_ID: il tuo ID progetto.
- FEATUREGROUP_NAME: il nome del gruppo di funzionalità in cui hai configurato il monitoraggio delle funzionalità.
- FEATURE_MONITOR_NAME: un nome per il nuovo monitoraggio delle funzionalità che vuoi creare.
- FEATURE_ID_1 e FEATURE_ID_2: gli ID delle funzionalità che vuoi monitorare.
- DRIFT_THRESHOLD_1 e DRIFT_THRESHOLD_2: soglie di deviazione per ogni caratteristica
inclusa nel monitoraggio delle caratteristiche. La soglia di deviazione viene utilizzata per rilevare anomalie, ad esempio
la deviazione delle caratteristiche. Inserisci un valore compreso nell'intervallo
[0, 1)
. Se non inserisci un valore, la soglia è impostata su0.3
per impostazione predefinita.
Vertex AI Feature Store confronta gli snapshot delle esecuzioni consecutive del job di monitoraggio delle funzionalità e calcola le derive utilizzando la funzione ML.TFDV_VALIDATE in BigQuery. Per classificare le anomalie, viene utilizzata la distanza L-infinito per le caratteristiche categoriche e la divergenza di Jensen-Shannon per le caratteristiche numeriche. - CRON: Espressione di pianificazione cron che rappresenta la frequenza di esecuzione del job di monitoraggio delle funzionalità. Per ulteriori informazioni, consulta cron.
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors?feature_monitor_id=FEATURE_MONITOR_NAME
Corpo JSON della richiesta:
{ "feature_selection_config": { "feature_configs": [ {"feature_id":"FEATURE_ID_1", "drift_threshold": "DRIFT_THRESHOLD_1" }, {"feature_id":"FEATURE_ID_2", "drift_threshold": "DRIFT_THRESHOLD_2" } ], }, "schedule_config": { "cron": "CRON" } }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors?feature_monitor_id=FEATURE_MONITOR_NAME"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors?feature_monitor_id=FEATURE_MONITOR_NAME" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.CreateFeatureMonitorOperationMetadata", "genericMetadata": { "createTime": "2024-12-15T19:35:03.975958Z", "updateTime": "2024-12-15T19:35:03.975958Z" } } }
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Python.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
from google.cloud import aiplatform
from vertexai.resources.preview import feature_store
def create_feature_monitor_sample(
project: str,
location: str,
existing_feature_group_id: str,
feature_monitor_id: str,
feature_selection_configs: List[Tuple[str, float]]
schedule_config: str # Cron string. For example, "0 * * * *" indicates hourly execution.
):
aiplatform.init(project="PROJECT_ID", location="LOCATION_ID")
feature_group = feature_store.FeatureGroup("FEATUREGROUP_NAME")
feature_monitor = feature_group.create_feature_monitor(
name= "FEATURE_MONITOR_NAME",
feature_selection_configs=[("FEATURE_ID_1", DRIFT_THRESHOLD_1),("FEATURE_ID_2", DRIFT_THRESHOLD_2)],
schedule_config="CRON"
)
Sostituisci quanto segue:
- LOCATION_ID: la regione in cui vuoi creare il monitor delle funzionalità, ad esempio
us-central1
. - PROJECT_ID: il tuo ID progetto.
- FEATUREGROUP_NAME: il nome del gruppo di funzionalità in cui hai configurato il monitoraggio delle funzionalità.
- FEATURE_MONITOR_NAME: un nome per il nuovo monitoraggio delle funzionalità che vuoi creare.
- FEATURE_ID_1 e FEATURE_ID_2: gli ID delle funzionalità che vuoi monitorare.
- DRIFT_THRESHOLD_1 e DRIFT_THRESHOLD_2: soglie di deviazione per ogni caratteristica
inclusa nel monitor delle caratteristiche. La soglia di deviazione viene utilizzata per rilevare
la deviazione delle caratteristiche. Inserisci un valore compreso tra
0
e1
. Se non inserisci un valore, la soglia è impostata su0.3
per impostazione predefinita.
Vertex AI Feature Store confronta lo snapshot dei dati del job di monitoraggio delle funzionalità corrente con lo snapshot dei dati del job di monitoraggio delle funzionalità precedente. Tieni presente che per calcolare la deviazione della distribuzione, Vertex AI Feature Store utilizza la funzione ML.TFDV_VALIDATE in BigQuery.
Per la metrica utilizzata per confrontare le statistiche, viene utilizzata la distanza L-infinity per le caratteristiche categoriche e la divergenza di Jensen-Shannon per le caratteristiche numeriche. - CRON: espressione di pianificazione cron che rappresenta la frequenza di esecuzione del job di monitoraggio delle funzionalità. Per ulteriori informazioni, consulta cron.
Eseguire manualmente un job di monitoraggio delle funzionalità
Puoi saltare l'attesa tra i job di monitoraggio delle funzionalità pianificati consecutivi ed eseguire manualmente un job di monitoraggio delle funzionalità. Questa funzionalità è utile se vuoi recuperare immediatamente le informazioni di monitoraggio e rilevare anomalie nei dati delle funzionalità invece di attendere l'esecuzione del successivo job di monitoraggio pianificato.
REST
Per eseguire manualmente un job di monitoraggio delle funzionalità creando una risorsa
FeatureMonitorJob
, invia una richiesta POST
utilizzando il metodo
featureMonitorJobs.create.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION_ID: la regione in cui vuoi eseguire il job di monitoraggio delle funzionalità, ad esempio
us-central1
. - FEATUREGROUP_NAME: il nome del gruppo di funzionalità che contiene la risorsa
FeatureMonitor
. - PROJECT_ID: il tuo ID progetto.
- FEATURE_MONITOR_NAME: il nome della risorsa
FeatureMonitor
per cui vuoi eseguire il job di monitoraggio delle funzionalità.
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_ID/featureMonitorJobs
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_ID/featureMonitorJobs"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_ID/featureMonitorJobs" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/featureMonitorJobs/FEATURE_MONITOR_JOB_ID" }
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Python.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
from google.cloud import aiplatform
from vertexai.resources.preview import feature_store
aiplatofrm.init(project="PROJECT_ID", location="LOCATION_ID")
feature_group = FeatureGroup.get("FEATUREGROUP_NAME}")
feature_monitor = feature_group.get_feature_monitor(FEATURE_MONITOR_NAME)
feature_monitor_job = feature_monitor.create_feature_monitor_job()
Sostituisci quanto segue:
- LOCATION_ID: la regione in cui vuoi eseguire il job di monitoraggio delle funzionalità, ad esempio
us-central1
. - PROJECT_ID: il tuo ID progetto.
- FEATUREGROUP_NAME: il nome del gruppo di funzionalità che contiene la risorsa
FeatureMonitor
. - FEATURE_MONITOR_NAME: il nome della risorsa
FeatureMonitor
per cui vuoi eseguire il job di monitoraggio delle funzionalità.
Recuperare le statistiche delle funzionalità da un job di monitoraggio
Puoi recuperare le statistiche delle funzionalità per tutte le funzionalità in un job di monitoraggio delle funzionalità recuperando la risorsa FeatureMonitorJob
utilizzando l'ID del job di monitoraggio delle funzionalità generato durante l'esecuzione del job di monitoraggio delle funzionalità. Puoi anche recuperare
le statistiche delle caratteristiche per una risorsa specifica per l'ultimo job di monitoraggio.
Elenca i job di monitoraggio delle funzionalità
Gli esempi riportati di seguito mostrano come recuperare un elenco di tutte le risorse FeatureMonitorJob
create per una determinata risorsa FeatureMonitor
.
REST
Per recuperare un elenco di risorse FeatureMonitorJob
per una risorsa FeatureMonitor
specificata, invia una richiesta GET
utilizzando il metodo
featureMonitorJobs.list.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION_ID: la regione in cui si trova la risorsa
Feature
, ad esempious-central1
. - PROJECT_ID: il tuo ID progetto.
- FEATUREGROUP_NAME: il nome del gruppo di funzionalità che contiene la risorsa
FeatureMonitor
. - FEATURE_MONITOR_NAME: il nome della risorsa
FeatureMonitor
per cui vuoi elencare i job di monitoraggio delle funzionalità.
Metodo HTTP e URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/featureMonitorJobs
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/featureMonitorJobs"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/featureMonitorJobs" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "featureMonitorJobs": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/featureMonitorJobs/FEATURE_MONITOR_JOB_ID_1", "createTime": "2024-12-18T19:18:18.077161Z", "finalStatus": {}, "featureSelectionConfig": { "featureConfigs": [ { "featureId": "feature_name_1", "driftThreshold": 0.2 }, { "featureId": "feature_name_2", "driftThreshold": 0.2 } ] } }, { "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/featureMonitorJobs/FEATURE_MONITOR_JOB_ID_2", "createTime": "2024-12-19T19:18:30.859921Z", "finalStatus": {}, "featureSelectionConfig": { "featureConfigs": [ { "featureId": "feature_name_1", "driftThreshold": 0.2 }, { "featureId": "feature_name_2", "driftThreshold": 0.2 } ] } } ] }
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Python.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
from google.cloud import aiplatform
from vertexai.resources.preview import feature_store
aiplatofrm.init(project="PROJECT_ID", location="LOCATION_ID")
feature_group = FeatureGroup.get("FEATUREGROUP_NAME")
feature_monitor = feature_group.get_feature_monitor(FEATURE_MONITOR_NAME)
feature_monitor_jobs = feature_monitor.list_feature_monitor_jobs()
Sostituisci quanto segue:
- LOCATION_ID: la regione in cui si trova la risorsa
Feature
, ad esempious-central1
. - PROJECT_ID: il tuo ID progetto.
- FEATUREGROUP_NAME: il nome del gruppo di funzionalità che contiene la risorsa
FeatureMonitor
. - FEATURE_MONITOR_NAME: il nome della risorsa
FeatureMonitor
per cui vuoi elencare i job di monitoraggio delle funzionalità.
Visualizzare le statistiche delle funzionalità da un job di monitoraggio
Gli esempi riportati di seguito mostrano come visualizzare le statistiche delle caratteristiche per tutte le caratteristiche in un job di monitoraggio delle caratteristiche. Per ogni funzionalità, le statistiche e
le anomalie vengono visualizzate nel
formato FeatureNameStatistics
.
REST
Per visualizzare le statistiche delle funzionalità di un job di monitoraggio recuperando una risorsa
FeatureMonitorJob
, invia una richiesta GET
utilizzando il metodo
featureMonitorJobs.get.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION_ID: la regione in cui è stato eseguito il job di monitoraggio delle funzionalità, ad esempio
us-central1
. - PROJECT_ID: il tuo ID progetto.
- FEATUREGROUP_NAME: il nome del gruppo di funzionalità che contiene la risorsa
FeatureMonitor
. - FEATURE_MONITOR_NAME: il nome della risorsa
FeatureMonitor
per cui è stato eseguito il job di monitoraggio delle funzionalità. - FEATURE_MONITOR_JOB_ID: L'ID della risorsa FeatureMonitorJob che vuoi recuperare.
Metodo HTTP e URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/featureMonitorJobs/FEATURE_MONITOR_JOB_ID
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/featureMonitorJobs/FEATURE_MONITOR_JOB_ID"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/featureMonitorJobs/FEATURE_MONITOR_JOB_ID" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/featureMonitorJobs/FEATURE_MONITOR_JOB_ID", "createTime": "2024-12-19T19:18:18.077161Z", "finalStatus": {}, "jobSummary": { "featureStatsAndAnomalies": [ { "featureId": "feature_id_1", "featureStats": { "name": "feature_name_1", "type": "STRING", "stringStats": { "commonStats": { "numNonMissing": "6", "minNumValues": "1", "maxNumValues": "1", "avgNumValues": 1, "numValuesHistogram": { "buckets": [ { "lowValue": 1, "highValue": 1, "sampleCount": 0.6 }, { "lowValue": 1, "highValue": 1, "sampleCount": 0.6 } ], "type": "QUANTILES" }, "totNumValues": "6" }, "unique": "2", "topValues": [ { "value": "59", "frequency": 2 }, { "value": "19", "frequency": 1 } ], "avgLength": 2, "rankHistogram": { "buckets": [ { "label": "59", "sampleCount": 2 }, { "lowRank": "1", "highRank": "1", "label": "19", "sampleCount": 1 } ] } } }, "statsTime": "2024-12-19T19:18:18.077161Z", "featureMonitorJobId": "FEATURE_MONITOR_JOB_ID", "featureMonitorId": "FEATURE_MONITOR_NAME" }, { "featureId": "feature_id_2", "featureStats": { "name": "feature_name_1", "type": "STRING", "stringStats": { "commonStats": { "numNonMissing": "6", "minNumValues": "1", "maxNumValues": "1", "avgNumValues": 1, "numValuesHistogram": { "buckets": [ { "lowValue": 1, "highValue": 1, "sampleCount": 0.6 }, { "lowValue": 1, "highValue": 1, "sampleCount": 0.6 } ], "type": "QUANTILES" }, "totNumValues": "6" }, "unique": "2", "topValues": [ { "value": "59", "frequency": 2 }, { "value": "19", "frequency": 1 } ], "avgLength": 2, "rankHistogram": { "buckets": [ { "label": "59", "sampleCount": 2 }, { "lowRank": "1", "highRank": "1", "label": "19", "sampleCount": 1 } ] } } }, "statsTime": "2024-12-19T19:18:18.077161Z", "featureMonitorJobId": "FEATURE_MONITOR_JOB_ID", "featureMonitorId": "FEATURE_MONITOR_NAME" } ] }, "driftBaseFeatureMonitorJobId": "2250003330000300000", "driftBaseSnapshotTime": "2024-12-12T16:00:01.211686Z", "featureSelectionConfig": { "featureConfigs": [ { "featureId": "feature_id_1", "driftThreshold": 0.2 }, { "featureId": "feature_id_2", "driftThreshold": 0.2 } ] }, "triggerType": "FEATURE_MONITOR_JOB_TRIGGER_ON_DEMAND" }
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Python.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
from google.cloud import aiplatform
from vertexai.resources.preview import feature_store
aiplatofrm.init(project="PROJECT_ID", location="LOCATION_ID")
feature_group = FeatureGroup.get("FEATUREGROUP_NAME"})
feature_monitor = feature_group.get_feature_monitor("FEATURE_MONITOR_NAME")
feature_monitor_job = feature_monitor.get_feature_monitor_job("FEATURE_MONITOR_JOB_ID)")
# Retrieve feature stats and anomalies
feature_stats_and_anomalies = feature_monitor_job.feature_stats_and_anomalies
print(feature_stats_and_anomalies)
Sostituisci quanto segue:
- LOCATION_ID: la regione in cui è stato eseguito il job di monitoraggio delle funzionalità, ad esempio
us-central1
. - PROJECT_ID: il tuo ID progetto.
- FEATUREGROUP_NAME: il nome del gruppo di funzionalità che contiene la risorsa
FeatureMonitor
. - FEATURE_MONITOR_NAME: il nome della risorsa
FeatureMonitor
per cui è stato eseguito il job di monitoraggio delle funzionalità. - FEATURE_MONITOR_JOB_ID: l'ID della risorsa
FeatureMonitorJob
che vuoi recuperare.
Visualizzare le statistiche di una funzionalità
Puoi recuperare le statistiche delle funzionalità per una funzionalità specifica dai job di monitoraggio delle funzionalità più recenti eseguiti recuperando i dettagli della funzionalità e specificando il numero di job di monitoraggio da cui vuoi recuperare le statistiche. Le statistiche e le anomalie vengono visualizzate nel formato
FeatureNameStatistics
.
Gli esempi riportati di seguito mostrano come visualizzare le statistiche delle caratteristiche per una caratteristica specifica di un numero specificato di job di monitoraggio delle caratteristiche recenti.
REST
Per visualizzare le statistiche delle funzionalità per una funzionalità specifica in una risorsa
Feature
, invia una richiesta GET
utilizzando il metodo
features.get e specificando il numero di job di monitoraggio da cui recuperare le statistiche.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION_ID: la regione in cui è stato eseguito il job di monitoraggio delle funzionalità, ad esempio
us-central1
. - PROJECT_ID: il tuo ID progetto.
- FEATUREGROUP_NAME: il nome del gruppo di funzionalità che contiene la funzionalità.
- FEATURE_NAME: il nome della risorsa
Feature
per cui vuoi recuperare le statistiche sulle funzionalità. - LATEST_STATS_COUNT: il numero degli ultimi job di monitoraggio da cui recuperare le statistiche sulle funzionalità.
Metodo HTTP e URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/features/FEATURE_NAME?feature_stats_and_anomaly_spec.latest_stats_count=LATEST_STATS_COUNT
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/features/FEATURE_NAME?feature_stats_and_anomaly_spec.latest_stats_count=LATEST_STATS_COUNT"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/features/FEATURE_NAME?feature_stats_and_anomaly_spec.latest_stats_count=LATEST_STATS_COUNT" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/features/FEATURE_NAME", "createTime": "2024-12-19T21:17:23.373559Z", "updateTime": "2024-12-19T21:17:23.373559Z", "etag": "sample_etag", "featureStatsAndAnomaly": [ { "featureStats": { "name": "FEATURE_NAME", "type": "STRING", "stringStats": { "commonStats": { "numNonMissing": "4", "minNumValues": "1", "maxNumValues": "1", "avgNumValues": 1, "numValuesHistogram": { "buckets": [ { "lowValue": 1, "highValue": 1, "sampleCount": 0.4 }, { "lowValue": 1, "highValue": 1, "sampleCount": 0.4 }, { "lowValue": 1, "highValue": 1, "sampleCount": 0.4 }, { "lowValue": 1, "highValue": 1, "sampleCount": 0.4 } ], "type": "QUANTILES" }, "totNumValues": "4" }, "unique": "4", "topValues": [ { "value": "feature_value_1", "frequency": 1 }, { "value": "feature_value_2", "frequency": 1 }, { "value": "feature_value_3", "frequency": 1 }, { "value": "feature_value_4", "frequency": 1 } ], "avgLength": 4, "rankHistogram": { "buckets": [ { "label": "label_1", "sampleCount": 1 }, { "lowRank": "1", "highRank": "1", "label": "label_2", "sampleCount": 1 }, { "lowRank": "2", "highRank": "2", "label": "label_3", "sampleCount": 1 }, { "lowRank": "3", "highRank": "3", "label": "label_4", "sampleCount": 1 } ] } } }, "driftDetectionThreshold": 0.1, "statsTime": "2024-12-19T22:00:02.734796Z", "featureMonitorJobId": "feature_monitor_job_id_1", "featureMonitorId": "feature_monitor_name_1" } ], "versionColumnName": "version_column_name" }
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Python.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
from google.cloud import aiplatform
from vertexai.resources.preview import feature_store
aiplatofrm.init(project="PROJECT_ID", location="LOCATION_ID")
feature_group = FeatureGroup.get("FEATUREGROUP_NAME"})
feature_stats_and_anomalies = feature_group.get_feature("FEATURE_NAME", latest_stats_count=LATEST_STATS_COUNT)
print(feature_stats_and_anomalies)
Sostituisci quanto segue:
- LOCATION_ID: la regione in cui è stato eseguito il job di monitoraggio delle funzionalità, ad esempio
us-central1
. - PROJECT_ID: il tuo ID progetto.
- FEATUREGROUP_NAME: il nome del gruppo di funzionalità che contiene la risorsa
FeatureMonitor
. - FEATURE_NAME: il nome della funzionalità per cui vuoi recuperare le statistiche.
- LATEST_STATS_COUNT: il numero di job di monitoraggio più recenti da cui recuperare le statistiche sulle funzionalità.
Esempio di caso d'uso: utilizza il monitoraggio delle caratteristiche per rilevare la deviazione delle caratteristiche
Puoi utilizzare il monitoraggio delle caratteristiche per rilevare un'anomalia nei dati delle caratteristiche chiamata deviazione delle caratteristiche. Una deviazione è una modifica significativa e imprevista dei dati delle funzionalità in BigQuery nel tempo. Vertex AI Feature Store ti aiuta a identificare la deriva delle funzionalità confrontando lo snapshot al momento dell'esecuzione del job di monitoraggio con lo snapshot dei dati durante l'esecuzione del job di monitoraggio precedente.
Per qualsiasi funzionalità inclusa nel monitoraggio delle funzionalità, se la differenza tra i
due snapshot supera la soglia specificata nel parametro
drift_threshold
, Vertex AI Feature Store identifica una
deriva delle funzionalità e restituisce le seguenti informazioni nella risorsa FeatureMonitorJob
:
Il parametro
driftDetected
è impostato sutrue
.La deviazione della distribuzione tra i due snapshot. Per le caratteristiche numeriche, Vertex AI Feature Store calcola questo valore utilizzando la divergenza di Jensen-Shannon. Per le caratteristiche categoriche, Vertex AI Feature Store calcola questo valore utilizzando la distanza L-infinito.
La soglia superata dalla deviazione della distribuzione.
Gli esempi riportati di seguito mostrano come recuperare una risorsa FeatureMonitorJob
e verificare se è stato rilevato un drift.
REST
Per recuperare una risorsa FeatureMonitorJob
, invia una richiesta GET
utilizzando il metodo featureMonitorJobs.get.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION_ID: la regione in cui è stato eseguito il job di monitoraggio delle funzionalità, ad esempio
us-central1
. - PROJECT_ID: il tuo ID progetto.
- FEATUREGROUP_NAME: il nome del gruppo di funzionalità che contiene la risorsa
FeatureMonitor
. - FEATURE_MONITOR_NAME: il nome della risorsa
FeatureMonitor
per cui è stato eseguito il job di monitoraggio delle funzionalità. - FEATURE_MONITOR_JOB_ID: l'ID della risorsa
FeatureMonitorJob
che vuoi recuperare.
Metodo HTTP e URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/featureMonitorJobs/FEATURE_MONITOR_JOB_ID
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/featureMonitorJobs/FEATURE_MONITOR_JOB_ID"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/featureMonitorJobs/FEATURE_MONITOR_JOB_ID" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/featureMonitorJobs/FEATURE_MONITOR_JOB_ID", "createTime": "2024-12-14T19:45:30.026522Z", "finalStatus": {}, "jobSummary": { "featureStatsAndAnomalies": [ { "featureId": "feature_id_1", "featureStats": { "name": "feature_name_1", "type": "STRING", "stringStats": { "commonStats": { "numNonMissing": "3", "minNumValues": "1", "maxNumValues": "1", "avgNumValues": 1, "numValuesHistogram": { "buckets": [ { "lowValue": 1, "highValue": 1, "sampleCount": 0.9 }, { "lowValue": 1, "highValue": 1, "sampleCount": 0.9 }, { "lowValue": 1, "highValue": 1, "sampleCount": 0.9 } ], "type": "QUANTILES" }, "totNumValues": "3" }, "unique": "3", "topValues": [ { "value": "sample_value_1", "frequency": 1 }, { "value": "sample_value_2", "frequency": 1 }, { "value": "sample_value_3", "frequency": 1 } ], "avgLength": 3, "rankHistogram": { "buckets": [ { "label": "sample_label_1", "sampleCount": 1 }, { "lowRank": "1", "highRank": "1", "label": "sample_label_2", "sampleCount": 1 }, { "lowRank": "2", "highRank": "3", "label": "sample_label_3", "sampleCount": 1 } ] } } }, "distributionDeviation": 0.1388880008888000, "driftDetectionThreshold": 0.1, "driftDetected": true, "statsTime": "2024-12-15T19:45:37.026522Z", "featureMonitorJobId": "FEATURE_MONITOR_JOB_ID", "featureMonitorId": "FEATURE_MONITOR_NAME" } ] }, "driftBaseFeatureMonitorJobId": "2250003330000300000", "driftBaseSnapshotTime": "2024-12-12T18:18:18.077161Z", "description": "sample_feature_monitor_job_description", "featureSelectionConfig": { "featureConfigs": [ { "featureId": "feature_name", "driftThreshold": 0.1 } ] }, "triggerType": "FEATURE_MONITOR_JOB_TRIGGER_ON_DEMAND" }
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Python.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
from google.cloud import aiplatform
from vertexai.resources.preview import feature_store
aiplatofrm.init(project="PROJECT_ID", location="LOCATION_ID")
feature_group = FeatureGroup.get("FEATUREGROUP_NAME"})
feature_monitor = feature_group.get_feature_monitor("FEATURE_MONITOR_NAME")
feature_monitor_job = feature_monitor.get_feature_monitor_job("FEATURE_MONITOR_JOB_ID)")
# Retrieve feature stats and anomalies
feature_stats_and_anomalies = feature_monitor_job.feature_stats_and_anomalies
print(feature_stats_and_anomalies)
# Check whether drifts are detected
for feature_stats_and_anomalies in feature_monitor_job.feature_stats_and_anomalies:
print("feature: ", feature_stats_and_anomalies.feature_id)
print("distribution deviation: ", feature_stats_and_anomalies.distribution_deviation)
print("drift detected: ", feature_stats_and_anomalies.drift_detected)
Sostituisci quanto segue:
- LOCATION_ID: la regione in cui è stato eseguito il job di monitoraggio delle funzionalità, ad esempio
us-central1
. - PROJECT_ID: il tuo ID progetto.
- FEATUREGROUP_NAME: il nome del gruppo di funzionalità che contiene la risorsa
FeatureMonitor
. - FEATURE_MONITOR_NAME: il nome della risorsa
FeatureMonitor
per cui è stato eseguito il job di monitoraggio delle funzionalità. - FEATURE_MONITOR_JOB_ID: l'ID della risorsa
FeatureMonitorJob
che vuoi recuperare.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-07-14 UTC.