Vertex AI Feature Store memungkinkan Anda menjadwalkan dan menjalankan tugas pemantauan fitur untuk memantau data fitur, mengambil statistik fitur, dan mendeteksi penyimpangan fitur. Anda hanya dapat memantau data fitur jika telah mendaftarkan sumber data fitur di Feature Registry.
Untuk memantau data fitur, Anda dapat membuat resource FeatureMonitor
di bagian
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
akan 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
Registry Fitur 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.
-
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.
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.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Untuk informasi selengkapnya, lihat Mengautentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud .
Membuat monitor fitur dengan jadwal pemantauan
Untuk mengambil dan memantau statistik fitur, buat resource FeatureMonitor
yang menentukan jadwal untuk menjalankan tugas pemantauan fitur secara berkala dan mengambil statistik fitur untuk fitur yang terdaftar di 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 monitor fitur, seperti
us-central1
. - PROJECT_ID: Project ID Anda.
- FEATUREGROUP_NAME: Nama grup fitur tempat Anda menyiapkan pemantauan fitur.
- FEATURE_MONITOR_NAME: Nama untuk monitor 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 monitor 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 monitor fitur berturut-turut dan menghitung drift 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 mewakili 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 monitor fitur, seperti
us-central1
. - PROJECT_ID: Project ID Anda.
- FEATUREGROUP_NAME: Nama grup fitur tempat Anda menyiapkan pemantauan fitur.
- FEATURE_MONITOR_NAME: Nama untuk monitor 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 monitor fitur. Ambang batas penyimpangan digunakan untuk mendeteksi
penyimpangan fitur. Masukkan nilai antara
0
dan1
. Jika Anda tidak memasukkan nilai, nilai minimum akan 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 skor drift, Vertex AI Feature Store menggunakan fungsi ML.TFDV_VALIDATE di BigQuery.
Untuk metrik yang digunakan untuk membandingkan statistik, jarak L-infinity digunakan untuk fitur kategoris dan divergensi Jensen-Shannon digunakan untuk fitur numerik. - CRON: Ekspresi jadwal cron yang mewakili 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 berturut-turut 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 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 gunakan untuk menjalankan tugas pemantauan fitur.
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 di resource Feature
, kirim permintaan GET
menggunakan metode features.get dan tentukan jumlah tugas pemantauan untuk mengambil statistik.
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 statistiknya 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 drift fitur. Drift adalah perubahan yang signifikan dan tidak 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 pemantauan fitur, jika perbedaan antara
dua snapshot melebihi nilai minimum yang ditentukan dalam
parameter drift_threshold
, Vertex AI Feature Store akan mengidentifikasi
drift fitur dan menampilkan informasi berikut di resource FeatureMonitorJob
:
Parameter
driftDetected
disetel ketrue
.Deviasi 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.
Batas yang terlampaui oleh skor drift.
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("drift score: ", 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-01-08 UTC.