Vertex AI Feature Store memungkinkan Anda menjadwalkan dan menjalankan tugas pemantauan fitur untuk memantau data fitur, mengambil statistik fitur, dan mendeteksi penyimpangan fitur. Anda dapat memantau data fitur hanya jika Anda telah mendaftarkan sumber data fitur di Feature Registry.
Untuk memantau data fitur, Anda dapat membuat resource FeatureMonitor
di bawah resource
FeatureGroup
. Saat membuat resource FeatureMonitor
, Anda dapat
mengonfigurasi jadwal pemantauan untuk menjalankan tugas pemantauan secara berkala pada data
fitur. Atau, Anda dapat menjalankan tugas pemantauan fitur secara manual untuk memantau data fitur di luar jadwal pemantauan.
Untuk setiap tugas pemantauan yang dijalankan, Vertex AI Feature Store
menghasilkan resource FeatureMonitorJob
, yang dapat Anda ambil untuk melihat
statistik fitur dan informasi tentang penyimpangan yang terdeteksi dalam data fitur.
Sebelum memulai
Sebelum memantau fitur menggunakan Vertex AI Feature Store, selesaikan prasyarat yang tercantum di bagian ini.
Mendaftarkan sumber data fitur
Daftarkan sumber data fitur Anda dari BigQuery di
Feature Registry dengan membuat
grup fitur dan
fitur. Resource FeatureMonitor
yang digunakan untuk mengambil dan memantau statistik fitur dikaitkan dengan grup fitur.
Melakukan autentikasi ke Vertex AI
Lakukan autentikasi ke Vertex AI, kecuali jika Anda telah melakukannya.
Select the tab for how you plan to use the samples on this page:
Python
Untuk menggunakan contoh Python di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
-
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.
Untuk informasi selengkapnya, lihat Set up authentication for a local development environment.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
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.
Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud .
Membuat monitor fitur dengan jadwal pemantauan
Untuk mengambil dan memantau statistik fitur, buat resource FeatureMonitor
dengan menentukan jadwal untuk menjalankan tugas pemantauan fitur secara berkala dan mengambil statistik fitur untuk fitur yang terdaftar dalam grup fitur.
Gunakan contoh berikut untuk membuat resource FeatureMonitor
. Untuk menyiapkan
beberapa jadwal untuk grup fitur yang sama, Anda harus membuat beberapa
resource FeatureMonitor
.
REST
Untuk membuat resource FeatureMonitor
dan menjadwalkan tugas pemantauan fitur, kirim permintaan POST
menggunakan
metode
featureMonitors.create.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION_ID: Region tempat Anda ingin membuat pemantau fitur, seperti
us-central1
. - PROJECT_ID: Project ID Anda.
- FEATUREGROUP_NAME: Nama grup fitur tempat Anda menyiapkan pemantauan fitur.
- FEATURE_MONITOR_NAME: Nama untuk pemantau fitur baru yang ingin Anda buat.
- FEATURE_ID_1 dan FEATURE_ID_2: ID fitur yang ingin Anda pantau.
- DRIFT_THRESHOLD_1 dan DRIFT_THRESHOLD_2: Nilai minimum penyimpangan untuk setiap fitur
yang disertakan dalam pemantau fitur. Nilai minimum penyimpangan digunakan untuk mendeteksi anomali, seperti
penyimpangan fitur. Masukkan nilai dalam rentang
[0, 1)
. Jika Anda tidak memasukkan nilai, nilai minimum akan ditetapkan ke0.3
secara default.
Vertex AI Feature Store membandingkan snapshot dari eksekusi tugas pemantauan fitur berurutan dan menghitung penyimpangan menggunakan fungsi ML.TFDV_VALIDATE di BigQuery. Untuk mengklasifikasikan anomali, jarak L-infinity digunakan untuk fitur kategoris dan divergensi Jensen-Shannon digunakan untuk fitur numerik. - CRON: Ekspresi jadwal cron yang merepresentasikan frekuensi untuk menjalankan tugas pemantauan fitur. Untuk mengetahui informasi selengkapnya, lihat cron.
Metode HTTP dan 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
Isi JSON permintaan:
{ "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" } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
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
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$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
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
{ "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
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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"
)
Ganti kode berikut:
- LOCATION_ID: Region tempat Anda ingin membuat pemantau fitur, seperti
us-central1
. - PROJECT_ID: Project ID Anda.
- FEATUREGROUP_NAME: Nama grup fitur tempat Anda menyiapkan pemantauan fitur.
- FEATURE_MONITOR_NAME: Nama untuk pemantau fitur baru yang ingin Anda buat.
- FEATURE_ID_1 dan FEATURE_ID_2: ID fitur yang ingin Anda pantau.
- DRIFT_THRESHOLD_1 dan DRIFT_THRESHOLD_2: Nilai minimum penyimpangan untuk setiap Fitur
yang disertakan dalam pemantau fitur. Ambang batas penyimpangan digunakan untuk mendeteksi
penyimpangan fitur. Masukkan nilai antara
0
dan1
. Jika Anda tidak memasukkan nilai, nilai minimum ditetapkan ke0.3
secara default.
Vertex AI Feature Store membandingkan snapshot data dari tugas pemantauan fitur saat ini dengan snapshot data selama tugas pemantauan fitur sebelumnya. Perhatikan bahwa untuk menghitung penyimpangan distribusi, Vertex AI Feature Store menggunakan fungsi ML.TFDV_VALIDATE di BigQuery.
Untuk metrik yang digunakan untuk membandingkan statistik, L-infinity distance digunakan untuk fitur kategoris dan Jensen-Shannon divergence digunakan untuk fitur numerik. - CRON: Ekspresi jadwal cron yang merepresentasikan frekuensi untuk menjalankan tugas pemantauan fitur. Untuk mengetahui informasi selengkapnya, lihat cron.
Menjalankan tugas pemantauan fitur secara manual
Anda dapat melewati waktu tunggu antara tugas pemantauan fitur terjadwal yang berurutan dan menjalankan tugas pemantauan fitur secara manual. Hal ini berguna jika Anda ingin mengambil informasi pemantauan dan mendeteksi anomali dalam data fitur segera, bukan menunggu hingga tugas pemantauan terjadwal berikutnya dijalankan.
REST
Untuk menjalankan tugas pemantauan fitur secara manual dengan membuat resource
FeatureMonitorJob
, kirim permintaan POST
menggunakan metode
featureMonitorJobs.create.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION_ID: Region tempat Anda ingin menjalankan tugas pemantauan fitur, seperti
us-central1
. - FEATUREGROUP_NAME: Nama grup fitur yang berisi resource
FeatureMonitor
. - PROJECT_ID: Project ID Anda.
- FEATURE_MONITOR_NAME: Nama resource
FeatureMonitor
yang ingin Anda jalankan tugas pemantauan fiturnya.
Metode HTTP dan URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_ID/featureMonitorJobs
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
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
Jalankan perintah berikut:
$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
Anda akan menerima respons JSON yang mirip seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/featureMonitorJobs/FEATURE_MONITOR_JOB_ID" }
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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()
Ganti kode berikut:
- LOCATION_ID: Region tempat Anda ingin menjalankan tugas pemantauan fitur, seperti
us-central1
. - PROJECT_ID: Project ID Anda.
- FEATUREGROUP_NAME: Nama grup fitur yang berisi resource
FeatureMonitor
. - FEATURE_MONITOR_NAME: Nama resource
FeatureMonitor
yang ingin Anda jalankan tugas pemantauan fiturnya.
Mengambil statistik fitur dari tugas pemantauan
Anda dapat mengambil statistik fitur untuk semua fitur dalam tugas pemantauan fitur dengan mengambil resource FeatureMonitorJob
menggunakan ID tugas pemantauan fitur yang dihasilkan selama eksekusi tugas pemantauan fitur. Anda juga dapat mengambil
statistik fitur untuk resource tertentu untuk tugas pemantauan terbaru.
Mencantumkan tugas pemantauan fitur
Contoh berikut menunjukkan cara mengambil daftar semua resource
FeatureMonitorJob
yang dibuat untuk resource FeatureMonitor
tertentu.
REST
Untuk mengambil daftar resource FeatureMonitorJob
untuk resource FeatureMonitor
yang ditentukan, kirim permintaan GET
menggunakan metode
featureMonitorJobs.list.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION_ID: Region tempat resource
Feature
berada, sepertius-central1
. - PROJECT_ID: Project ID Anda.
- FEATUREGROUP_NAME: Nama grup fitur yang berisi resource
FeatureMonitor
. - FEATURE_MONITOR_NAME: Nama resource
FeatureMonitor
yang ingin Anda cantumkan tugas pemantauan fiturnya.
Metode HTTP dan URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/featureMonitors/FEATURE_MONITOR_NAME/featureMonitorJobs
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
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
Jalankan perintah berikut:
$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
Anda akan menerima respons JSON yang mirip seperti berikut:
{ "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
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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()
Ganti kode berikut:
- LOCATION_ID: Region tempat resource
Feature
berada, sepertius-central1
. - PROJECT_ID: Project ID Anda.
- FEATUREGROUP_NAME: Nama grup fitur yang berisi resource
FeatureMonitor
. - FEATURE_MONITOR_NAME: Nama resource
FeatureMonitor
yang ingin Anda cantumkan tugas pemantauan fiturnya.
Melihat statistik fitur dari tugas pemantauan
Contoh berikut menunjukkan cara melihat statistik fitur untuk semua
fitur dalam tugas pemantauan fitur. Untuk setiap fitur, statistik dan anomali ditampilkan dalam format FeatureNameStatistics
.
REST
Untuk melihat statistik fitur dari tugas pemantauan dengan mengambil resource
FeatureMonitorJob
, kirim permintaan GET
menggunakan
metode
featureMonitorJobs.get.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION_ID: Region tempat tugas pemantauan fitur dijalankan, seperti
us-central1
. - PROJECT_ID: Project ID Anda.
- FEATUREGROUP_NAME: Nama grup fitur yang berisi resource
FeatureMonitor
. - FEATURE_MONITOR_NAME: Nama resource
FeatureMonitor
tempat tugas pemantauan fitur dijalankan. - FEATURE_MONITOR_JOB_ID: ID resource FeatureMonitorJob yang ingin Anda ambil.
Metode HTTP dan 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
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
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
Jalankan perintah berikut:
$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
Anda akan menerima respons JSON yang mirip seperti berikut:
{ "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
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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)
Ganti kode berikut:
- LOCATION_ID: Region tempat tugas pemantauan fitur dijalankan, seperti
us-central1
. - PROJECT_ID: Project ID Anda.
- FEATUREGROUP_NAME: Nama grup fitur yang berisi resource
FeatureMonitor
. - FEATURE_MONITOR_NAME: Nama resource
FeatureMonitor
tempat tugas pemantauan fitur dijalankan. - FEATURE_MONITOR_JOB_ID: ID resource
FeatureMonitorJob
yang ingin Anda ambil.
Melihat statistik fitur untuk sebuah fitur
Anda dapat mengambil statistik fitur untuk fitur tertentu dari tugas pemantauan fitur terbaru yang dijalankan, dengan mengambil detail fitur dan menentukan jumlah tugas pemantauan yang ingin Anda ambil statistiknya. Statistik dan anomali ditampilkan dalam format
FeatureNameStatistics
.
Contoh berikut menunjukkan cara melihat statistik fitur untuk fitur tertentu dari sejumlah tugas pemantauan fitur terbaru yang ditentukan.
REST
Untuk melihat statistik fitur untuk fitur tertentu dalam resource
Feature
, kirim permintaan GET
menggunakan metode
features.get
dan tentukan jumlah tugas pemantauan untuk mengambil statistiknya.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION_ID: Region tempat tugas pemantauan fitur dijalankan, seperti
us-central1
. - PROJECT_ID: Project ID Anda.
- FEATUREGROUP_NAME: Nama grup fitur yang berisi fitur.
- FEATURE_NAME: Nama resource
Feature
yang statistik fiturnya ingin Anda ambil. - LATEST_STATS_COUNT: Jumlah tugas pemantauan terbaru untuk mengambil statistik fitur.
Metode HTTP dan 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
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
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
Jalankan perintah berikut:
$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
Anda akan menerima respons JSON yang mirip seperti berikut:
{ "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
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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)
Ganti kode berikut:
- LOCATION_ID: Region tempat tugas pemantauan fitur dijalankan, seperti
us-central1
. - PROJECT_ID: Project ID Anda.
- FEATUREGROUP_NAME: Nama grup fitur yang berisi resource
FeatureMonitor
. - FEATURE_NAME: Nama fitur yang statistik fiturnya ingin Anda ambil.
- LATEST_STATS_COUNT: Jumlah tugas pemantauan terbaru untuk mengambil statistik fitur.
Contoh kasus penggunaan: Menggunakan pemantauan fitur untuk mendeteksi penyimpangan fitur
Anda dapat menggunakan pemantauan fitur untuk mendeteksi anomali dalam data fitur yang disebut penyimpangan fitur. Penyimpangan adalah perubahan signifikan dan tak terduga pada data fitur di BigQuery dari waktu ke waktu. Vertex AI Feature Store membantu Anda mengidentifikasi penyimpangan fitur dengan membandingkan snapshot pada saat tugas pemantauan dijalankan, dengan snapshot data selama eksekusi tugas pemantauan sebelumnya.
Untuk setiap fitur yang disertakan dalam pemantau fitur, jika perbedaan antara
dua snapshot melebihi nilai minimum yang ditentukan dalam parameter
drift_threshold
, Vertex AI Feature Store akan mengidentifikasi
penyimpangan fitur dan menampilkan informasi berikut dalam resource FeatureMonitorJob
:
Parameter
driftDetected
disetel ketrue
.Penyimpangan distribusi antara dua snapshot. Untuk fitur numerik, Vertex AI Feature Store menghitung nilai ini menggunakan divergensi Jensen-Shannon. Untuk fitur kategoris, Vertex AI Feature Store menghitung nilai ini menggunakan jarak L-infinity.
Nilai minimum yang terlampaui oleh penyimpangan distribusi.
Contoh berikut menunjukkan cara mengambil resource FeatureMonitorJob
dan memverifikasi apakah penyimpangan terdeteksi.
REST
Untuk mengambil resource FeatureMonitorJob
, kirim permintaan GET
menggunakan metode featureMonitorJobs.get.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION_ID: Region tempat tugas pemantauan fitur dijalankan, seperti
us-central1
. - PROJECT_ID: Project ID Anda.
- FEATUREGROUP_NAME: Nama grup fitur yang berisi resource
FeatureMonitor
. - FEATURE_MONITOR_NAME: Nama resource
FeatureMonitor
tempat tugas pemantauan fitur dijalankan. - FEATURE_MONITOR_JOB_ID: ID resource
FeatureMonitorJob
yang ingin Anda ambil.
Metode HTTP dan 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
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
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
Jalankan perintah berikut:
$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
Anda akan menerima respons JSON yang mirip seperti berikut:
{ "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
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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)
Ganti kode berikut:
- LOCATION_ID: Region tempat tugas pemantauan fitur dijalankan, seperti
us-central1
. - PROJECT_ID: Project ID Anda.
- FEATUREGROUP_NAME: Nama grup fitur yang berisi resource
FeatureMonitor
. - FEATURE_MONITOR_NAME: Nama resource
FeatureMonitor
tempat tugas pemantauan fitur dijalankan. - FEATURE_MONITOR_JOB_ID: ID resource
FeatureMonitorJob
yang ingin Anda ambil.
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-16 UTC.