Mit Vertex AI Feature Store können Sie Feature-Monitoring-Jobs planen und ausführen, um Feature-Daten zu überwachen, Feature-Statistiken abzurufen und Feature-Drift zu erkennen. Sie können Featuredaten nur überwachen, wenn Sie Ihre Featuredatenquelle in Feature Registry registriert haben.
Wenn Sie Feature-Daten überwachen möchten, können Sie die FeatureMonitor
-Ressource unter einer FeatureGroup
-Ressource erstellen. Beim Erstellen der FeatureMonitor
-Ressource können Sie den Monitoringzeitplan so konfigurieren, dass Monitoringjobs regelmäßig für die Feature-Daten ausgeführt werden. Alternativ können Sie einen Job zur Funktionsüberwachung manuell ausführen, um Ihre Funktionsdaten außerhalb des Überwachungszeitplans zu überwachen.
Für jeden ausgeführten Monitoring-Job generiert Vertex AI Feature Store eine FeatureMonitorJob
-Ressource, die Sie abrufen können, um die Feature-Statistiken und Informationen zu Drifts in den Feature-Daten anzusehen.
Hinweise
Bevor Sie Features mit dem Vertex AI Feature Store überwachen, müssen Sie die in diesem Abschnitt aufgeführten Voraussetzungen erfüllen.
Datenquelle für Funktionen registrieren
Registrieren Sie Ihre Feature-Datenquelle aus BigQuery in der Feature Registry, indem Sie Featuregruppen und Features erstellen. Die FeatureMonitor
-Ressourcen, die zum Abrufen und Überwachen von Featurestatistiken verwendet werden, sind mit Featuregruppen verknüpft.
Bei Vertex AI authentifizieren
Authentifizieren Sie sich bei Vertex AI, sofern nicht bereits geschehen.
Select the tab for how you plan to use the samples on this page:
Python
Wenn Sie die Python Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
-
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.
Weitere Informationen unter Set up authentication for a local development environment.
REST
Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.
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.
Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.
Featuremonitor mit Monitoring-Zeitplan erstellen
Wenn Sie Featurestatistiken abrufen und überwachen möchten, erstellen Sie eine FeatureMonitor
-Ressource, in der Sie den Zeitplan für die regelmäßige Ausführung von Feature-Monitoring-Jobs und das Abrufen von Featurestatistiken für die in der Featuregruppe registrierten Features angeben.
Verwenden Sie die folgenden Beispiele, um eine FeatureMonitor
-Ressource zu erstellen. Wenn Sie mehrere Zeitpläne für dieselbe Featuregruppe einrichten möchten, müssen Sie mehrere FeatureMonitor
-Ressourcen erstellen.
REST
Senden Sie zum Erstellen einer FeatureMonitor
-Ressource und zum Planen von Feature-Monitoring-Jobs eine POST
-Anfrage mit der Methode featureMonitors.create.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION_ID: Region, in der Sie den Featuremonitor erstellen möchten, z. B.
us-central1
. - PROJECT_ID: Ihre Projekt-ID.
- FEATUREGROUP_NAME: Der Name der Featuregruppe, für die Sie die Featureüberwachung einrichten.
- FEATURE_MONITOR_NAME: Ein Name für den neuen Feature-Monitor, den Sie erstellen möchten.
- FEATURE_ID_1 und FEATURE_ID_2: Die IDs der Features, die Sie beobachten möchten.
- DRIFT_THRESHOLD_1 und DRIFT_THRESHOLD_2: Schwellenwerte für die Abweichung für jedes Feature, das im Feature-Monitor enthalten ist. Der Abweichungsschwellenwert wird verwendet, um Anomalien wie Feature-Abweichungen zu erkennen. Geben Sie einen Wert im Bereich
[0, 1)
ein. Wenn Sie keinen Wert eingeben, wird der Schwellenwert standardmäßig auf0.3
festgelegt.
Vertex AI Feature Store vergleicht die Snapshots aus aufeinanderfolgenden Ausführungen von Feature-Monitor-Jobs und berechnet Abweichungen mit der Funktion ML.TFDV_VALIDATE in BigQuery. Zur Klassifizierung von Anomalien wird die L-Infinity-Entfernung für kategoriale Features und die Jensen-Shannon-Abweichung für numerische Features verwendet. - CRON: Cron-Zeitplanausdruck, der die Häufigkeit für die Ausführung des Feature-Monitoring-Jobs darstellt. Weitere Informationen finden Sie unter Cron.
HTTP-Methode und 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
JSON-Text der Anfrage:
{ "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" } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
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
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$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
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "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
Bevor Sie dieses Beispiel anwenden, folgen Sie den Python-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Python API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
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"
)
Ersetzen Sie Folgendes:
- LOCATION_ID: Region, in der Sie den Featuremonitor erstellen möchten, z. B.
us-central1
. - PROJECT_ID: Ihre Projekt-ID.
- FEATUREGROUP_NAME: Der Name der Featuregruppe, für die Sie die Featureüberwachung einrichten.
- FEATURE_MONITOR_NAME: Ein Name für den neuen Feature-Monitor, den Sie erstellen möchten.
- FEATURE_ID_1 und FEATURE_ID_2: Die IDs der Features, die Sie beobachten möchten.
- DRIFT_THRESHOLD_1 und DRIFT_THRESHOLD_2: Grenzwerte für die Abweichung für jedes Feature, das im Feature-Monitor enthalten ist. Der Drift-Schwellenwert wird verwendet, um Feature-Drift zu erkennen. Geben Sie einen Wert zwischen
0
und1
ein. Wenn Sie keinen Wert eingeben, wird der Schwellenwert standardmäßig auf0.3
festgelegt.
Vertex AI Feature Store vergleicht den Daten-Snapshot aus dem aktuellen Feature-Monitor-Job mit dem Daten-Snapshot aus dem vorherigen Feature-Monitor-Job. Zum Berechnen der Verteilungsabweichung verwendet Vertex AI Feature Store die Funktion ML.TFDV_VALIDATE in BigQuery.
Für den Messwert, der zum Vergleichen von Statistiken verwendet wird, wird die L-Infinity-Entfernung für kategoriale Features und die Jensen-Shannon-Divergenz für numerische Features verwendet. - CRON: Cron-Zeitplanausdruck, der die Häufigkeit für die Ausführung des Feature-Monitoring-Jobs darstellt. Weitere Informationen finden Sie unter Cron.
Feature-Monitoring-Job manuell ausführen
Sie können die Wartezeit zwischen aufeinanderfolgenden geplanten Feature-Monitoringjobs überspringen und einen Feature-Monitoringjob manuell ausführen. Das ist nützlich, wenn Sie Monitoringinformationen abrufen und Anomalien in den Featuredaten sofort erkennen möchten, anstatt auf die nächste geplante Ausführung des Monitoringjobs zu warten.
REST
Wenn Sie einen Feature-Monitoring-Job manuell ausführen möchten, indem Sie eine FeatureMonitorJob
-Ressource erstellen, senden Sie eine POST
-Anfrage mit der Methode featureMonitorJobs.create.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION_ID: Region, in der Sie den Feature-Monitoringjob ausführen möchten, z. B.
us-central1
. - FEATUREGROUP_NAME: Der Name der Featuregruppe, die die
FeatureMonitor
-Ressource enthält. - PROJECT_ID: Ihre Projekt-ID.
- FEATURE_MONITOR_NAME: Der Name der
FeatureMonitor
-Ressource, für die Sie den Feature-Monitoring-Job ausführen möchten.
HTTP-Methode und URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_ID/featureMonitorJobs
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
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
Führen Sie folgenden Befehl aus:
$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
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/featureMonitorJobs/FEATURE_MONITOR_JOB_ID" }
Python
Bevor Sie dieses Beispiel anwenden, folgen Sie den Python-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Python API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
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()
Ersetzen Sie Folgendes:
- LOCATION_ID: Region, in der Sie den Feature-Monitoringjob ausführen möchten, z. B.
us-central1
. - PROJECT_ID: Ihre Projekt-ID.
- FEATUREGROUP_NAME: Der Name der Featuregruppe, die die
FeatureMonitor
-Ressource enthält. - FEATURE_MONITOR_NAME: Der Name der
FeatureMonitor
-Ressource, für die Sie den Feature-Monitoring-Job ausführen möchten.
Funktionsstatistiken aus einem Monitoring-Job abrufen
Sie können Feature-Statistiken für alle Features in einem Feature-Monitoring-Job abrufen, indem Sie die FeatureMonitorJob
-Ressource mit der Feature-Monitoring-Job-ID abrufen, die während der Ausführung des Feature-Monitoring-Jobs generiert wurde. Sie können auch Feature-Statistiken für eine bestimmte Ressource für den letzten Monitoring-Job abrufen.
Featuremonitoringjobs auflisten
Die folgenden Beispiele zeigen, wie Sie eine Liste aller FeatureMonitorJob
-Ressourcen abrufen, die für eine bestimmte FeatureMonitor
-Ressource erstellt wurden.
REST
Wenn Sie eine Liste von FeatureMonitorJob
-Ressourcen für eine bestimmte FeatureMonitor
-Ressource abrufen möchten, senden Sie eine GET
-Anfrage mit der Methode featureMonitorJobs.list.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION_ID: Die Region, in der sich die
Feature
-Ressource befindet, z. B.us-central1
. - PROJECT_ID: Ihre Projekt-ID.
- FEATUREGROUP_NAME: Der Name der Featuregruppe, die die
FeatureMonitor
-Ressource enthält. - FEATURE_MONITOR_NAME: Der Name der
FeatureMonitor
-Ressource, für die Sie die Feature-Monitoring-Jobs auflisten möchten.
HTTP-Methode und URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/featureMonitorJobs
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
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
Führen Sie folgenden Befehl aus:
$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
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "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
Bevor Sie dieses Beispiel anwenden, folgen Sie den Python-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Python API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
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()
Ersetzen Sie Folgendes:
- LOCATION_ID: Die Region, in der sich die
Feature
-Ressource befindet, z. B.us-central1
. - PROJECT_ID: Ihre Projekt-ID.
- FEATUREGROUP_NAME: Der Name der Featuregruppe, die die
FeatureMonitor
-Ressource enthält. - FEATURE_MONITOR_NAME: Der Name der
FeatureMonitor
-Ressource, für die Sie die Feature-Monitoring-Jobs auflisten möchten.
Feature-Statistiken aus einem Monitoringjob ansehen
Die folgenden Beispiele zeigen, wie Sie die Feature-Statistiken für alle Features in einem Feature-Monitoring-Job aufrufen. Für jedes Attribut werden die Statistiken und Anomalien im Format FeatureNameStatistics
angezeigt.
REST
Wenn Sie die Feature-Statistiken aus einem Monitoring-Job ansehen möchten, indem Sie eine FeatureMonitorJob
-Ressource abrufen, senden Sie eine GET
-Anfrage mit der Methode featureMonitorJobs.get.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION_ID: Die Region, in der der Job zur Feature-Überwachung ausgeführt wurde, z. B.
us-central1
. - PROJECT_ID: Ihre Projekt-ID.
- FEATUREGROUP_NAME: Der Name der Featuregruppe, die die
FeatureMonitor
-Ressource enthält. - FEATURE_MONITOR_NAME: Der Name der
FeatureMonitor
-Ressource, für die der Feature-Monitoring-Job ausgeführt wurde. - FEATURE_MONITOR_JOB_ID: Die ID der FeatureMonitorJob-Ressource, die Sie abrufen möchten.
HTTP-Methode und 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
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
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
Führen Sie folgenden Befehl aus:
$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
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "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
Bevor Sie dieses Beispiel anwenden, folgen Sie den Python-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Python API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
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)
Ersetzen Sie Folgendes:
- LOCATION_ID: Die Region, in der der Job zur Feature-Überwachung ausgeführt wurde, z. B.
us-central1
. - PROJECT_ID: Ihre Projekt-ID.
- FEATUREGROUP_NAME: Der Name der Featuregruppe, die die
FeatureMonitor
-Ressource enthält. - FEATURE_MONITOR_NAME: Der Name der
FeatureMonitor
-Ressource, für die der Feature-Monitoring-Job ausgeführt wurde. - FEATURE_MONITOR_JOB_ID: Die ID der
FeatureMonitorJob
-Ressource, die Sie abrufen möchten.
Featurestatistiken für ein Feature ansehen
Sie können die Feature-Statistiken für ein bestimmtes Feature aus den zuletzt ausgeführten Feature-Monitoring-Jobs abrufen, indem Sie die Feature-Details abrufen und die Anzahl der Monitoring-Jobs angeben, aus denen Sie die Statistiken abrufen möchten. Die Statistiken und Anomalien werden im Format FeatureNameStatistics
angezeigt.
Die folgenden Beispiele zeigen, wie Sie die Feature-Statistiken für ein bestimmtes Feature aus einer angegebenen Anzahl der letzten Feature-Monitoring-Jobs aufrufen.
REST
Wenn Sie die Feature-Statistiken für ein bestimmtes Feature in einer Feature
-Ressource aufrufen möchten, senden Sie eine GET
-Anfrage mit der Methode features.get und geben Sie die Anzahl der Monitoring-Jobs an, aus denen die Statistiken abgerufen werden sollen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION_ID: Die Region, in der der Job zur Feature-Überwachung ausgeführt wurde, z. B.
us-central1
. - PROJECT_ID: Ihre Projekt-ID.
- FEATUREGROUP_NAME: der Name der Featuregruppe, die das Feature enthält
- FEATURE_NAME: Der Name der
Feature
-Ressource, für die Sie die Feature-Statistiken abrufen möchten. - LATEST_STATS_COUNT: Die Anzahl der letzten Monitoring-Jobs, aus denen die Feature-Statistiken abgerufen werden sollen.
HTTP-Methode und 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
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
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
Führen Sie folgenden Befehl aus:
$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
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "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
Bevor Sie dieses Beispiel anwenden, folgen Sie den Python-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Python API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
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)
Ersetzen Sie Folgendes:
- LOCATION_ID: Die Region, in der der Job zur Feature-Überwachung ausgeführt wurde, z. B.
us-central1
. - PROJECT_ID: Ihre Projekt-ID.
- FEATUREGROUP_NAME: Der Name der Featuregruppe, die die
FeatureMonitor
-Ressource enthält. - FEATURE_NAME: Der Name des Features, für das Sie die Featurestatistiken abrufen möchten.
- LATEST_STATS_COUNT: Die Anzahl der letzten Monitoring-Jobs, aus denen die Feature-Statistiken abgerufen werden sollen.
Beispielanwendungsfall: Feature-Monitoring zur Erkennung von Feature-Drift verwenden
Mit der Feature-Überwachung können Sie eine Anomalie in Feature-Daten erkennen, die als Feature-Drift bezeichnet wird. Ein Drift ist eine erhebliche und unvorhergesehene Änderung der Featuredaten in BigQuery im Laufe der Zeit. Mit Vertex AI Feature Store können Sie Feature-Drift erkennen, indem Sie den Snapshot zum Zeitpunkt der Ausführung des Monitoring-Jobs mit dem Daten-Snapshot während der vorherigen Ausführung des Monitoring-Jobs vergleichen.
Wenn für ein im Feature-Monitor enthaltenes Feature die Differenz zwischen den beiden Snapshots den im Parameter drift_threshold
angegebenen Grenzwert überschreitet, erkennt Vertex AI Feature Store eine Feature-Abweichung und gibt die folgenden Informationen in der FeatureMonitorJob
-Ressource zurück:
Der Parameter
driftDetected
ist auftrue
festgelegt.Die Abweichung der Verteilung zwischen den beiden Snapshots. Für numerische Features berechnet Vertex AI Feature Store diesen Wert mithilfe der Jensen-Shannon-Abweichung. Für kategoriale Features berechnet Vertex AI Feature Store diesen Wert mit der L-Infinity-Entfernung.
Der Schwellenwert, der durch die Verteilungsabweichung überschritten wurde.
Die folgenden Beispiele zeigen, wie Sie eine FeatureMonitorJob
-Ressource abrufen und prüfen, ob eine Abweichung erkannt wurde.
REST
Senden Sie zum Abrufen einer FeatureMonitorJob
-Ressource eine GET
-Anfrage mit der Methode featureMonitorJobs.get.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION_ID: Die Region, in der der Job zur Feature-Überwachung ausgeführt wurde, z. B.
us-central1
. - PROJECT_ID: Ihre Projekt-ID.
- FEATUREGROUP_NAME: Der Name der Featuregruppe, die die
FeatureMonitor
-Ressource enthält. - FEATURE_MONITOR_NAME: Der Name der
FeatureMonitor
-Ressource, für die der Feature-Monitoring-Job ausgeführt wurde. - FEATURE_MONITOR_JOB_ID: Die ID der
FeatureMonitorJob
-Ressource, die Sie abrufen möchten.
HTTP-Methode und 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
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
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
Führen Sie folgenden Befehl aus:
$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
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "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
Bevor Sie dieses Beispiel anwenden, folgen Sie den Python-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Python API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
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)
Ersetzen Sie Folgendes:
- LOCATION_ID: Die Region, in der der Job zur Feature-Überwachung ausgeführt wurde, z. B.
us-central1
. - PROJECT_ID: Ihre Projekt-ID.
- FEATUREGROUP_NAME: Der Name der Featuregruppe, die die
FeatureMonitor
-Ressource enthält. - FEATURE_MONITOR_NAME: Der Name der
FeatureMonitor
-Ressource, für die der Feature-Monitoring-Job ausgeführt wurde. - FEATURE_MONITOR_JOB_ID: Die ID der
FeatureMonitorJob
-Ressource, die Sie abrufen möchten.
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-07-16 (UTC).