Vertex AI Feature Store te permite programar y ejecutar tareas de supervisión de atributos para supervisar los datos de atributos, recuperar estadísticas de atributos y detectar el desvío de atributos. Puedes supervisar los datos de atributos solo si registraste tu fuente de datos de atributos en el registro de atributos.
Para supervisar los datos de componentes, puedes crear el recurso FeatureMonitor
en un recurso FeatureGroup
. Mientras creas el recurso FeatureMonitor
, puedes configurar el programa de supervisión para que ejecute trabajos de supervisión de forma periódica en los datos de atributos. 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 el desvío detectado en los datos de atributos.
Antes de comenzar
Antes de supervisar las funciones con Vertex AI Feature Store, completa los requisitos previos que se indican en esta sección.
Registra la fuente de datos de componentes
Registra tu fuente de datos de atributos de BigQuery en el
registro de funciones. Para ello, crea
grupos de atributos y
atributos. Los recursos FeatureMonitor
que se usan para recuperar y supervisar las estadísticas de atributos están asociados con los 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.
-
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.
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.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud .
Crea un supervisor de atributos con un programa de supervisión
Para recuperar y supervisar las estadísticas de atributos, crea un recurso FeatureMonitor
en el que especifiques el programa para ejecutar trabajos de supervisión de atributos de forma periódica y recuperar las estadísticas de atributos de los atributos registrados en el grupo de atributos.
Usa las siguientes muestras para crear un recurso FeatureMonitor
. Para configurar varios programas para el mismo grupo de componentes, 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: Los IDs de los atributos que deseas supervisar.
- DRIFT_THRESHOLD_1 y DRIFT_THRESHOLD_2: Umbrales de desvío para cada función incluida 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 de trabajos del monitor de atributos y calcula los desvíos con la función ML.TFDV_VALIDATE en BigQuery. Para clasificar las anomalías, se usa la distancia infinita L 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 para ejecutar el trabajo de supervisión de atributos. 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: Los IDs de los atributos que deseas supervisar.
- DRIFT_THRESHOLD_1 y DRIFT_THRESHOLD_2: Umbrales de desvío para cada función incluida 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 de la tarea de supervisión de atributos actual con la instantánea de datos de la tarea 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 de 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 para ejecutar el trabajo de supervisión de atributos. Para obtener más información, consulta cron.
Ejecuta un trabajo de supervisión de atributos de forma manual
Puedes omitir el tiempo de espera entre trabajos consecutivos de supervisión de atributos programados y ejecución manual de 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 funciones de inmediato, en lugar de esperar a que se ejecute la siguiente tarea de supervisión programada.
REST
Para ejecutar un trabajo de supervisión de atributos de forma manual mediante la creación de 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.
Cómo recuperar estadísticas de atributos de un trabajo de supervisión
Para recuperar las estadísticas de atributos de todas las funciones de un trabajo de supervisión de atributos, recupera 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
las estadísticas de atributos de un recurso específico para el trabajo de supervisión más reciente.
Cómo enumerar 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 atributos de todos los atributos en un trabajo de supervisión de atributos. Para cada componente, 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: 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
Para recuperar las estadísticas de una función específica de los trabajos de supervisión de funciones más recientes que se ejecutaron, recupera los detalles de la función 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 una función específica a partir de una cantidad especificada de trabajos de supervisión de funciones recientes.
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 deseas recuperar 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 y imprevisto en los datos de atributos de BigQuery con el tiempo. Vertex AI Feature Store te ayuda a identificar el desvío de atributos comparando la instantánea del 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 un
desvío de atributos y muestra 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 infinita L.
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ó un desplazamiento.
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-02-01 (UTC)