O Vertex AI Feature Store permite programar e executar trabalhos de monitoramento de recursos para monitorar dados de recursos, extrair estatísticas de recursos e detectar desvios de recursos. Só é possível monitorar dados de recursos se você tiver registrado a fonte de dados de recursos no Registro de atributos.
Para monitorar os dados de elementos, crie o recurso FeatureMonitor
em um recurso FeatureGroup
. Ao criar o recurso FeatureMonitor
, você pode
configurar a programação de monitoramento para executar periodicamente jobs de monitoramento nos dados
do recurso. Como alternativa, é possível executar um job de monitoramento de recurso manualmente para monitorar os dados de recursos fora da programação de monitoramento.
Para cada job de monitoramento executado, a Feature Store da Vertex AI
gera um recurso FeatureMonitorJob
, que pode ser recuperado para conferir as
estatísticas de recursos e informações sobre desvios detectados nos dados de recursos.
Antes de começar
Antes de monitorar recursos usando o Vertex AI Feature Store, conclua os pré-requisitos listados nesta seção.
Registrar a origem de dados do elemento
Registre a fonte de dados de recursos do BigQuery no
registro de recursos criando
grupos de recursos e
recursos. Os recursos FeatureMonitor
usados para extrair e monitorar as estatísticas de recursos são associados a grupos de
recursos.
Autenticar na Vertex AI
Faça a autenticação na Vertex AI, a menos que já tenha feito isso.
Select the tab for how you plan to use the samples on this page:
Python
Para usar os exemplos Python desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
- 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.
Confira mais informações em Set up authentication for a local development environment.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Criar um monitor de recursos com uma programação de monitoramento
Para extrair e monitorar as estatísticas de recursos, crie um recurso FeatureMonitor
especificando a programação para executar periodicamente jobs de monitoramento de recursos e
extrair estatísticas de recursos para os recursos registrados no grupo de recursos.
Use os exemplos a seguir para criar um recurso FeatureMonitor
. Para configurar
várias programações para o mesmo grupo de recursos, é necessário criar vários
recursos FeatureMonitor
.
REST
Para criar um recurso FeatureMonitor
e programar jobs de monitoramento de recursos, envie uma solicitação POST
usando o
método
featureMonitors.create.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION_ID: região em que você quer criar o monitor de recursos, como
us-central1
. - PROJECT_ID: o ID do projeto.
- FEATUREGROUP_NAME: o nome do grupo de recursos em que você configurou o monitoramento de recursos.
- FEATURE_MONITOR_NAME: um nome para o novo monitor de recursos que você quer criar.
- FEATURE_ID_1 e FEATURE_ID_2: os IDs dos recursos que você quer monitorar.
- DRIFT_THRESHOLD_1 e DRIFT_THRESHOLD_2: limites de deslocamento para cada recurso
incluído no monitor de recursos. O limite de deslocamento é usado para detectar anomalias, como o deslocamento de atributos. Insira um valor no intervalo
[0, 1)
. Se você não inserir um valor, o limite será definido como0.3
por padrão.
A Vertex AI Feature Store compara os snapshots de execuções consecutivas de jobs de monitoramento de recursos e calcula desvios usando a função ML.TFDV_VALIDATE no BigQuery. Para classificar anomalias, a distância L-infinito é usada para recursos categóricos, e a divergência de Jensen-Shannon é usada para recursos numéricos. - CRON: expressão de programação cron que representa a frequência de execução do job de monitoramento do recurso. Para mais informações, consulte cron.
Método HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors?feature_monitor_id=FEATURE_MONITOR_NAME
Corpo JSON da solicitação:
{ "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 a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
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
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$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
Você receberá uma resposta JSON semelhante a esta:
{ "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 testar esse exemplo, siga as instruções de configuração para Python no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Python.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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"
)
Substitua:
- LOCATION_ID: região em que você quer criar o monitor de recursos, como
us-central1
. - PROJECT_ID: o ID do projeto.
- FEATUREGROUP_NAME: o nome do grupo de recursos em que você configurou o monitoramento de recursos.
- FEATURE_MONITOR_NAME: um nome para o novo monitor de recursos que você quer criar.
- FEATURE_ID_1 e FEATURE_ID_2: os IDs dos recursos que você quer monitorar.
- DRIFT_THRESHOLD_1 e DRIFT_THRESHOLD_2: limites de deslocamento para cada recurso incluído no monitor de recursos. O limite de deslocamento é usado para detectar
deslocamentos de recursos. Insira um valor entre
0
e1
. Se você não inserir um valor, o limite será definido como0.3
por padrão.
O Feature Store da Vertex AI compara o snapshot de dados do job de monitoramento de recursos atual com o snapshot de dados durante o job de monitoramento de recursos anterior. Para calcular a variação da distribuição, o Feature Store da Vertex AI usa a função ML.TFDV_VALIDATE no BigQuery.
Para a métrica usada para comparar estatísticas, a distância L-infinito é usada para recursos categóricos, e a divergência de Jensen-Shannon é usada para recursos numéricos. - CRON: expressão de programação cron que representa a frequência de execução do job de monitoramento do recurso. Para mais informações, consulte cron.
Executar um job de monitoramento de recursos manualmente
Você pode pular a espera entre jobs de monitoramento de recursos programados consecutivos e executar manualmente um job de monitoramento de recursos. Isso é útil se você quiser extrair informações de monitoramento e detectar anomalias nos dados de recursos imediatamente, em vez de esperar a execução do próximo job de monitoramento programado.
REST
Para executar um job de monitoramento de recursos manualmente criando um recurso FeatureMonitorJob
, envie uma solicitação POST
usando o método featureMonitorJobs.create.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION_ID: região em que você quer executar o job de monitoramento de recursos, como
us-central1
. - FEATUREGROUP_NAME: o nome do grupo de elementos que contém o recurso
FeatureMonitor
. - PROJECT_ID: o ID do projeto.
- FEATURE_MONITOR_NAME: o nome do recurso
FeatureMonitor
para o qual você quer executar o job de monitoramento de recursos.
Método HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_ID/featureMonitorJobs
Para enviar a solicitação, escolha uma destas opções:
curl
execute o seguinte 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
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/featureMonitorJobs/FEATURE_MONITOR_JOB_ID" }
Python
Antes de testar esse exemplo, siga as instruções de configuração para Python no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Python.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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()
Substitua:
- LOCATION_ID: região em que você quer executar o job de monitoramento de recursos, como
us-central1
. - PROJECT_ID: o ID do projeto.
- FEATUREGROUP_NAME: o nome do grupo de elementos que contém o recurso
FeatureMonitor
. - FEATURE_MONITOR_NAME: o nome do recurso
FeatureMonitor
para o qual você quer executar o job de monitoramento de recursos.
Extrair estatísticas de recursos de um job de monitoramento
É possível extrair estatísticas de recursos para todos os recursos em um job de monitoramento de recursos
extraindo o recurso FeatureMonitorJob
usando o ID do job
de monitoramento de recursos gerado durante a execução do job de monitoramento de recursos. Também é possível extrair
estatísticas de recursos de um recurso específico para o job de monitoramento mais recente.
Listar jobs de monitoramento de recursos
Os exemplos a seguir mostram como recuperar uma lista de todos os
recursos FeatureMonitorJob
criados para um determinado recurso FeatureMonitor
.
REST
Para recuperar uma lista de recursos FeatureMonitorJob
de um recurso FeatureMonitor
especificado, envie uma solicitação GET
usando o
método
featureMonitorJobs.list.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION_ID: região em que o recurso
Feature
está localizado, comous-central1
. - PROJECT_ID: o ID do projeto.
- FEATUREGROUP_NAME: o nome do grupo de elementos que contém o recurso
FeatureMonitor
. - FEATURE_MONITOR_NAME: o nome do recurso
FeatureMonitor
para o qual você quer listar os jobs de monitoramento de recursos.
Método HTTP e URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/featureMonitorJobs
Para enviar a solicitação, escolha uma destas opções:
curl
execute o seguinte 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
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
{ "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 testar esse exemplo, siga as instruções de configuração para Python no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Python.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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()
Substitua:
- LOCATION_ID: região em que o recurso
Feature
está localizado, comous-central1
. - PROJECT_ID: o ID do projeto.
- FEATUREGROUP_NAME: o nome do grupo de elementos que contém o recurso
FeatureMonitor
. - FEATURE_MONITOR_NAME: o nome do recurso
FeatureMonitor
para o qual você quer listar os jobs de monitoramento de recursos.
Conferir as estatísticas de recursos de um job de monitoramento
Os exemplos a seguir mostram como conferir as estatísticas de todos os recursos em um job de monitoramento de recursos. Para cada atributo, as estatísticas e
as anomalias são exibidas no formato
FeatureNameStatistics
.
REST
Para conferir as estatísticas de um job de monitoramento recuperando um recurso FeatureMonitorJob
, envie uma solicitação GET
usando o método featureMonitorJobs.get.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION_ID: região em que o job de monitoramento de recursos foi executado, como
us-central1
. - PROJECT_ID: o ID do projeto.
- FEATUREGROUP_NAME: o nome do grupo de elementos que contém o recurso
FeatureMonitor
. - FEATURE_MONITOR_NAME: o nome do recurso
FeatureMonitor
para o qual o job de monitoramento de recursos foi executado. - FEATURE_MONITOR_JOB_ID: o ID do recurso FeatureMonitorJob que você quer recuperar.
Método HTTP e URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/featureMonitorJobs/FEATURE_MONITOR_JOB_ID
Para enviar a solicitação, escolha uma destas opções:
curl
execute o seguinte 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
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
{ "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 testar esse exemplo, siga as instruções de configuração para Python no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Python.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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)
Substitua:
- LOCATION_ID: região em que o job de monitoramento de recursos foi executado, como
us-central1
. - PROJECT_ID: o ID do projeto.
- FEATUREGROUP_NAME: o nome do grupo de elementos que contém o recurso
FeatureMonitor
. - FEATURE_MONITOR_NAME: o nome do recurso
FeatureMonitor
para o qual o job de monitoramento de recursos foi executado. - FEATURE_MONITOR_JOB_ID: o ID do recurso
FeatureMonitorJob
que você quer recuperar.
Conferir as estatísticas de um recurso
É possível extrair as estatísticas de um recurso específico dos jobs de monitoramento de recursos mais recentes executados. Para isso, extraia os detalhes do recurso e especifique o número de jobs de monitoramento de onde você quer extrair as estatísticas. As estatísticas e as anomalias são exibidas no formato FeatureNameStatistics
.
Os exemplos a seguir mostram como conferir as estatísticas de um recurso específico de um número especificado de jobs de monitoramento de recursos recentes.
REST
Para conferir as estatísticas de um recurso específico em um recurso Feature
, envie uma solicitação GET
usando o método features.get e especifique o número de jobs de monitoramento para extrair as estatísticas.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION_ID: região em que o job de monitoramento de recursos foi executado, como
us-central1
. - PROJECT_ID: o ID do projeto.
- FEATUREGROUP_NAME: o nome do grupo de recursos que contém o recurso.
- FEATURE_NAME: o nome do recurso
Feature
para o qual você quer extrair as estatísticas do recurso. - LATEST_STATS_COUNT: o número dos jobs de monitoramento mais recentes para extrair as estatísticas do recurso.
Método HTTP e URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/features/FEATURE_NAME?feature_stats_and_anomaly_spec.latest_stats_count=LATEST_STATS_COUNT
Para enviar a solicitação, escolha uma destas opções:
curl
execute o seguinte 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
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
{ "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 testar esse exemplo, siga as instruções de configuração para Python no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Python.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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)
Substitua:
- LOCATION_ID: região em que o job de monitoramento de recursos foi executado, como
us-central1
. - PROJECT_ID: o ID do projeto.
- FEATUREGROUP_NAME: o nome do grupo de elementos que contém o recurso
FeatureMonitor
. - FEATURE_NAME: o nome do recurso para o qual você quer extrair as estatísticas.
- LATEST_STATS_COUNT: o número de jobs de monitoramento mais recentes para extrair as estatísticas do recurso.
Exemplo de caso de uso: usar o monitoramento de recursos para detectar desvios
Você pode usar o monitoramento de recursos para detectar uma anomalia nos dados de recursos chamada de deslocamento de recursos. O deslocamento é uma mudança significativa e imprevista nos dados de recursos no BigQuery ao longo do tempo. O Feature Store da Vertex AI ajuda você a identificar o desvio de recursos comparando o snapshot no momento em que o job de monitoramento é executado com o snapshot de dados durante a execução do job de monitoramento anterior.
Para qualquer recurso incluído no monitor de recursos, se a diferença entre os dois snapshots exceder o limite especificado no parâmetro drift_threshold
, a Vertex AI Feature Store vai identificar um desvio de recurso e retornar as seguintes informações no recurso FeatureMonitorJob
:
O parâmetro
driftDetected
está definido comotrue
.A variação da distribuição entre os dois snapshots. Para atributos numéricos, o Feature Store da Vertex AI calcula esse valor usando a divergência de Jensen-Shannon. Para recursos categóricos, o Feature Store da Vertex AI calcula esse valor usando a distância L-infinito.
O limite que foi excedido pelo desvio de distribuição.
Os exemplos a seguir mostram como recuperar um recurso FeatureMonitorJob
e verificar se uma deriva foi detectada.
REST
Para recuperar um recurso FeatureMonitorJob
, envie uma solicitação GET
usando o método
featureMonitorJobs.get.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION_ID: região em que o job de monitoramento de recursos foi executado, como
us-central1
. - PROJECT_ID: o ID do projeto.
- FEATUREGROUP_NAME: o nome do grupo de elementos que contém o recurso
FeatureMonitor
. - FEATURE_MONITOR_NAME: o nome do recurso
FeatureMonitor
para o qual o job de monitoramento de recursos foi executado. - FEATURE_MONITOR_JOB_ID: o ID do recurso
FeatureMonitorJob
que você quer recuperar.
Método HTTP e URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/featureMonitorJobs/FEATURE_MONITOR_JOB_ID
Para enviar a solicitação, escolha uma destas opções:
curl
execute o seguinte 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
execute o seguinte 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
Você receberá uma resposta JSON semelhante a esta:
{ "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 testar esse exemplo, siga as instruções de configuração para Python no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Python.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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)
Substitua:
- LOCATION_ID: região em que o job de monitoramento de recursos foi executado, como
us-central1
. - PROJECT_ID: o ID do projeto.
- FEATUREGROUP_NAME: o nome do grupo de elementos que contém o recurso
FeatureMonitor
. - FEATURE_MONITOR_NAME: o nome do recurso
FeatureMonitor
para o qual o job de monitoramento de recursos foi executado. - FEATURE_MONITOR_JOB_ID: o ID do recurso
FeatureMonitorJob
que você quer recuperar.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-02-01 UTC.