Model video AutoML tidak mendukung prediksi online.
Mendapatkan prediksi batch
Untuk membuat permintaan prediksi batch, tentukan sumber input dan format output tempat Vertex AI menyimpan hasil prediksi.
Persyaratan data input
Input untuk permintaan batch menentukan item yang akan dikirim ke model Anda untuk mendapatkan prediksi. Prediksi batch untuk jenis model video AutoML menggunakan file JSON Lines untuk menentukan daftar video yang akan dibuat prediksinya, lalu menyimpan file JSON Lines tersebut di bucket Cloud Storage. Anda dapat menentukan Infinity
untuk kolom timeSegmentEnd
guna menentukan akhir video. Contoh berikut menunjukkan satu baris dalam file JSON Lines input.
{'content': 'gs://sourcebucket/datasets/videos/source_video.mp4', 'mimeType': 'video/mp4', 'timeSegmentStart': '0.0s', 'timeSegmentEnd': '2.366667s'}
Meminta prediksi batch
Untuk permintaan prediksi batch, Anda dapat menggunakan Konsol Google Cloud atau Vertex AI API. Bergantung pada jumlah item input yang Anda kirimkan, 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 Batch Predictions.
Klik Create untuk membuka jendela New batch predictions dan selesaikan langkah-langkah berikut:
- Masukkan nama untuk prediksi batch.
- Untuk Model name, pilih nama model yang akan digunakan untuk prediksi batch ini.
- Untuk Source path, tentukan lokasi Cloud Storage tempat file input JSON Lines Anda berada.
- Untuk Destination path, tentukan lokasi Cloud Storage tempat hasil prediksi batch disimpan. Format Output ditentukan oleh tujuan model Anda. Model AutoML untuk tujuan gambar menghasilkan file JSON Lines.
API
Gunakan Vertex AI API untuk mengirim permintaan prediksi batch.
REST
Sebelum menggunakan data permintaan apa pun, buat pengganti 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
- THRESHOLD_VALUE (opsional): Vertex AI hanya menampilkan prediksi yang memiliki skor keyakinan dengan nilai minimal ini. Dafaultnya adalah
0.0
. - URI: Cloud Storage URI tempat file JSON Lines input Anda berada.
- BUCKET: Bucket Cloud Storage Anda
- PROJECT_NUMBER: Nomor project project Anda yang dibuat secara otomatis
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": "projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID", "modelParameters": { "confidenceThreshold": THRESHOLD_VALUE, }, "inputConfig": { "instancesFormat": "jsonl", "gcsSource": { "uris": ["URI"], }, }, "outputConfig": { "predictionsFormat": "jsonl", "gcsDestination": { "outputUriPrefix": "OUTPUT_BUCKET", }, }, }
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 seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/us-central1/batchPredictionJobs/BATCH_JOB_ID", "displayName": "BATCH_JOB_NAME", "model": "projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID", "inputConfig": { "instancesFormat": "jsonl", "gcsSource": { "uris": [ "CONTENT" ] } }, "outputConfig": { "predictionsFormat": "jsonl", "gcsDestination": { "outputUriPrefix": "BUCKET" } }, "state": "JOB_STATE_PENDING", "createTime": "2020-05-30T02:58:44.341643Z", "updateTime": "2020-05-30T02:58:44.341643Z", "modelDisplayName": "MODEL_NAME", "modelObjective": "MODEL_OBJECTIVE" }
Anda dapat melakukan polling untuk status tugas batch menggunakan
BATCH_JOB_ID hingga state
tugas menjadi
JOB_STATE_SUCCEEDED
.
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 informasi selengkapnya, lihat 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 informasi selengkapnya, lihat 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 informasi selengkapnya, lihat Dokumentasi referensi Python API.
Mengambil hasil prediksi batch
Vertex AI mengirimkan output prediksi batch ke tujuan yang Anda tentukan.
Ketika tugas prediksi batch selesai, output prediksi disimpan di bucket Cloud Storage yang Anda tentukan dalam permintaan Anda.
Contoh hasil prediksi batch
Berikut ini contoh hasil prediksi batch dari model pelacakan objek video.
{ "instance": { "content": "gs://bucket/video.mp4", "mimeType": "video/mp4", "timeSegmentStart": "1s", "timeSegmentEnd": "5s" } "prediction": [{ "id": "1", "displayName": "cat", "timeSegmentStart": "1.2s", "timeSegmentEnd": "3.4s", "frames": [{ "timeOffset": "1.2s", "xMin": 0.1, "xMax": 0.2, "yMin": 0.3, "yMax": 0.4 }, { "timeOffset": "3.4s", "xMin": 0.2, "xMax": 0.3, "yMin": 0.4, "yMax": 0.5, }], "confidence": 0.7 }, { "id": "1", "displayName": "cat", "timeSegmentStart": "4.8s", "timeSegmentEnd": "4.8s", "frames": [{ "timeOffset": "4.8s", "xMin": 0.2, "xMax": 0.3, "yMin": 0.4, "yMax": 0.5, }], "confidence": 0.6 }, { "id": "2", "displayName": "dog", "timeSegmentStart": "1.2s", "timeSegmentEnd": "3.4s", "frames": [{ "timeOffset": "1.2s", "xMin": 0.1, "xMax": 0.2, "yMin": 0.3, "yMax": 0.4 }, { "timeOffset": "3.4s", "xMin": 0.2, "xMax": 0.3, "yMin": 0.4, "yMax": 0.5, }], "confidence": 0.5 }] }