Halaman ini menunjukkan cara mendapatkan prediksi dan penjelasan online (real-time) dari model regresi atau klasifikasi tabel menggunakan konsol Google Cloud atau Vertex AI API.
Prediksi online adalah permintaan sinkron, tidak seperti prediksi batch, yang merupakan permintaan asinkron. Gunakan prediksi online saat Anda membuat permintaan sebagai respons terhadap input aplikasi atau dalam situasi lain ketika Anda memerlukan inferensi yang tepat waktu.
Anda harus men-deploy model ke endpoint sebelum model tersebut dapat digunakan untuk prediksi online. Dengan men-deploy model, resource fisik dapat dikaitkan dengan model tersebut, sehingga dapat memberikan prediksi online dengan latensi rendah.
Topik yang dibahas meliputi:
- Men-deploy model ke endpoint
- Mendapatkan prediksi online menggunakan model yang di-deploy
- Mendapatkan penjelasan online menggunakan model yang Anda deploy
Sebelum memulai
Sebelum bisa mendapatkan prediksi online, Anda harus terlebih dahulu melatih model klasifikasi atau regresi dan mengevaluasi akurasinya.
Men-deploy model ke endpoint
Anda dapat men-deploy beberapa model ke satu endpoint, dan Anda dapat men-deploy satu model ke beberapa endpoint. Untuk mengetahui informasi selengkapnya tentang opsi dan kasus penggunaan untuk men-deploy model, lihat Tentang men-deploy model.
Gunakan salah satu metode berikut ini untuk men-deploy model:
Konsol Google Cloud
Di konsol Google Cloud, di bagian Vertex AI, buka halaman Model.
Klik nama model yang ingin di-deploy untuk membuka halaman detailnya.
Pilih tab Deploy & Uji.
Jika model Anda sudah di-deploy ke endpoint, model tersebut akan tercantum di bagian Deploy model Anda.
Klik Deploy ke endpoint.
Di halaman Tentukan endpoint Anda, konfigurasi sebagai berikut:
Anda dapat memilih untuk men-deploy model ke endpoint baru atau endpoint yang sudah ada.
- Untuk men-deploy model ke endpoint baru, pilih Buat endpoint baru, lalu berikan nama untuk endpoint baru tersebut.
- Untuk men-deploy model ke endpoint yang ada, pilih Tambah ke endpoint yang ada, lalu pilih endpoint dari menu drop-down.
- Anda dapat menambahkan beberapa model ke satu endpoint, dan Anda dapat menambahkan suatu model ke beberapa endpoint. Pelajari lebih lanjut.
Klik Lanjutkan.
Di halaman Pengaturan model, konfigurasikan sebagai berikut:
-
Jika Anda men-deploy model ke endpoint baru, terima nilai 100 untuk Pembagian traffic. Jika Anda men-deploy model ke endpoint yang sudah ada dan satu atau beberapa model telah di-deploy ke endpoint tersebut, Anda harus memperbarui persentase Pembagian traffic untuk model yang sedang di-deploy dan yang telah di-deploy sehingga persentasenya jika ditotal berjumlah 100%.
-
Masukkan Jumlah node komputasi minimum yang ingin Anda berikan untuk model Anda.
Jumlah minimum merupakan jumlah node yang selalu tersedia untuk model setiap saat. Anda akan dikenakan biaya untuk node yang digunakan, baik untuk menangani beban prediksi maupun untuk node (minimum) standby, meskipun tanpa traffic prediksi. Lihat halaman harga.
-
Pilih Jenis mesin.
Resource mesin yang lebih besar akan meningkatkan performa prediksi dan meningkatkan biaya.
-
Pelajari cara mengubah setelan default untuk logging prediksi.
-
Klik Lanjutkan
-
Di halaman Pemantauan model, klik Lanjutkan.
Di halaman Objektif pemantauan, konfigurasikan sebagai berikut:
- Masukkan lokasi data pelatihan Anda.
- Masukkan nama kolom target.
Klik Deploy untuk men-deploy model ke endpoint.
API
Saat men-deploy model menggunakan Vertex AI API, Anda harus menyelesaikan langkah-langkah berikut:
- Buat endpoint jika perlu.
- Dapatkan ID endpoint.
- Deploy model ke endpoint.
Membuat endpoint
Jika Anda men-deploy model ke endpoint yang sudah ada, Anda dapat melewati langkah ini.
gcloud
Contoh berikut menggunakan perintah gcloud ai endpoints create
:
gcloud ai endpoints create \
--region=LOCATION \
--display-name=ENDPOINT_NAME
Ganti kode berikut:
- LOCATION_ID: Region tempat Anda menggunakan Vertex AI.
ENDPOINT_NAME: Nama tampilan endpoint.
Alat Google Cloud CLI mungkin memerlukan waktu beberapa detik untuk membuat endpoint.
REST
Sebelum menggunakan data permintaan mana pun, lakukan penggantian berikut:
- LOCATION_ID: Region Anda.
- PROJECT_ID: Project ID Anda.
- ENDPOINT_NAME: Nama tampilan endpoint.
Metode HTTP dan URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints
Meminta isi JSON:
{ "display_name": "ENDPOINT_NAME" }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints/ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateEndpointOperationMetadata", "genericMetadata": { "createTime": "2020-11-05T17:45:42.812656Z", "updateTime": "2020-11-05T17:45:42.812656Z" } } }
"done": true
.
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.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Node.js Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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.
Mendapatkan ID endpoint
Anda memerlukan ID endpoint untuk men-deploy model tersebut.
gcloud
Contoh berikut menggunakan perintah gcloud ai endpoints list
:
gcloud ai endpoints list \
--region=LOCATION \
--filter=display_name=ENDPOINT_NAME
Ganti kode berikut:
- LOCATION_ID: Region tempat Anda menggunakan Vertex AI.
ENDPOINT_NAME: Nama tampilan endpoint.
Perhatikan angka yang muncul di kolom
ENDPOINT_ID
. Gunakan ID ini dalam langkah berikut.
REST
Sebelum menggunakan data permintaan mana pun, lakukan penggantian berikut:
- LOCATION_ID: Region tempat Anda menggunakan Vertex AI.
- PROJECT_ID: Project ID Anda.
- ENDPOINT_NAME: Nama tampilan endpoint.
Metode HTTP dan URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints?filter=display_name=ENDPOINT_NAME
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "endpoints": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints/ENDPOINT_ID", "displayName": "ENDPOINT_NAME", "etag": "AMEw9yPz5pf4PwBHbRWOGh0PcAxUdjbdX2Jm3QO_amguy3DbZGP5Oi_YUKRywIE-BtLx", "createTime": "2020-04-17T18:31:11.585169Z", "updateTime": "2020-04-17T18:35:08.568959Z" } ] }
Men-deploy model
Pilih tab di bawah ini untuk bahasa atau lingkungan Anda:
gcloud
Contoh berikut menggunakan perintah gcloud ai endpoints deploy-model
.
Contoh berikut men-deploy Model
ke Endpoint
tanpa menggunakan GPU
untuk mempercepat inferensi prediksi dan tanpa membagi traffic antara beberapa
resource DeployedModel
:
Sebelum menggunakan data perintah mana pun di bawah ini, lakukan penggantian berikut:
- ENDPOINT_ID: ID untuk endpoint.
- LOCATION_ID: Region tempat Anda menggunakan Vertex AI.
- MODEL_ID: ID untuk model yang akan di-deploy.
-
DEPLOYED_MODEL_NAME: Nama untuk
DeployedModel
. Anda juga dapat menggunakan nama tampilanModel
untukDeployedModel
. -
MACHINE_TYPE: Opsional. Resource mesin yang digunakan untuk setiap node deployment ini. Setelan defaultnya adalah
n1-standard-2
. Pelajari jenis-jenis mesin lebih lanjut. -
MIN_REPLICA_COUNT: Jumlah minimum node untuk deployment ini.
Jumlah node dapat ditambah atau dikurangi sesuai kebutuhan oleh beban prediksi
hingga mencapai jumlah maksimum node, dan node tidak pernah kurang dari jumlah ini.
Nilai ini harus lebih besar dari atau sama dengan 1. Jika flag
--min-replica-count
dihapus, nilai defaultnya adalah 1. -
MAX_REPLICA_COUNT: Jumlah maksimum node untuk deployment ini.
Jumlah node dapat ditingkatkan atau diturunkan sesuai kebutuhan beban prediksi, hingga mencapai jumlah maksimum node dan tidak pernah kurang dari jumlah ini.
Jika Anda menghapus tanda
--max-replica-count
, jumlah maksimum node akan ditetapkan ke nilai--min-replica-count
.
Jalankan perintah gcloud ai endpoints deploy-model:
Linux, macOS, atau Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID\ --region=LOCATION_ID \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --machine-type=MACHINE_TYPE \ --min-replica-count=MIN_REPLICA_COUNT \ --max-replica-count=MAX_REPLICA_COUNT \ --traffic-split=0=100
Windows (PowerShell)
gcloud ai endpoints deploy-model ENDPOINT_ID` --region=LOCATION_ID ` --model=MODEL_ID ` --display-name=DEPLOYED_MODEL_NAME ` --machine-type=MACHINE_TYPE ` --min-replica-count=MIN_REPLICA_COUNT ` --max-replica-count=MAX_REPLICA_COUNT ` --traffic-split=0=100
Windows (cmd.exe)
gcloud ai endpoints deploy-model ENDPOINT_ID^ --region=LOCATION_ID ^ --model=MODEL_ID ^ --display-name=DEPLOYED_MODEL_NAME ^ --machine-type=MACHINE_TYPE ^ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=100
Membagi traffic
Flag --traffic-split=0=100
pada contoh sebelumnya mengirim 100% traffic prediksi yang diterima Endpoint
ke DeployedModel
baru, yang diwakili oleh ID sementara 0
. Jika Endpoint
sudah memiliki resource DeployedModel
lain, Anda dapat membagi traffic antara DeployedModel
baru dan yang lama.
Misalnya, untuk mengirim 20% traffic ke DeployedModel
baru dan 80% traffic ke yang lebih lama, jalankan perintah berikut.
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- OLD_DEPLOYED_MODEL_ID: ID
DeployedModel
yang ada.
Jalankan perintah gcloud ai endpoints deploy-model:
Linux, macOS, atau Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID\ --region=LOCATION_ID \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --machine-type=MACHINE_TYPE \ --min-replica-count=MIN_REPLICA_COUNT \ --max-replica-count=MAX_REPLICA_COUNT \ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
Windows (PowerShell)
gcloud ai endpoints deploy-model ENDPOINT_ID` --region=LOCATION_ID ` --model=MODEL_ID ` --display-name=DEPLOYED_MODEL_NAME \ --machine-type=MACHINE_TYPE ` --min-replica-count=MIN_REPLICA_COUNT ` --max-replica-count=MAX_REPLICA_COUNT ` --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
Windows (cmd.exe)
gcloud ai endpoints deploy-model ENDPOINT_ID^ --region=LOCATION_ID ^ --model=MODEL_ID ^ --display-name=DEPLOYED_MODEL_NAME \ --machine-type=MACHINE_TYPE ^ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
REST
Anda dapat menggunakan metode endpoints.predict untuk meminta prediksi online.
Deploy model.
Sebelum menggunakan data permintaan mana pun, lakukan penggantian berikut:
- LOCATION_ID: Region tempat Anda menggunakan Vertex AI.
- PROJECT_ID: Project ID Anda.
- ENDPOINT_ID: ID untuk endpoint tersebut.
- MODEL_ID: ID untuk model yang akan di-deploy.
-
DEPLOYED_MODEL_NAME: Nama untuk
DeployedModel
. Anda juga dapat menggunakan nama tampilanModel
untukDeployedModel
. -
MACHINE_TYPE: Opsional. Resource mesin yang digunakan untuk setiap node deployment ini. Setelan defaultnya adalah
n1-standard-2
. Pelajari jenis-jenis mesin lebih lanjut. - ACCELERATOR_TYPE: Jenis akselerator yang akan dipasang ke mesin. Opsional jika ACCELERATOR_COUNT tidak ditentukan atau nol. Tidak direkomendasikan untuk model AutoML atau model yang dilatih secara khusus yang menggunakan image non-GPU. Pelajari lebih lanjut.
- ACCELERATOR_COUNT: Jumlah akselerator untuk setiap replika yang akan digunakan. Opsional. Harus nol atau tidak ditentukan untuk model AutoML atau model yang dilatih secara khusus yang menggunakan image non-GPU.
- MIN_REPLICA_COUNT: Jumlah minimum node untuk deployment ini. Jumlah node dapat ditambah atau dikurangi sesuai kebutuhan oleh beban prediksi hingga mencapai jumlah maksimum node, dan node tidak pernah kurang dari jumlah ini. Nilai ini harus lebih besar dari atau sama dengan 1.
- MAX_REPLICA_COUNT: Jumlah maksimum node untuk deployment ini. Jumlah node dapat ditingkatkan atau diturunkan sesuai kebutuhan beban prediksi, hingga mencapai jumlah maksimum node dan tidak pernah kurang dari jumlah ini.
- TRAFFIC_SPLIT_THIS_MODEL: Persentase traffic prediksi ke endpoint ini yang akan dirutekan ke model yang di-deploy dengan operasi ini. Setelan defaultnya adalah 100. Semua persentase traffic harus berjumlah 100. Pelajari pemisahan traffic lebih lanjut.
- DEPLOYED_MODEL_ID_N: Opsional. Jika model lain di-deploy ke endpoint ini, Anda harus memperbarui persentase pemisahan traffic agar semua persentase berjumlah 100.
- TRAFFIC_SPLIT_MODEL_N: Nilai persentase pemisahan traffic untuk kunci ID model yang di-deploy.
- PROJECT_NUMBER: Nomor project yang dibuat secara otomatis untuk project Anda
Metode HTTP dan URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:deployModel
Meminta isi JSON:
{ "deployedModel": { "model": "projects/PROJECT/locations/us-central1/models/MODEL_ID", "displayName": "DEPLOYED_MODEL_NAME", "dedicatedResources": { "machineSpec": { "machineType": "MACHINE_TYPE", "acceleratorType": "ACCELERATOR_TYPE", "acceleratorCount": "ACCELERATOR_COUNT" }, "minReplicaCount": MIN_REPLICA_COUNT, "maxReplicaCount": MAX_REPLICA_COUNT }, }, "trafficSplit": { "0": TRAFFIC_SPLIT_THIS_MODEL, "DEPLOYED_MODEL_ID_1": TRAFFIC_SPLIT_MODEL_1, "DEPLOYED_MODEL_ID_2": TRAFFIC_SPLIT_MODEL_2 }, }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
{ "name": "projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployModelOperationMetadata", "genericMetadata": { "createTime": "2020-10-19T17:53:16.502088Z", "updateTime": "2020-10-19T17:53:16.502088Z" } } }
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.
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.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Node.js Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Pelajari cara mengubah setelan default untuk logging prediksi.
Mendapatkan status operasi
Beberapa permintaan memulai operasi yang berjalan lama, yang memerlukan waktu beberapa saat untuk selesai. Permintaan ini menampilkan nama operasi, yang dapat Anda gunakan untuk melihat status operasi atau membatalkan operasi. Vertex AI menyediakan metode helper untuk melakukan panggilan terhadap operasi yang berjalan lama. Untuk mengetahui informasi selengkapnya, lihat Menangani operasi yang berjalan lama.
Mendapatkan prediksi online menggunakan model yang di-deploy
Untuk membuat prediksi online, kirim satu atau beberapa item pengujian ke model untuk dianalisis, dan model akan menampilkan hasil yang didasarkan pada objektif model Anda. Gunakan konsol Google Cloud atau Vertex AI API untuk meminta prediksi online.
Konsol Google Cloud
Di konsol Google Cloud, di bagian Vertex AI, buka halaman Model.
Dari daftar model, klik nama model yang akan diminta prediksinya.
Pilih tab Deploy & test.
Di bagian Uji model Anda, tambahkan item pengujian untuk meminta prediksi. Data prediksi baseline akan diisikan untuk Anda, atau Anda dapat memasukkan data prediksi milik Anda sendiri, lalu mengklik Prediksi.
Setelah prediksi selesai, Vertex AI akan menampilkan hasilnya di konsol.
API: Klasifikasi
gcloud
-
Buat file bernama
request.json
dengan konten berikut:{ "instances": [ { PREDICTION_DATA_ROW } ] }
Ganti kode berikut:
-
PREDICTION_DATA_ROW: Objek JSON dengan kunci sebagai nama fitur dan nilai sebagai nilai fitur yang sesuai. Misalnya, untuk set data dengan angka, array string, dan kategori, baris data akan terlihat seperti contoh permintaan berikut:
"length":3.6, "material":"cotton", "tag_array": ["abc","def"]
Nilai harus diberikan untuk setiap fitur yang disertakan dalam pelatihan. Format data yang digunakan untuk prediksi harus sesuai dengan format yang digunakan untuk pelatihan. Lihat Format data untuk prediksi untuk mengetahui detail selengkapnya.
-
-
Jalankan perintah berikut:
gcloud ai endpoints predict ENDPOINT_ID \ --region=LOCATION_ID \ --json-request=request.json
Ganti kode berikut:
- ENDPOINT_ID: ID untuk endpoint.
- LOCATION_ID: Region tempat Anda menggunakan Vertex AI.
REST
Anda dapat menggunakan metode endpoints.predict untuk meminta prediksi online.
Sebelum menggunakan salah satu data permintaan, buat pengganti berikut ini:
-
LOCATION_ID: Region tempat Endpoint berada. Contoh,
us-central1
. - PROJECT_ID: Project ID Anda.
- ENDPOINT_ID: ID untuk endpoint.
-
PREDICTION_DATA_ROW: Objek JSON dengan kunci sebagai nama fitur dan nilai sebagai nilai fitur yang sesuai. Misalnya, untuk set data dengan angka, array string, dan kategori, baris data akan terlihat seperti contoh permintaan berikut:
"length":3.6, "material":"cotton", "tag_array": ["abc","def"]
Nilai harus diberikan untuk setiap fitur yang disertakan dalam pelatihan. Format data yang digunakan untuk prediksi harus sesuai dengan format yang digunakan untuk pelatihan. Lihat Format data untuk prediksi untuk mengetahui detail selengkapnya.
- DEPLOYED_MODEL_ID: Output dari metode
predict
, dan diterima sebagai input oleh metodeexplain
. ID model yang digunakan untuk membuat prediksi. Jika perlu meminta penjelasan untuk prediksi yang diminta sebelumnya, dan Anda memiliki lebih dari satu model yang di-deploy, Anda dapat menggunakan ID ini untuk memastikan penjelasan ditampilkan untuk model yang sama dengan yang memberikan prediksi sebelumnya.
Metode HTTP dan URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:predict
Isi JSON permintaan:
{ "instances": [ { PREDICTION_DATA_ROW } ] }
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/endpoints/ENDPOINT_ID:predict"
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/endpoints/ENDPOINT_ID:predict" | Select-Object -Expand Content
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
{ "predictions": [ { "scores": [ 0.96771615743637085, 0.032283786684274673 ], "classes": [ "0", "1" ] } ] "deployedModelId": "2429510197" }
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.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Node.js Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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.
API: Regresi
gcloud
-
Buat file bernama `request.json` dengan konten berikut:
{ "instances": [ { PREDICTION_DATA_ROW } ] }
Ganti kode berikut:
-
PREDICTION_DATA_ROW: Objek JSON dengan kunci sebagai nama fitur dan nilai sebagai nilai fitur yang sesuai. Misalnya, untuk set data dengan angka, array angka, dan kategori, baris data akan terlihat seperti contoh permintaan berikut:
"age":3.6, "sq_ft":5392, "code": "90331"
Nilai harus diberikan untuk setiap fitur yang disertakan dalam pelatihan. Format data yang digunakan untuk prediksi harus sesuai dengan format yang digunakan untuk pelatihan. Lihat Format data untuk prediksi untuk mengetahui detail selengkapnya.
-
-
Jalankan perintah berikut:
gcloud ai endpoints predict ENDPOINT_ID \ --region=LOCATION_ID \ --json-request=request.json
Ganti kode berikut:
- ENDPOINT_ID: ID untuk endpoint.
- LOCATION_ID: Region tempat Anda menggunakan Vertex AI.
REST
Anda dapat menggunakan metode endpoints.predict untuk meminta prediksi online.
Sebelum menggunakan salah satu data permintaan, buat pengganti berikut ini:
-
LOCATION_ID: Region tempat Endpoint berada. Contoh,
us-central1
. - PROJECT_ID: Project ID Anda.
- ENDPOINT_ID: ID untuk endpoint.
-
PREDICTION_DATA_ROW: Objek JSON dengan kunci sebagai nama fitur dan nilai sebagai nilai fitur yang sesuai. Misalnya, untuk set data dengan angka, array angka, dan kategori, baris data akan terlihat seperti contoh permintaan berikut:
"age":3.6, "sq_ft":5392, "code": "90331"
Nilai harus diberikan untuk setiap fitur yang disertakan dalam pelatihan. Format data yang digunakan untuk prediksi harus sesuai dengan format yang digunakan untuk pelatihan. Lihat Format data untuk prediksi untuk mengetahui detail selengkapnya.
- DEPLOYED_MODEL_ID: Output dari metode
predict
, dan diterima sebagai input oleh metodeexplain
. ID model yang digunakan untuk membuat prediksi. Jika perlu meminta penjelasan untuk prediksi yang diminta sebelumnya, dan Anda memiliki lebih dari satu model yang di-deploy, Anda dapat menggunakan ID ini untuk memastikan penjelasan ditampilkan untuk model yang sama dengan yang memberikan prediksi sebelumnya.
Metode HTTP dan URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:predict
Isi JSON permintaan:
{ "instances": [ { PREDICTION_DATA_ROW } ] }
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/endpoints/ENDPOINT_ID:predict"
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/endpoints/ENDPOINT_ID:predict" | Select-Object -Expand Content
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
{ "predictions": [ [ { "value": 65.14233, "lower_bound": 4.6572, "upper_bound": 164.0279 } ] ], "deployedModelId": "DEPLOYED_MODEL_ID" }
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.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Node.js Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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.
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. Untuk tujuan BigQuery, tabel juga menampilkan interval prediksi. Interval prediksi memberikan rentang nilai yang keyakinan modelnya memiliki tingkat keyakinan 95% berisi hasil sebenarnya.
Mendapatkan penjelasan online menggunakan model yang di-deploy
Anda dapat meminta prediksi dengan penjelasan (juga disebut atribusi fitur) untuk melihat bagaimana model Anda menghasilkan sebuah prediksi. Nilai penting fitur lokal menunjukkan seberapa besar kontribusi setiap fitur terhadap hasil prediksi. Atribusi fitur disertakan dalam prediksi Vertex AI melalui Vertex Explainable AI.
Konsol
Saat Anda menggunakan konsol Google Cloud untuk meminta prediksi online, nilai penting fitur lokal akan otomatis ditampilkan.
Jika Anda menggunakan nilai prediksi yang telah diisi sebelumnya, nilai penting fitur lokal semuanya nol. Hal ini karena nilai yang diisi sebelumnya adalah data prediksi dasar, sehingga prediksi yang ditampilkan adalah nilai prediksi dasar.
gcloud
Buat file bernama
request.json
dengan konten berikut:{ "instances": [ { PREDICTION_DATA_ROW } ] }
Ganti kode berikut:
-
PREDICTION_DATA_ROW: Objek JSON dengan kunci sebagai nama fitur dan nilai sebagai nilai fitur yang sesuai. Misalnya, untuk set data dengan angka, array string, dan kategori, baris data akan terlihat seperti contoh permintaan berikut:
"length":3.6, "material":"cotton", "tag_array": ["abc","def"]
Nilai harus diberikan untuk setiap fitur yang disertakan dalam pelatihan. Format data yang digunakan untuk prediksi harus sesuai dengan format yang digunakan untuk pelatihan. Lihat Format data untuk prediksi untuk mengetahui detail selengkapnya.
-
Jalankan perintah berikut:
gcloud ai endpoints explain ENDPOINT_ID \ --region=LOCATION_ID \ --json-request=request.json
Ganti kode berikut:
- ENDPOINT_ID: ID untuk endpoint.
- LOCATION_ID: Region tempat Anda menggunakan Vertex AI.
Secara opsional, jika Anda ingin mengirim permintaan penjelasan ke
DeployedModel
tertentu diEndpoint
, Anda dapat menentukan flag--deployed-model-id
:gcloud ai endpoints explain ENDPOINT_ID \ --region=LOCATION \ --deployed-model-id=DEPLOYED_MODEL_ID \ --json-request=request.json
Selain placeholder yang dijelaskan sebelumnya, ganti placeholder berikut:
-
DEPLOYED_MODEL_ID Opsional: ID model yang di-deploy yang ingin Anda lihat penjelasannya. ID disertakan dalam respons metode
predict
. Jika Anda perlu meminta penjelasan untuk model tertentu dan Anda memiliki lebih dari satu model yang di-deploy ke endpoint yang sama, Anda dapat menggunakan ID ini untuk memastikan penjelasan ditampilkan untuk model tertentu.
REST
Contoh berikut menunjukkan permintaan prediksi online untuk model klasifikasi tabulasi dengan atribusi fitur lokal. Format permintaan sama untuk model regresi.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
-
LOCATION: Region tempat Endpoint berada. Contoh,
us-central1
. - PROJECT: Project ID Anda.
- ENDPOINT_ID: ID untuk endpoint.
-
PREDICTION_DATA_ROW: Objek JSON dengan kunci sebagai nama fitur dan nilai sebagai nilai fitur yang sesuai. Misalnya, untuk set data dengan angka, array string, dan kategori, baris data akan terlihat seperti contoh permintaan berikut:
"length":3.6, "material":"cotton", "tag_array": ["abc","def"]
Nilai harus diberikan untuk setiap fitur yang disertakan dalam pelatihan. Format data yang digunakan untuk prediksi harus sesuai dengan format yang digunakan untuk pelatihan. Lihat Format data untuk prediksi untuk mengetahui detail selengkapnya.
-
DEPLOYED_MODEL_ID (opsional): ID model yang di-deploy yang ingin Anda lihat
penjelasannya. ID disertakan dalam respons metode
predict
. Jika Anda perlu meminta penjelasan untuk model tertentu dan memiliki lebih dari satu model yang di-deploy ke endpoint yang sama, Anda dapat menggunakan ID ini untuk memastikan penjelasan ditampilkan untuk model tertentu.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/endpoints/ENDPOINT_ID:explain
Isi JSON permintaan:
{ "instances": [ { PREDICTION_DATA_ROW } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
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-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/endpoints/ENDPOINT_ID:explain"
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-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/endpoints/ENDPOINT_ID:explain" | Select-Object -Expand Content
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.
Mendapatkan penjelasan untuk prediksi yang ditampilkan sebelumnya
Karena penjelasan meningkatkan penggunaan resource, sebaiknya simpan permintaan penjelasan untuk situasi saat Anda secara khusus membutuhkannya. Terkadang, meminta penjelasan untuk hasil prediksi yang telah Anda terima dapat membantu, mungkin karena prediksi tersebut merupakan pencilan atau tidak masuk akal.
Jika semua prediksi berasal dari model yang sama, Anda cukup mengirim ulang
data permintaan dengan penjelasan yang diminta kali ini. Namun, jika memiliki
beberapa model yang menampilkan prediksi, Anda harus memastikan bahwa Anda mengirimkan
permintaan penjelasan ke model yang benar. Anda dapat melihat penjelasan untuk
model tertentu dengan menyertakan ID deployedModelID
model yang di-deploy dalam
permintaan Anda, yang disertakan dalam respons permintaan prediksi awal.
Perhatikan bahwa ID model yang di-deploy berbeda dengan ID model.
Menafsirkan hasil penjelasan
Untuk menghitung nilai penting fitur lokal, skor prediksi dasar pengukuran akan dihitung terlebih dahulu. Nilai dasar pengukuran dihitung dari data pelatihan, menggunakan nilai median untuk fitur numerik dan mode untuk fitur kategoris. Prediksi yang dihasilkan dari nilai dasar pengukuran adalah skor prediksi dasar pengukuran. Nilai dasar pengukuran dihitung satu kali untuk satu model dan tidak berubah.
Untuk prediksi tertentu, nilai penting fitur lokal untuk setiap fitur memberi tahu Anda seberapa banyak fitur yang ditambahkan atau dikurangi dari hasil dibandingkan dengan skor prediksi dasar pengukuran. Jumlah semua nilai penting fitur sama dengan selisih antara skor prediksi dasar pengukuran dan hasil prediksi.
Untuk model klasifikasi, skornya selalu antara 0,0 dan 1,0, inklusif. Oleh karena itu, nilai penting fitur lokal untuk model klasifikasi selalu antara -1,0 dan 1,0 (inklusif).
Untuk mengetahui contoh kueri atribusi fitur dan mempelajari lebih lanjut, lihat Atribusi Fitur untuk Klasifikasi dan Regresi.Contoh output untuk prediksi dan penjelasan
Klasifikasi
Payload yang ditampilkan untuk prediksi online dari model klasifikasi tabulasi dengan tingkat kepentingan fitur terlihat seperti contoh berikut.
instanceOutputValue
dari 0.928652400970459
adalah
skor keyakinan dari kelas dengan skor tertinggi, dalam hal ini
class_a
. Kolom baselineOutputValue
berisi
skor prediksi dasar, 0.808652400970459
. Fitur yang
paling banyak berkontribusi terhadap hasil ini adalah feature_3
.
{
"predictions": [
{
"scores": [
0.928652400970459,
0.071347599029541
],
"classes": [
"class_a",
"class_b"
]
}
]
"explanations": [
{
"attributions": [
{
"baselineOutputValue": 0.808652400970459,
"instanceOutputValue": 0.928652400970459,
"approximationError": 0.0058915703929231,
"featureAttributions": {
"feature_1": 0.012394922231235,
"feature_2": 0.050212341234556,
"feature_3": 0.057392736534209,
},
"outputIndex": [
0
],
"outputName": "scores"
}
],
}
]
"deployedModelId": "234567"
}
Regresi
Payload yang ditampilkan untuk prediksi online dengan nilai penting fitur dari model regresi tabulasi terlihat seperti contoh berikut.
instanceOutputValue
dari 1795.1246466281819
adalah
nilai yang diprediksi, dengan kolom lower_bound
dan
upper_bound
memberikan interval keyakinan 95%.
Kolom baselineOutputValue
berisi
skor prediksi dasar, 1788.7423095703125
. Fitur yang
paling banyak berkontribusi terhadap hasil ini adalah feature_3
.
{
"predictions": [
{
"value": 1795.1246466281819,
"lower_bound": 246.32196807861328,
"upper_bound": 8677.51904296875
}
]
"explanations": [
{
"attributions": [
{
"baselineOutputValue": 1788.7423095703125,
"instanceOutputValue": 1795.1246466281819,
"approximationError": 0.0038215703911553,
"featureAttributions": {
"feature_1": 0.123949222312359,
"feature_2": 0.802123412345569,
"feature_3": 5.456264423211472,
},
"outputIndex": [
-1
]
}
]
}
],
"deployedModelId": "345678"
}
Langkah berikutnya
- Pelajari cara mengekspor model.