Halaman ini menunjukkan cara membuat permintaan prediksi batch ke model regresi atau klasifikasi terlatih menggunakan Konsol Google Cloud atau Vertex AI API.
Permintaan prediksi batch adalah permintaan asinkron (berkebalikan dengan prediksi online, yang merupakan permintaan sinkron). Anda meminta prediksi batch secara langsung dari resource model tanpa perlu men-deploy model ke endpoint. Untuk data tabular, gunakan prediksi batch jika Anda tidak memerlukan respons langsung dan ingin memproses data yang terakumulasi menggunakan satu permintaan.
Untuk membuat permintaan prediksi batch, tentukan sumber input dan format output tempat Vertex AI menyimpan hasil prediksi.
Sebelum memulai
Agar dapat membuat permintaan prediksi batch, Anda harus melatih model terlebih dahulu.
Data input
Data input untuk permintaan prediksi batch adalah data yang digunakan model Anda untuk membuat prediksi. Untuk model klasifikasi atau regresi, Anda dapat menyediakan data input dalam salah satu dari dua format berikut:
- Tabel BigQuery
- Objek CSV di Cloud Storage
Sebaiknya gunakan format data input yang sama seperti yang digunakan untuk melatih model. Misalnya, jika Anda melatih model menggunakan data di BigQuery, sebaiknya gunakan tabel BigQuery sebagai input untuk prediksi batch Anda. Karena Vertex AI memperlakukan semua kolom input CSV sebagai string, menggabungkan format data input dan pelatihan dapat menyebabkan error.
Sumber data Anda harus berisi data tabulasi yang menyertakan semua kolom, dalam urutan apa pun, yang digunakan untuk melatih model. Anda dapat menyertakan kolom yang tidak ada dalam data pelatihan, atau yang ada dalam data pelatihan, tetapi tidak digunakan dalam pelatihan. Kolom tambahan ini disertakan dalam output, tetapi tidak memengaruhi hasil prediksi.
Persyaratan data input
Tabel BigQuery
Jika memilih Tabel BigQuery sebagai input, Anda harus memastikan hal-hal berikut:
- Tabel sumber data BigQuery tidak boleh berukuran lebih dari 100 GB.
- Jika tabel berada dalam project yang berbeda, Anda harus memberikan peran
BigQuery Data Editor
ke akun layanan Vertex AI dalam project tersebut.
File CSV
Jika memilih objek CSV di Cloud Storage sebagai input, Anda harus memastikan hal-hal berikut:
- Sumber data harus dimulai pada baris header dengan nama kolom.
- Setiap objek sumber data tidak boleh berukuran lebih dari 10 GB. Anda dapat menyertakan beberapa file, dengan total ukuran maksimum 100 GB.
- Jika bucket Cloud Storage berada dalam project yang berbeda, Anda harus memberikan peran
Storage Object Creator
ke akun layanan Vertex AI dalam project tersebut. - Anda harus menyertakan semua string dalam tanda kutip ganda (").
Format output
Format output permintaan prediksi batch Anda tidak harus sama dengan format yang Anda gunakan untuk input. Misalnya, jika Anda menggunakan tabel BigQuery sebagai input, Anda dapat menampilkan hasilnya dalam bentuk objek CSV di Cloud Storage.
Membuat permintaan prediksi batch ke model
Untuk membuat permintaan prediksi batch, Anda dapat menggunakan Konsol Google Cloud atau Vertex AI API. Sumber data input dapat berupa objek CSV yang disimpan di bucket Cloud Storage atau Tabel BigQuery. Bergantung pada jumlah data yang Anda kirimkan sebagai input, tugas prediksi batch dapat memerlukan waktu beberapa saat untuk diselesaikan.
Konsol Google Cloud
Gunakan konsol Google Cloud untuk meminta prediksi batch.
- Di konsol Google Cloud, di bagian Vertex AI, buka halaman Prediksi batch.
- Klik Buat untuk membuka jendela Prediksi batch baru.
- Di bagian Tentukan prediksi batch Anda, selesaikan langkah-langkah berikut:
- Masukkan nama untuk prediksi batch.
- Untuk Model name, pilih nama model yang akan digunakan untuk prediksi batch ini.
- Untuk Version, pilih versi model yang akan digunakan untuk prediksi batch ini.
- Untuk Select source, pilih apakah data input sumber Anda berupa file CSV
di Cloud Storage atau tabel di BigQuery.
- Untuk file CSV, tentukan lokasi Cloud Storage tempat file input CSV Anda berada.
- Untuk Tabel BigQuery, tentukan project ID tempat tabel berada, ID set data BigQuery, dan tabel BigQuery atau ID tampilan.
- Untuk Output, pilih CSV atau BigQuery.
- Untuk CSV, tentukan bucket Cloud Storage tempat Vertex AI menyimpan output Anda.
- Untuk BigQuery, Anda dapat menentukan project ID atau set data
yang sudah ada:
- Untuk menentukan project ID, masukkan project ID di kolom Google Cloud project ID. Vertex AI membuat set data output baru untuk Anda.
- Untuk menentukan set data yang ada, masukkan jalur BigQuery-nya di kolom Google Cloud project ID, seperti
bq://projectid.datasetid
.
- Opsional: analisis Model Monitoring untuk prediksi batch tersedia di Preview. Lihat
Prasyarat
untuk menambahkan konfigurasi deteksi skew ke tugas prediksi
batch Anda.
- Klik untuk mengaktifkan opsi Aktifkan pemantauan model untuk prediksi batch ini.
- Pilih Sumber data pelatihan. Masukkan jalur data atau lokasi untuk sumber data pelatihan yang Anda pilih.
- Opsional: Di bagian Nilai minimum pemberitahuan, tentukan nilai minimum untuk memicu pemberitahuan.
- Di bagian Email notifikasi, masukkan satu atau beberapa alamat email, dengan dipisahkan koma, yang akan menerima pemberitahuan saat model melebihi nilai minimum pemberitahuan.
- Opsional: Di bagian Saluran notifikasi, tambahkan saluran Cloud Monitoring untuk menerima pemberitahuan saat model melebihi nilai minimum pemberitahuan. Anda dapat memilih saluran Cloud Monitoring yang sudah ada atau membuat yang baru dengan mengklik Kelola saluran notifikasi. Konsol mendukung saluran notifikasi PagerDuty, Slack, dan Pub/Sub.
- Klik Create.
API: BigQuery
REST
Anda menggunakan metode batchPredictionJobs.create untuk meminta prediksi batch.
Sebelum menggunakan data permintaan mana pun, lakukan penggantian berikut:
- LOCATION_ID: Region tempat Model disimpan dan tugas prediksi batch dijalankan. Misalnya,
us-central1
. - PROJECT_ID: project ID Anda
- BATCH_JOB_NAME: Nama tampilan untuk tugas batch
- MODEL_ID: ID yang digunakan oleh model untuk membuat prediksi
-
INPUT_URI: Referensi ke sumber data BigQuery. Di dalam formulir:
bq://bqprojectId.bqDatasetId.bqTableId
-
OUTPUT_URI: Referensi ke tujuan BigQuery (tempat
prediksi akan ditulis). Tentukan project ID dan, secara opsional,
ID set data yang ada. Jika Anda hanya menentukan project ID,
Vertex AI akan membuat set data output baru untuk Anda. Gunakan
formulir berikut:
bq://bqprojectId.bqDatasetId
- MACHINE_TYPE: Resource mesin yang akan digunakan untuk tugas prediksi batch ini. Pelajari lebih lanjut.
- STARTING_REPLICA_COUNT: Jumlah awal node untuk tugas prediksi batch ini. Jumlah node dapat ditambah atau dikurangi sesuai kebutuhan beban, hingga jumlah maksimum node, tetapi tidak akan pernah kurang dari jumlah ini.
- MAX_REPLICA_COUNT: Jumlah node maksimum untuk tugas prediksi batch ini. Jumlah node dapat ditambah atau dikurangi sesuai kebutuhan beban, tetapi tidak akan pernah melebihi jumlah maksimum. Opsional, default ke 10.
Metode HTTP dan URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs
Isi JSON permintaan:
{ "displayName": "BATCH_JOB_NAME", "model": "MODEL_ID", "inputConfig": { "instancesFormat": "bigquery", "bigquerySource": { "inputUri": "INPUT_URI" } }, "outputConfig": { "predictionsFormat": "bigquery", "bigqueryDestination": { "outputUri": "OUTPUT_URI" } }, "dedicatedResources": { "machineSpec": { "machineType": "MACHINE_TYPE", "acceleratorCount": "0" }, "startingReplicaCount": STARTING_REPLICA_COUNT, "maxReplicaCount": MAX_REPLICA_COUNT }, }
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/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs"
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/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs" | Select-Object -Expand Content
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs/67890", "displayName": "batch_job_1 202005291958", "model": "projects/12345/locations/us-central1/models/5678", "state": "JOB_STATE_PENDING", "inputConfig": { "instancesFormat": "bigquery", "bigquerySource": { "inputUri": "INPUT_URI" } }, "outputConfig": { "predictionsFormat": "bigquery", "bigqueryDestination": { "outputUri": bq://12345 } }, "dedicatedResources": { "machineSpec": { "machineType": "n1-standard-32", "acceleratorCount": "0" }, "startingReplicaCount": 2, "maxReplicaCount": 6 }, "manualBatchTuningParameters": { "batchSize": 4 }, "generateExplanation": false, "outputInfo": { "bigqueryOutputDataset": "bq://12345.reg_model_2020_10_02_06_04 } "state": "JOB_STATE_PENDING", "createTime": "2020-09-30T02:58:44.341643Z", "updateTime": "2020-09-30T02:58:44.341643Z", }
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Java Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Dalam contoh berikut, ganti INSTANCES_FORMAT dan PREDICTIONS_FORMAT dengan `bigquery`. Untuk mempelajari cara mengganti placeholder lainnya, lihat tab `REST & CMD LINE` di bagian ini.Python
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Python API.
Pada contoh berikut, tetapkan parameter `instances_format` dan `predictions_format` ke `"bigquery"`. Untuk mempelajari cara menetapkan parameter lainnya, lihat tab `REST & CMD LINE` di bagian ini.API: Cloud Storage
REST
Anda menggunakan metode batchPredictionJobs.create untuk meminta prediksi batch.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION_ID: Region tempat Model disimpan dan tugas prediksi batch dijalankan. Misalnya,
us-central1
. - PROJECT_ID: project ID Anda
- BATCH_JOB_NAME: Nama tampilan untuk tugas batch
- MODEL_ID: ID yang digunakan oleh model untuk membuat prediksi
-
URI: Jalur (URI) ke bucket Cloud Storage yang berisi data pelatihan.
Bisa lebih dari satu. Setiap URI memiliki format:
gs://bucketName/pathToFileName
-
OUTPUT_URI_PREFIX: Jalur ke tujuan Cloud Storage tempat
prediksi akan ditulis. Vertex AI menulis prediksi batch ke subdirektori dengan
stempel waktu dari jalur ini. Tetapkan nilai ini ke string dengan format berikut:
gs://bucketName/pathToOutputDirectory
- MACHINE_TYPE: Resource mesin yang akan digunakan untuk tugas prediksi batch ini. Pelajari lebih lanjut.
- STARTING_REPLICA_COUNT: Jumlah awal node untuk tugas prediksi batch ini. Jumlah node dapat ditambah atau dikurangi sesuai kebutuhan beban, hingga jumlah maksimum node, tetapi tidak akan pernah kurang dari jumlah ini.
- MAX_REPLICA_COUNT: Jumlah node maksimum untuk tugas prediksi batch ini. Jumlah node dapat ditambah atau dikurangi sesuai kebutuhan beban, tetapi tidak akan pernah melebihi jumlah maksimum. Opsional, default ke 10.
Metode HTTP dan URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs
Isi JSON permintaan:
{ "displayName": "BATCH_JOB_NAME", "model": "MODEL_ID", "inputConfig": { "instancesFormat": "csv", "gcsSource": { "uris": [ URI1,... ] }, }, "outputConfig": { "predictionsFormat": "csv", "gcsDestination": { "outputUriPrefix": "OUTPUT_URI_PREFIX" } }, "dedicatedResources": { "machineSpec": { "machineType": "MACHINE_TYPE", "acceleratorCount": "0" }, "startingReplicaCount": STARTING_REPLICA_COUNT, "maxReplicaCount": MAX_REPLICA_COUNT }, }
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/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs"
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/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs" | Select-Object -Expand Content
Anda akan menerima respons JSON yang mirip dengan berikut ini:
{ "name": "projects/PROJECT__ID/locations/LOCATION_ID/batchPredictionJobs/67890", "displayName": "batch_job_1 202005291958", "model": "projects/12345/locations/us-central1/models/5678", "state": "JOB_STATE_PENDING", "inputConfig": { "instancesFormat": "csv", "gcsSource": { "uris": [ "gs://bp_bucket/reg_mode_test" ] } }, "outputConfig": { "predictionsFormat": "csv", "gcsDestination": { "outputUriPrefix": "OUTPUT_URI_PREFIX" } }, "dedicatedResources": { "machineSpec": { "machineType": "n1-standard-32", "acceleratorCount": "0" }, "startingReplicaCount": 2, "maxReplicaCount": 6 }, "manualBatchTuningParameters": { "batchSize": 4 } "outputInfo": { "gcsOutputDataset": "OUTPUT_URI_PREFIX/prediction-batch_job_1 202005291958-2020-09-30T02:58:44.341643Z" } "state": "JOB_STATE_PENDING", "createTime": "2020-09-30T02:58:44.341643Z", "updateTime": "2020-09-30T02:58:44.341643Z", }
Mengambil hasil prediksi batch
Vertex AI akan mengirim output prediksi batch ke tujuan yang Anda tentukan, yang dapat berupa BigQuery atau Cloud Storage.
BigQuery
Set data output
Jika Anda menggunakan BigQuery, output dari prediksi batch disimpan dalam set data output. Jika Anda telah menyediakan set data ke Vertex AI, nama set data (BQ_DATASET_NAME) adalah nama yang telah Anda berikan sebelumnya. Jika Anda tidak menyediakan set data output, Vertex AI akan membuatnya untuk Anda. Anda dapat menemukan namanya (BQ_DATASET_NAME) dengan langkah-langkah berikut:
- Di konsol Google Cloud, buka halaman Prediksi batch Vertex AI.
- Pilih prediksi yang Anda buat.
-
Set data output diberikan di Lokasi ekspor. Nama set data
diformat sebagai berikut:
prediction_MODEL_NAME_TIMESTAMP
Set data output berisi satu atau beberapa dari tiga tabel output berikut:
-
Tabel prediksi
Tabel ini berisi baris untuk setiap baris dalam data input Anda, tempat prediksi diminta (yaitu, dengan TARGET_COLUMN_NAME = null).
-
Tabel error
Tabel ini berisi baris untuk setiap error non-kritis yang ditemukan selama prediksi batch. Setiap error non-kritis berkaitan dengan baris dalam data input yang perkiraannya tidak dapat ditampilkan oleh Vertex AI.
Tabel prediksi
Nama tabel (BQ_PREDICTIONS_TABLE_NAME) dibuat dengan
menambahkan `predictions_` dengan stempel waktu saat tugas prediksi batch
dimulai: predictions_TIMESTAMP
Untuk mengambil prediksi, buka halaman BigQuery.
Format kueri bergantung pada jenis model Anda:Klasifikasi:
SELECT predicted_TARGET_COLUMN_NAME.classes AS classes, predicted_TARGET_COLUMN_NAME.scores AS scores FROM BQ_DATASET_NAME.BQ_PREDICTIONS_TABLE_NAME
classes
adalah daftar class potensial, dan scores
adalah skor keyakinan yang sesuai.
Regresi:
SELECT predicted_TARGET_COLUMN_NAME.value FROM BQ_DATASET_NAME.BQ_PREDICTIONS_TABLE_NAME
Jika model Anda menggunakan inferensi probabilistik,
predicted_TARGET_COLUMN_NAME.value
akan berisi memperkecil
tujuan pengoptimalan. Misalnya, jika tujuan pengoptimalan Anda adalah minimize-rmse
,
predicted_TARGET_COLUMN_NAME.value
berisi nilai rata-rata. Jika yang ditampilkan adalah
minimize-mae
, predicted_TARGET_COLUMN_NAME.value
akan berisi nilai median.
Jika model Anda menggunakan inferensi probabilistik dengan kuantil, Vertex AI akan memberikan prediksi dan nilai kuantil selain memperkecil tujuan pengoptimalan. Nilai kuantil ditetapkan selama pelatihan model. Prediksi kuantil adalah nilai prediksi yang terkait dengan nilai kuantil.
Tabel error
Nama tabel (BQ_ERRORS_TABLE_NAME) dibentuk dengan menambahkanerrors_
dengan stempel waktu saat tugas prediksi batch
dimulai: errors_TIMESTAMP
Untuk mengambil tabel validasi error:
-
Di konsol, buka halaman BigQuery.
-
Jalankan kueri berikut:
SELECT * FROM BQ_DATASET_NAME.BQ_ERRORS_TABLE_NAME
- errors_TARGET_COLUMN_NAME.code
- errors_TARGET_COLUMN_NAME.message
Cloud Storage
Jika Anda menetapkan Cloud Storage sebagai tujuan output, hasil permintaan prediksi batch akan ditampilkan sebagai objek CSV di folder baru dalam bucket yang telah Anda tentukan. Nama folder adalah nama model Anda, yang diawali dengan "prediction-" dan ditambah dengan stempel waktu saat tugas prediksi batch dimulai. Anda dapat menemukan nama folder Cloud Storage di tab Batch predictions untuk model Anda.
Folder Cloud Storage berisi dua jenis objek:-
Objek prediksi
Objek prediksi diberi nama `predictions_1.csv`, `predictions_2.csv`, dan seterusnya. Objek tersebut berisi baris header dengan nama kolom, dan baris untuk setiap prediksi yang ditampilkan. Dalam objek prediksi, Vertex AI menampilkan data prediksi Anda dan membuat satu atau beberapa kolom baru untuk hasil prediksi berdasarkan jenis model Anda:
-
Klasifikasi: Untuk setiap nilai potensial dari kolom target,
kolom bernama
TARGET_COLUMN_NAME_VALUE_score
akan ditambahkan ke hasil. Kolom ini berisi skor, atau estimasi keyakinan, untuk nilai tersebut. -
Regresi: Prediksi nilai untuk baris tersebut ditampilkan dalam kolom
bernama
predicted_TARGET_COLUMN_NAME
. Interval prediksi tidak ditampilkan untuk output CSV.
-
Klasifikasi: Untuk setiap nilai potensial dari kolom target,
kolom bernama
-
Objek error
Objek error tersebut diberi nama `errors_1.csv`, `errors_2.csv`, dan seterusnya. Objek ini berisi baris header, dan satu baris untuk setiap baris dalam data input Anda yang prediksinya tidak dapat ditampilkan oleh Vertex AI (misalnya jika fitur non-nullable bernilai null).
Catatan: Jika hasilnya besar, hasil akan dibagi menjadi beberapa objek.
Menafsirkan hasil prediksi
Klasifikasi
Model klasifikasi menampilkan skor keyakinan.
Skor keyakinan mencerminkan seberapa kuat model Anda mengaitkan setiap kelas atau label dengan item pengujian. Makin tinggi angkanya, makin tinggi keyakinan model bahwa label harus diterapkan ke item tersebut. Anda yang menentukan seberapa tinggi skor keyakinan agar dapat menerima hasil model.
Regresi
Model regresi menampilkan nilai prediksi.
Jika model Anda menggunakan inferensi probabilistik, kolom value
berisi
minimizer tujuan pengoptimalan. Misalnya, jika tujuan pengoptimalan
Anda adalah minimize-rmse
, kolom value
akan berisi nilai rata-rata.
Jika yang ditampilkan adalah minimize-mae
, kolom value
akan berisi nilai median.
Jika model Anda menggunakan inferensi probabilistik dengan kuantil, Vertex AI akan memberikan prediksi dan nilai kuantil selain memperkecil tujuan pengoptimalan. Nilai kuantil ditetapkan selama pelatihan model. Prediksi kuantil adalah nilai prediksi yang terkait dengan nilai kuantil.
Langkah selanjutnya
- Mempelajari cara mengekspor model.
- Mempelajari harga untuk prediksi batch.