Vertex AI Feature Store ti consente di pianificare ed eseguire job di monitoraggio delle funzionalità per monitorare i dati delle funzionalità, recuperare le statistiche sulle funzionalità e rilevare la deriva delle funzionalità. Puoi monitorare i dati delle funzionalità solo se hai registrato l'origine dati delle funzionalità nel registry 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 in modo da eseguire periodicamente 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 funzionalità utilizzando Vertex AI Feature Store, completa i prerequisiti elencati in questa sezione.
Registra l'origine dati delle funzionalità
Registra l'origine dati delle funzionalità da BigQuery nel
Registro di funzionalità creando
gruppi di funzionalità e
funzionalità. Le risorse FeatureMonitor
utilizzate per recuperare e monitorare le statistiche delle funzionalità sono associate ai gruppi di funzionalità.
Esegui l'autenticazione in Vertex AI
Esegui l'autenticazione su Vertex AI, se non l'hai ancora fatto.
Select the tab for how you plan to use the samples on this page:
Python
Per utilizzare gli Python esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia alla gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Install the Google Cloud CLI.
-
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.
Per ulteriori informazioni, consulta Set up authentication for a local development environment.
REST
Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per saperne di più, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .
Creare un monitoraggio delle funzionalità con una pianificazione del monitoraggio
Per recuperare e monitorare le statistiche delle funzionalità, crea una risorsa FeatureMonitor
specificando la pianificazione per eseguire periodicamente i job di monitoraggio delle funzionalità e
recuperare le statistiche delle funzionalità per le funzionalità registrate nel gruppo di funzionalità.
Utilizza i seguenti esempi per creare una risorsa FeatureMonitor
. Per configurare più pianificazioni 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: regione in cui vuoi creare il monitoraggio delle funzionalità, ad esempio
us-central1
. - PROJECT_ID: l'ID del tuo 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 deriva per ogni caratteristica
inclusa nel monitoraggio delle funzionalità. La soglia di deriva viene utilizzata per rilevare anomalie, come la deriva delle funzionalità. 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 dei 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 delle seguenti 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 Python riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Vertex AI.
Per autenticarti a Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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: regione in cui vuoi creare il monitoraggio delle funzionalità, ad esempio
us-central1
. - PROJECT_ID: l'ID del tuo 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 deriva per ogni caratteristica
inclusa nel monitoraggio delle funzionalità. La soglia di deriva viene utilizzata per rilevare la deriva delle funzionalità. 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 durante il job di monitoraggio delle funzionalità precedente. Tieni presente che per calcolare il punteggio di deriva, Vertex AI Feature Store utilizza la funzione ML.TFDV_VALIDATE in BigQuery.
Per la metrica utilizzata per confrontare le statistiche, la distanza L-infinito viene utilizzata 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 il tempo di attesa tra job di monitoraggio delle funzionalità pianificati consecutivi ed eseguire manualmente un job di monitoraggio delle funzionalità. Questa operazione è utile se vuoi recuperare immediatamente le informazioni di monitoraggio e rilevare anomalie nei dati delle funzionalità anziché 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: regione in cui vuoi eseguire il job di monitoraggio delle funzionalità, ad esempio
us-central1
. - FEATUREGROUP_NAME: il nome del gruppo di funzionalità contenente la risorsa
FeatureMonitor
. - PROJECT_ID: l'ID del tuo 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 delle seguenti 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 Python riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Vertex AI.
Per autenticarti a Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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: regione in cui vuoi eseguire il job di monitoraggio delle funzionalità, ad esempio
us-central1
. - PROJECT_ID: l'ID del tuo progetto.
- FEATUREGROUP_NAME: il nome del gruppo di funzionalità contenente la risorsa
FeatureMonitor
. - FEATURE_MONITOR_NAME: il nome della risorsa
FeatureMonitor
per la quale 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à di 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. Puoi anche recuperare
le statistiche delle funzionalità 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
specifica, invia una richiesta GET
utilizzando il metodo
featureMonitorJobs.list.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION_ID: regione in cui si trova la risorsa
Feature
, ad esempious-central1
. - PROJECT_ID: l'ID del tuo progetto.
- FEATUREGROUP_NAME: il nome del gruppo di funzionalità contenente 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 delle seguenti 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 Python riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Vertex AI.
Per autenticarti a Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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: regione in cui si trova la risorsa
Feature
, ad esempious-central1
. - PROJECT_ID: l'ID del tuo progetto.
- FEATUREGROUP_NAME: il nome del gruppo di funzionalità contenente 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 funzionalità per tutte le funzionalità in un job di monitoraggio delle funzionalità. 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: regione in cui è stato eseguito il job di monitoraggio delle funzionalità, ad esempio
us-central1
. - PROJECT_ID: l'ID del tuo progetto.
- FEATUREGROUP_NAME: il nome del gruppo di funzionalità contenente 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 delle seguenti 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 Python riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Vertex AI.
Per autenticarti a Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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: regione in cui è stato eseguito il job di monitoraggio delle funzionalità, ad esempio
us-central1
. - PROJECT_ID: l'ID del tuo progetto.
- FEATUREGROUP_NAME: il nome del gruppo di funzionalità contenente 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 delle funzionalità per 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 funzionalità per una funzionalità specifica da un numero specificato di job di monitoraggio delle funzionalità recenti.
REST
Per visualizzare le statistiche delle funzionalità per una funzionalità specifica in una
Feature
risorsa, 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: regione in cui è stato eseguito il job di monitoraggio delle funzionalità, ad esempio
us-central1
. - PROJECT_ID: l'ID del tuo progetto.
- FEATUREGROUP_NAME: il nome del gruppo di funzionalità contenente la funzionalità.
- FEATURE_NAME: il nome della risorsa
Feature
per cui vuoi recuperare le statistiche delle funzionalità. - LATEST_STATS_COUNT: il numero degli ultimi job di monitoraggio da cui recuperare le statistiche delle 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 delle seguenti 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 Python riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Vertex AI.
Per autenticarti a Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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: regione in cui è stato eseguito il job di monitoraggio delle funzionalità, ad esempio
us-central1
. - PROJECT_ID: l'ID del tuo progetto.
- FEATUREGROUP_NAME: il nome del gruppo di funzionalità contenente la risorsa
FeatureMonitor
. - FEATURE_NAME: il nome della funzionalità per cui vuoi recuperare le statistiche.
- LATEST_STATS_COUNT: il numero degli ultimi job di monitoraggio da cui recuperare le statistiche delle funzionalità.
Caso d'uso di esempio: utilizza il monitoraggio delle funzionalità per rilevare la deriva delle funzionalità
Puoi utilizzare il monitoraggio delle funzionalità per rilevare un'anomalia nei dati delle funzionalità, chiamata deviazione delle funzionalità. 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 istantanei. Per le funzionalità 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 dal punteggio di deriva.
Gli esempi riportati di seguito mostrano come recuperare una risorsa FeatureMonitorJob
e verificare se è stata rilevata una deriva.
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: regione in cui è stato eseguito il job di monitoraggio delle funzionalità, ad esempio
us-central1
. - PROJECT_ID: l'ID del tuo progetto.
- FEATUREGROUP_NAME: il nome del gruppo di funzionalità contenente 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 delle seguenti 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 Python riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Vertex AI.
Per autenticarti a Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare 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("drift score: ", feature_stats_and_anomalies.distribution_deviation)
print("drift detected: ", feature_stats_and_anomalies.drift_detected)
Sostituisci quanto segue:
- LOCATION_ID: regione in cui è stato eseguito il job di monitoraggio delle funzionalità, ad esempio
us-central1
. - PROJECT_ID: l'ID del tuo progetto.
- FEATUREGROUP_NAME: il nome del gruppo di funzionalità contenente 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-01-08 UTC.