Vertex AI Feature Store te permite programar y ejecutar trabajos de supervisión de atributos para supervisar los datos de atributos, recuperar estadísticas de atributos y detectar la desviación de atributos. Solo puedes supervisar los datos de atributos si registraste tu fuente de datos de atributos en el registro de atributos.
Para supervisar los datos de las funciones, puedes crear el recurso FeatureMonitor
en un recurso FeatureGroup
. Mientras creas el recurso FeatureMonitor
, puedes configurar la programación de la supervisión para ejecutar periódicamente trabajos de supervisión en los datos de las funciones. Como alternativa, puedes ejecutar un trabajo de supervisión de atributos de forma manual para supervisar tus datos de atributos fuera del programa de supervisión.
Para cada trabajo de supervisión que se ejecuta, Vertex AI Feature Store genera un recurso FeatureMonitorJob
, que puedes recuperar para ver las estadísticas de los atributos y la información sobre la desviación detectada en los datos de los atributos.
Antes de comenzar
Antes de supervisar atributos con Vertex AI Feature Store, completa los requisitos previos que se indican en esta sección.
Registra la fuente de datos de atributos
Registra tu fuente de datos de atributos de BigQuery en el registro de atributos creando grupos de atributos y atributos. Los recursos FeatureMonitor
que se usan para recuperar y supervisar las estadísticas de los atributos se asocian con grupos de atributos.
Autentica en Vertex AI
Autentícate en Vertex AI, a menos que ya lo hayas hecho.
Select the tab for how you plan to use the samples on this page:
Python
Para usar las muestras de Python de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
-
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.
Para obtener más información, consulta Set up authentication for a local development environment.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
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.
Si deseas obtener más información, consulta Autentica para usar REST en la Google Cloud documentación de autenticación.
Crea un supervisor de atributos con una programación de supervisión
Para recuperar y supervisar las estadísticas de los atributos, crea un recurso FeatureMonitor
que especifique la programación para ejecutar periódicamente los trabajos de supervisión de atributos y recuperar las estadísticas de los atributos registrados en el grupo de atributos.
Usa los siguientes ejemplos para crear un recurso FeatureMonitor
. Para configurar varios programas para el mismo grupo de funciones, debes crear varios recursos FeatureMonitor
.
REST
Para crear un recurso FeatureMonitor
y programar trabajos de supervisión de atributos, envía una solicitud POST
con el método featureMonitors.create.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- LOCATION_ID: Es la región en la que deseas crear el monitor de atributos, como
us-central1
. - PROJECT_ID: ID del proyecto
- FEATUREGROUP_NAME: Es el nombre del grupo de atributos en el que configuraste la supervisión de atributos.
- FEATURE_MONITOR_NAME: Es un nombre para el nuevo monitor de atributos que deseas crear.
- FEATURE_ID_1 y FEATURE_ID_2: Son los IDs de los atributos que deseas supervisar.
- DRIFT_THRESHOLD_1 y DRIFT_THRESHOLD_2: Son los umbrales de desvío para cada atributo incluido en el monitor de atributos. El umbral de desvío se usa para detectar anomalías, como el desvío de atributos. Ingresa un valor en el rango
[0, 1)
. Si no ingresas un valor, el umbral se establece en0.3
de forma predeterminada.
Vertex AI Feature Store compara las instantáneas de ejecuciones consecutivas del trabajo de supervisión de atributos y calcula las desviaciones con la función ML.TFDV_VALIDATE en BigQuery. Para clasificar las anomalías, se usa la distancia L-infinito para los atributos categóricos y la divergencia de Jensen-Shannon para los atributos numéricos. - CRON: Expresión de programa cron que representa la frecuencia con la que se ejecuta el trabajo de supervisión de funciones. Para obtener más información, consulta cron.
Método HTTP y 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
Cuerpo JSON de la solicitud:
{ "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" } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
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
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Python.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
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"
)
Reemplaza lo siguiente:
- LOCATION_ID: Es la región en la que deseas crear el monitor de atributos, como
us-central1
. - PROJECT_ID: ID del proyecto
- FEATUREGROUP_NAME: Es el nombre del grupo de atributos en el que configuraste la supervisión de atributos.
- FEATURE_MONITOR_NAME: Es un nombre para el nuevo monitor de atributos que deseas crear.
- FEATURE_ID_1 y FEATURE_ID_2: Son los IDs de los atributos que deseas supervisar.
- DRIFT_THRESHOLD_1 y DRIFT_THRESHOLD_2: Son los umbrales de desvío para cada atributo incluido en el monitor de atributos. El umbral de desvío se usa para detectar el desvío de atributos. Ingresa un valor entre
0
y1
. Si no ingresas un valor, el umbral se establece en0.3
de forma predeterminada.
Vertex AI Feature Store compara la instantánea de datos del trabajo de supervisión de atributos actual con la instantánea de datos del trabajo de supervisión de atributos anterior. Ten en cuenta que, para calcular la desviación de la distribución, Vertex AI Feature Store usa la función ML.TFDV_VALIDATE en BigQuery.
Para la métrica que se usa para comparar estadísticas, se usa la distancia L-infinito para los atributos categóricos y la divergencia de Jensen-Shannon para los atributos numéricos. - CRON: Expresión de programa cron que representa la frecuencia con la que se ejecuta el trabajo de supervisión de funciones. Para obtener más información, consulta cron.
Ejecuta un trabajo de supervisión de atributos de forma manual
Puedes omitir la espera entre trabajos de supervisión de atributos programados consecutivos y ejecutar manualmente un trabajo de supervisión de atributos. Esto es útil si deseas recuperar información de supervisión y detectar anomalías en los datos de las funciones de inmediato en lugar de esperar a que se ejecute el siguiente trabajo de supervisión programado.
REST
Para ejecutar manualmente un trabajo de supervisión de atributos creando un recurso FeatureMonitorJob
, envía una solicitud POST
con el método featureMonitorJobs.create.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- LOCATION_ID: Es la región en la que deseas ejecutar el trabajo de supervisión de atributos, como
us-central1
. - FEATUREGROUP_NAME: Es el nombre del grupo de atributos que contiene el recurso
FeatureMonitor
. - PROJECT_ID: ID del proyecto
- FEATURE_MONITOR_NAME: Es el nombre del recurso
FeatureMonitor
para el que deseas ejecutar el trabajo de supervisión de atributos.
Método HTTP y URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_ID/featureMonitorJobs
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente 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
Ejecuta el siguiente 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
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/featureMonitorJobs/FEATURE_MONITOR_JOB_ID" }
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Python.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
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()
Reemplaza lo siguiente:
- LOCATION_ID: Es la región en la que deseas ejecutar el trabajo de supervisión de atributos, como
us-central1
. - PROJECT_ID: ID del proyecto
- FEATUREGROUP_NAME: Es el nombre del grupo de atributos que contiene el recurso
FeatureMonitor
. - FEATURE_MONITOR_NAME: Es el nombre del recurso
FeatureMonitor
para el que deseas ejecutar el trabajo de supervisión de atributos.
Recupera estadísticas de atributos de un trabajo de supervisión
Puedes recuperar las estadísticas de todos los atributos en un trabajo de supervisión de atributos recuperando el recurso FeatureMonitorJob
con el ID del trabajo de supervisión de atributos generado durante la ejecución del trabajo de supervisión de atributos. También puedes recuperar estadísticas de atributos para un recurso específico del trabajo de supervisión más reciente.
Enumera los trabajos de supervisión de atributos
En los siguientes ejemplos, se muestra cómo recuperar una lista de todos los recursos FeatureMonitorJob
creados para un recurso FeatureMonitor
determinado.
REST
Para recuperar una lista de recursos FeatureMonitorJob
para un recurso FeatureMonitor
especificado, envía una solicitud GET
con el método featureMonitorJobs.list.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- LOCATION_ID: Es la región en la que se encuentra el recurso
Feature
, comous-central1
. - PROJECT_ID: ID del proyecto
- FEATUREGROUP_NAME: Es el nombre del grupo de atributos que contiene el recurso
FeatureMonitor
. - FEATURE_MONITOR_NAME: Es el nombre del recurso
FeatureMonitor
para el que deseas enumerar los trabajos de supervisión de atributos.
Método HTTP y URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/featureMonitorJobs
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente 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
Ejecuta el siguiente 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
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Python.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
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()
Reemplaza lo siguiente:
- LOCATION_ID: Es la región en la que se encuentra el recurso
Feature
, comous-central1
. - PROJECT_ID: ID del proyecto
- FEATUREGROUP_NAME: Es el nombre del grupo de atributos que contiene el recurso
FeatureMonitor
. - FEATURE_MONITOR_NAME: Es el nombre del recurso
FeatureMonitor
para el que deseas enumerar los trabajos de supervisión de atributos.
Cómo ver las estadísticas de atributos de un trabajo de supervisión
En los siguientes ejemplos, se muestra cómo ver las estadísticas de todas las variables de un trabajo de supervisión de variables. Para cada atributo, las estadísticas y las anomalías se muestran en el formato FeatureNameStatistics
.
REST
Para ver las estadísticas de atributos de un trabajo de supervisión recuperando un recurso FeatureMonitorJob
, envía una solicitud GET
con el método featureMonitorJobs.get.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- LOCATION_ID: Es la región en la que se ejecutó el trabajo de supervisión de atributos, como
us-central1
. - PROJECT_ID: ID del proyecto
- FEATUREGROUP_NAME: Es el nombre del grupo de atributos que contiene el recurso
FeatureMonitor
. - FEATURE_MONITOR_NAME: Es el nombre del recurso
FeatureMonitor
para el que se ejecutó el trabajo de supervisión de atributos. - FEATURE_MONITOR_JOB_ID: Es el ID del recurso FeatureMonitorJob que deseas recuperar.
Método HTTP y 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
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente 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
Ejecuta el siguiente 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
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Python.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
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)
Reemplaza lo siguiente:
- LOCATION_ID: Es la región en la que se ejecutó el trabajo de supervisión de atributos, como
us-central1
. - PROJECT_ID: ID del proyecto
- FEATUREGROUP_NAME: Es el nombre del grupo de atributos que contiene el recurso
FeatureMonitor
. - FEATURE_MONITOR_NAME: Es el nombre del recurso
FeatureMonitor
para el que se ejecutó el trabajo de supervisión de atributos. - FEATURE_MONITOR_JOB_ID: Es el ID del recurso
FeatureMonitorJob
que deseas recuperar.
Cómo ver las estadísticas de un atributo
Puedes recuperar las estadísticas de un atributo específico de los trabajos de supervisión de atributos más recientes que se ejecutaron. Para ello, recupera los detalles del atributo y especifica la cantidad de trabajos de supervisión de los que deseas recuperar las estadísticas. Las estadísticas y las anomalías se muestran en el formato FeatureNameStatistics
.
En los siguientes ejemplos, se muestra cómo ver las estadísticas de un atributo específico de una cantidad determinada de trabajos recientes de supervisión de atributos.
REST
Para ver las estadísticas de un atributo específico en un recurso Feature
, envía una solicitud GET
con el método features.get y especifica la cantidad de trabajos de supervisión de los que se recuperarán las estadísticas.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- LOCATION_ID: Es la región en la que se ejecutó el trabajo de supervisión de atributos, como
us-central1
. - PROJECT_ID: ID del proyecto
- FEATUREGROUP_NAME: Es el nombre del grupo de atributos que contiene el atributo.
- FEATURE_NAME: Es el nombre del recurso
Feature
para el que deseas recuperar las estadísticas de atributos. - LATEST_STATS_COUNT: Es la cantidad de trabajos de supervisión más recientes de los que se recuperarán las estadísticas de atributos.
Método HTTP y 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
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente 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
Ejecuta el siguiente 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
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Python.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
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)
Reemplaza lo siguiente:
- LOCATION_ID: Es la región en la que se ejecutó el trabajo de supervisión de atributos, como
us-central1
. - PROJECT_ID: ID del proyecto
- FEATUREGROUP_NAME: Es el nombre del grupo de atributos que contiene el recurso
FeatureMonitor
. - FEATURE_NAME: Es el nombre del atributo para el que deseas recuperar las estadísticas.
- LATEST_STATS_COUNT: Es la cantidad de trabajos de supervisión más recientes de los que se recuperarán las estadísticas de atributos.
Ejemplo de caso de uso: Usa la supervisión de atributos para detectar el desvío de atributos
Puedes usar la supervisión de atributos para detectar una anomalía en los datos de atributos llamada desvío de atributos. Un desvío es un cambio significativo e imprevisto en los datos de atributos de BigQuery a lo largo del tiempo. Vertex AI Feature Store te ayuda a identificar el desvío de atributos comparando la instantánea en el momento en que se ejecuta el trabajo de supervisión con la instantánea de datos durante la ejecución del trabajo de supervisión anterior.
Para cualquier atributo incluido en el monitor de atributos, si la diferencia entre las dos instantáneas supera el umbral especificado en el parámetro drift_threshold
, Vertex AI Feature Store identifica una desviación del atributo y devuelve la siguiente información en el recurso FeatureMonitorJob
:
El parámetro
driftDetected
está configurado comotrue
.Es la desviación de la distribución entre las dos instantáneas. Para los atributos numéricos, Vertex AI Feature Store calcula este valor con la divergencia de Jensen-Shannon. Para los atributos categóricos, Vertex AI Feature Store calcula este valor con la distancia L-infinity.
Es el umbral que superó la desviación de la distribución.
En los siguientes ejemplos, se muestra cómo recuperar un recurso FeatureMonitorJob
y verificar si se detectó una desviación.
REST
Para recuperar un recurso FeatureMonitorJob
, envía una solicitud GET
con el método featureMonitorJobs.get.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- LOCATION_ID: Es la región en la que se ejecutó el trabajo de supervisión de atributos, como
us-central1
. - PROJECT_ID: ID del proyecto
- FEATUREGROUP_NAME: Es el nombre del grupo de atributos que contiene el recurso
FeatureMonitor
. - FEATURE_MONITOR_NAME: Es el nombre del recurso
FeatureMonitor
para el que se ejecutó el trabajo de supervisión de atributos. - FEATURE_MONITOR_JOB_ID: Es el ID del recurso
FeatureMonitorJob
que deseas recuperar.
Método HTTP y 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
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente 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
Ejecuta el siguiente 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
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Python.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
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)
Reemplaza lo siguiente:
- LOCATION_ID: Es la región en la que se ejecutó el trabajo de supervisión de atributos, como
us-central1
. - PROJECT_ID: ID del proyecto
- FEATUREGROUP_NAME: Es el nombre del grupo de atributos que contiene el recurso
FeatureMonitor
. - FEATURE_MONITOR_NAME: Es el nombre del recurso
FeatureMonitor
para el que se ejecutó el trabajo de supervisión de atributos. - FEATURE_MONITOR_JOB_ID: Es el ID del recurso
FeatureMonitorJob
que deseas recuperar.
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-07-14 (UTC)