Model embedding multimodal menghasilkan vektor 1408 dimensi* berdasarkan input yang Anda berikan, yang dapat mencakup kombinasi data gambar, teks, dan video. Vektor embedding kemudian dapat digunakan untuk tugas selanjutnya seperti klasifikasi gambar atau moderasi konten video.
Vektor embedding gambar dan vektor embedding teks berada dalam ruang semantik yang sama dengan dimensi yang sama. Akibatnya, vektor ini dapat digunakan secara bergantian untuk kasus penggunaan seperti penelusuran gambar melalui teks atau penelusuran video dengan gambar.
Untuk kasus penggunaan embedding hanya teks, sebaiknya gunakan API embedding teks Vertex AI. Misalnya, API embedding teks mungkin lebih baik untuk penelusuran semantik berbasis teks, pengelompokan, analisis dokumen berformat panjang, dan kasus penggunaan pengambilan teks atau question answering lainnya. Untuk informasi selengkapnya, lihat Mendapatkan embedding teks.
* Nilai default.
Kasus penggunaan
Gambar dan teks:
- Klasifikasi gambar: Mengambil gambar sebagai input dan memprediksi satu atau beberapa kelas (label).
- Penelusuran gambar: Menelusuri gambar yang relevan atau mirip.
- Rekomendasi: Membuat rekomendasi produk atau iklan berdasarkan gambar.
Gambar, teks, dan video:
- Rekomendasi: Buat rekomendasi produk atau iklan berdasarkan video (penelusuran kemiripan).
- Penelusuran konten video
- Menggunakan penelusuran semantik: Mengambil teks sebagai input, dan menampilkan kumpulan frame berperingkat yang cocok dengan kueri.
- Menggunakan penelusuran kemiripan:
- Mengambil video sebagai input, dan menampilkan kumpulan video yang cocok dengan kueri.
- Mengambil gambar sebagai input, dan menampilkan kumpulan video yang cocok dengan kueri.
- Klasifikasi video: Mengambil video sebagai input dan memprediksi satu atau beberapa kelas.
Model yang didukung
Anda bisa mendapatkan embedding multimodal dengan menggunakan model berikut:
multimodalembedding
Praktik terbaik
Pertimbangkan aspek input berikut saat menggunakan model embedding multimodal:
- Teks dalam gambar - Model dapat membedakan teks dalam gambar, mirip dengan
pengenalan karakter optik (OCR). Jika Anda perlu membedakan antara
deskripsi konten gambar dan teks dalam gambar, pertimbangkan
untuk menggunakan rekayasa perintah guna menentukan konten target Anda.
Misalnya: alih-alih hanya "kucing" (cat), gunakan "gambar kucing" atau
"text 'kucing", bergantung pada kasus penggunaan Anda.
teks 'kucing'
gambar kucing
Kredit gambar: Manja Vitolic di Unsplash. - Kemiripan embedding - Produk titik embedding bukan merupakan probabilitas yang dikalibrasi. Produk titik adalah metrik kesamaan dan mungkin memiliki distribusi skor yang berbeda untuk kasus penggunaan yang berbeda. Oleh karena itu, hindari penggunaan nilai minimum tetap untuk mengukur kualitas. Sebagai gantinya, gunakan pendekatan peringkat untuk pengambilan, atau gunakan sigmoid untuk klasifikasi.
Penggunaan API
Batas API
Batas berikut berlaku saat Anda menggunakan model multimodalembedding
untuk embedding teks dan gambar:
Limit | Nilai dan deskripsi |
---|---|
Data teks dan gambar | |
Jumlah maksimum permintaan API per menit per project | 120 |
Panjang teks maksimum | 32 token (~32 kata) Panjang teks maksimum adalah 32 token (sekitar 32 kata). Jika input melebihi 32 token, model akan mempersingkat input menjadi 32 token secara internal. |
Pemodelan bahasa | Inggris |
Format gambar | BMP, GIF, JPG, PNG |
Ukuran gambar | Gambar berenkode base64: 20 MB (saat di-transcoding ke PNG) Gambar Cloud Storage: 20 MB (format file asli) Ukuran gambar maksimum yang diterima adalah 20 MB. Untuk menghindari peningkatan latensi jaringan, gunakan gambar yang lebih kecil. Selain itu, model ini mengubah ukuran gambar menjadi resolusi 512 x 512 piksel. Jadi, Anda tidak perlu memberikan gambar yang beresolusi lebih tinggi. |
Data video | |
Audio yang didukung | T/A - Model tidak mempertimbangkan konten audio saat membuat embedding video |
Format video | AVI, FLV, MKV, MOV, MP4, MPEG, MPG, WEBM, dan WMV |
Durasi video maksimum (Cloud Storage) | Tidak ada batas. Namun, hanya konten berdurasi 2 menit yang dapat dianalisis dalam satu waktu. |
Sebelum memulai
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Aktifkan API Vertex AI.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Aktifkan API Vertex AI.
-
Siapkan autentikasi untuk lingkungan Anda.
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
Java
Untuk menggunakan contoh Java di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Update dan instal komponen
gcloud
:gcloud components update
gcloud components install beta -
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud.
Node.js
Untuk menggunakan contoh Node.js di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Update dan instal komponen
gcloud
:gcloud components update
gcloud components install beta -
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud.
Python
Untuk menggunakan contoh Python di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Update dan instal komponen
gcloud
:gcloud components update
gcloud components install beta -
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Update dan instal komponen
gcloud
:gcloud components update
gcloud components install beta
- Untuk menggunakan Python SDK, ikuti petunjuk di bagian Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Vertex AI SDK untuk Python API.
- Opsional. Tinjau pricing untuk fitur ini. Harga untuk embedding bergantung pada jenis data yang Anda kirim (misalnya gambar atau teks), dan juga bergantung pada mode yang Anda gunakan untuk jenis data tertentu (seperti Video Plus, Video Standar, atau Video Penting).
Lokasi
Lokasi adalah region yang dapat Anda tentukan dalam permintaan untuk mengontrol tempat data disimpan dalam penyimpanan. Untuk mengetahui daftar region yang tersedia, lihat AI Generatif di lokasi Vertex AI.
Pesan error
Error kuota terlampaui
google.api_core.exceptions.ResourceExhausted: 429 Quota exceeded for
aiplatform.googleapis.com/online_prediction_requests_per_base_model with base
model: multimodalembedding. Please submit a quota increase request.
Jika ini adalah pertama kalinya Anda menerima error ini, gunakan konsol Google Cloud guna meminta penambahan kuota untuk project Anda. Gunakan filter berikut sebelum meminta penambahan:
Service ID: aiplatform.googleapis.com
metric: aiplatform.googleapis.com/online_prediction_requests_per_base_model
base_model:multimodalembedding
Jika Anda telah mengirimkan permintaan penambahan kuota, tunggu sebelum mengirimkan permintaan lain. Jika Anda perlu menambah kuota lagi, ulangi permintaan penambahan kuota dengan alasan untuk permintaan kuota berkelanjutan.
Menentukan embedding dimensi lebih rendah
Secara default, permintaan embedding menampilkan vektor float 1408 untuk jenis data. Anda juga dapat menentukan embedding dimensi rendah (128, 256, atau 512 vektor float) untuk data teks dan gambar. Dengan opsi ini, Anda dapat mengoptimalkan latensi dan penyimpanan atau kualitas berdasarkan rencana penggunaan embedding. Embedding dimensi lebih rendah memberikan kebutuhan penyimpanan yang lebih rendah dan latensi yang lebih rendah untuk tugas penyematan berikutnya (seperti penelusuran atau rekomendasi), sementara embedding dengan dimensi lebih tinggi menawarkan akurasi yang lebih tinggi untuk tugas yang sama.
REST
Dimensi rendah dapat diakses dengan menambahkan kolom parameters.dimension
.
Parameter ini menerima salah satu nilai berikut: 128
, 256
, 512
, atau
1408
. Responsnya menyertakan embedding dimensi tersebut.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION: Region project Anda. Misalnya,
us-central1
,europe-west2
, atauasia-northeast3
. Untuk mengetahui daftar region yang tersedia, lihat Generative AI di lokasi Vertex AI. - PROJECT_ID: ID project Google Cloud Anda.
- IMAGE_URI: URI Cloud Storage video target untuk mendapatkan embeddings.
Contoh,
gs://my-bucket/embeddings/supermarket-img.png
.Anda juga dapat menyediakan gambar sebagai string byte berenkode base64:
[...] "image": { "bytesBase64Encoded": "B64_ENCODED_IMAGE" } [...]
- TEXT: Teks target yang akan diberikan embedding. Contoh,
a cat
. - EMBEDDING_DIMENSION: Jumlah dimensi penyematan. Nilai yang lebih rendah menawarkan latensi yang berkurang saat menggunakan embedding ini untuk tugas berikutnya, sementara nilai yang lebih tinggi memberikan akurasi yang lebih baik. Nilai yang tersedia:
128
,256
,512
, dan1408
(default).
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
Isi JSON permintaan:
{ "instances": [ { "image": { "gcsUri": "IMAGE_URI" }, "text": "TEXT" } ], "parameters": { "dimension": EMBEDDING_DIMENSION } }
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_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001: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-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict" | Select-Object -Expand Content
Dimensi 128:
{ "predictions": [ { "imageEmbedding": [ 0.0279239565, [...128 dimension vector...] 0.00403284049 ], "textEmbedding": [ 0.202921599, [...128 dimension vector...] -0.0365431122 ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
Dimensi 256:
{ "predictions": [ { "imageEmbedding": [ 0.248620048, [...256 dimension vector...] -0.0646447465 ], "textEmbedding": [ 0.0757875815, [...256 dimension vector...] -0.02749932 ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
Dimensi 512:
{ "predictions": [ { "imageEmbedding": [ -0.0523675755, [...512 dimension vector...] -0.0444030389 ], "textEmbedding": [ -0.0592851527, [...512 dimension vector...] 0.0350437127 ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
Mengirim permintaan penyematan (gambar dan teks)
Gunakan contoh kode berikut untuk mengirim permintaan embedding dengan data gambar dan teks. Contoh ini menunjukkan cara mengirim permintaan dengan kedua jenis data, tetapi Anda juga dapat menggunakan layanan dengan masing-masing jenis data.
Mendapatkan embedding teks dan gambar
REST
Untuk informasi selengkapnya tentang permintaan model multimodalembedding
, lihat
referensi API model multimodalembedding
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION: Region project Anda. Misalnya,
us-central1
,europe-west2
, atauasia-northeast3
. Untuk mengetahui daftar region yang tersedia, lihat Generative AI di lokasi Vertex AI. - PROJECT_ID: ID project Google Cloud Anda.
- TEXT: Teks target yang akan diberikan embedding. Contoh,
a cat
. - B64_ENCODED_IMG: Gambar target yang akan diberikan embedding. Gambar harus ditentukan sebagai string byte berenkode base64.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
Isi JSON permintaan:
{ "instances": [ { "text": "TEXT", "image": { "bytesBase64Encoded": "B64_ENCODED_IMG" } } ] }
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_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001: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-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict" | Select-Object -Expand Content
{ "predictions": [ { "textEmbedding": [ 0.010477379, -0.00399621, 0.00576670747, [...] -0.00823613815, -0.0169572588, -0.00472954148 ], "imageEmbedding": [ 0.00262696808, -0.00198890246, 0.0152047109, -0.0103145819, [...] 0.0324628279, 0.0284924973, 0.011650892, -0.00452344026 ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
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.
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.
Mengirim permintaan penyematan (video, gambar, atau teks)
Saat mengirimkan permintaan penyematan, Anda dapat menentukan video input saja, atau menentukan kombinasi data video, gambar, dan teks.
Mode penyematan video
Ada tiga mode yang dapat digunakan dengan embedding video: Essential, Standar, atau Plus. Mode ini sesuai dengan kepadatan embedding yang dihasilkan, yang dapat ditentukan oleh konfigurasi interval_sec
dalam permintaan. Untuk setiap interval
video dengan panjang interval_sec
, embedding akan dibuat. Durasi interval
video minimal adalah 4 detik. Durasi interval yang lebih besar dari 120 detik
dapat berdampak negatif pada kualitas embedding yang dihasilkan.
Harga untuk penyematan video bergantung pada mode yang Anda gunakan. Untuk mengetahui informasi selengkapnya, lihat pricing.
Tabel berikut merangkum tiga mode yang dapat Anda gunakan untuk embedding video:
Mode | Jumlah maksimum embedding per menit | Interval penyematan video (nilai minimum) |
---|---|---|
Penting | 4 | 15 Ini sesuai dengan: intervalSec >= 15 |
Standar | 8 | 8 Ini sesuai dengan: 8 <= intervalSec < 15 |
Plus | 15 | 4 Ini sesuai dengan: 4 <= intervalSec < 8 |
Praktik terbaik penyematan video
Pertimbangkan hal-hal berikut saat Anda mengirim permintaan penyematan video:
Untuk menghasilkan satu embedding untuk dua menit pertama video input dengan durasi berapa pun, gunakan setelan
videoSegmentConfig
berikut:request.json
:// other request body content "videoSegmentConfig": { "intervalSec": 120 } // other request body content
Agar dapat membuat penyematan untuk video dengan durasi lebih dari dua menit, Anda dapat mengirim beberapa permintaan yang menentukan waktu mulai dan waktu berakhir di
videoSegmentConfig
:request1.json
:// other request body content "videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 120 } // other request body content
request2.json
:// other request body content "videoSegmentConfig": { "startOffsetSec": 120, "endOffsetSec": 240 } // other request body content
Mendapatkan embedding video
Gunakan contoh berikut guna mendapatkan embedding untuk konten video saja.
REST
Untuk informasi selengkapnya tentang permintaan model multimodalembedding
, lihat
referensi API model multimodalembedding
.
Contoh berikut menggunakan video yang terletak di Cloud Storage. Anda juga
dapat menggunakan kolom video.bytesBase64Encoded
untuk memberikan
representasi string berenkode base64 dari
video.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION: Region project Anda. Misalnya,
us-central1
,europe-west2
, atauasia-northeast3
. Untuk mengetahui daftar region yang tersedia, lihat Generative AI di lokasi Vertex AI. - PROJECT_ID: ID project Google Cloud Anda.
- VIDEO_URI: URI Cloud Storage video target untuk mendapatkan embeddings.
Contoh,
gs://my-bucket/embeddings/supermarket-video.mp4
.Anda juga dapat menyediakan video sebagai string byte berenkode base64:
[...] "video": { "bytesBase64Encoded": "B64_ENCODED_VIDEO" } [...]
videoSegmentConfig
(START_SECOND, END_SECOND, INTERVAL_SECONDS). Opsional. Segmen video tertentu (dalam detik) tempat embedding dibuat.Contoh:
[...] "videoSegmentConfig": { "startOffsetSec": 10, "endOffsetSec": 60, "intervalSec": 10 } [...]
Menggunakan konfigurasi ini akan menentukan data video dari 10 detik hingga 60 detik dan menghasilkan embeddings untuk interval video 10 detik berikut: [10, 20), [20, 30), [30, 40), [40, 50), [50, 60). Interval video ini (
"intervalSec": 10
) termasuk dalam Mode penyematan video standar, dan pengguna ditagih dengan Tarif harga mode standar.Jika Anda menghapus
videoSegmentConfig
, layanan akan menggunakan nilai default berikut:"videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 120, "intervalSec": 16 }
. Interval video ini ("intervalSec": 16
) termasuk dalam Mode penyematan video penting, dan pengguna akan ditagih dengan Tarif harga mode Penting.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
Isi JSON permintaan:
{ "instances": [ { "video": { "gcsUri": "VIDEO_URI", "videoSegmentConfig": { "startOffsetSec": START_SECOND, "endOffsetSec": END_SECOND, "intervalSec": INTERVAL_SECONDS } } } ] }
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_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001: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-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict" | Select-Object -Expand Content
Respons (video 7 detik, tidak ada videoSegmentConfig
yang ditentukan):
{ "predictions": [ { "videoEmbeddings": [ { "endOffsetSec": 7, "embedding": [ -0.0045467657, 0.0258095954, 0.0146885719, 0.00945400633, [...] -0.0023291884, -0.00493789, 0.00975185353, 0.0168156829 ], "startOffsetSec": 0 } ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
Respons (video 59 detik, dengan konfigurasi segmen video berikut: "videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 60, "intervalSec": 10 }
):
{ "predictions": [ { "videoEmbeddings": [ { "endOffsetSec": 10, "startOffsetSec": 0, "embedding": [ -0.00683252793, 0.0390476175, [...] 0.00657121744, 0.013023301 ] }, { "startOffsetSec": 10, "endOffsetSec": 20, "embedding": [ -0.0104404651, 0.0357737206, [...] 0.00509833824, 0.0131902946 ] }, { "startOffsetSec": 20, "embedding": [ -0.0113538112, 0.0305239167, [...] -0.00195809244, 0.00941874553 ], "endOffsetSec": 30 }, { "embedding": [ -0.00299320649, 0.0322436653, [...] -0.00993082579, 0.00968887936 ], "startOffsetSec": 30, "endOffsetSec": 40 }, { "endOffsetSec": 50, "startOffsetSec": 40, "embedding": [ -0.00591270532, 0.0368893594, [...] -0.00219071587, 0.0042470959 ] }, { "embedding": [ -0.00458270218, 0.0368121453, [...] -0.00317760976, 0.00595594104 ], "endOffsetSec": 59, "startOffsetSec": 50 } ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
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 embedding gambar, teks, dan video
Gunakan contoh berikut guna mendapatkan embedding untuk konten video, teks, dan gambar.
REST
Untuk informasi selengkapnya tentang permintaan model multimodalembedding
, lihat
referensi API model multimodalembedding
.
Contoh berikut menggunakan data gambar, teks, dan video. Anda dapat menggunakan kombinasi jenis data ini dalam isi permintaan.
Selain itu, contoh ini menggunakan video yang berada di Cloud Storage. Anda juga
dapat menggunakan kolom video.bytesBase64Encoded
untuk memberikan
representasi string berenkode base64 dari
video.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION: Region project Anda. Misalnya,
us-central1
,europe-west2
, atauasia-northeast3
. Untuk mengetahui daftar region yang tersedia, lihat Generative AI di lokasi Vertex AI. - PROJECT_ID: ID project Google Cloud Anda.
- TEXT: Teks target yang akan diberikan embedding. Contoh,
a cat
. - IMAGE_URI: URI Cloud Storage video target untuk mendapatkan embeddings.
Contoh,
gs://my-bucket/embeddings/supermarket-img.png
.Anda juga dapat menyediakan gambar sebagai string byte berenkode base64:
[...] "image": { "bytesBase64Encoded": "B64_ENCODED_IMAGE" } [...]
- VIDEO_URI: URI Cloud Storage video target untuk mendapatkan embeddings.
Contoh,
gs://my-bucket/embeddings/supermarket-video.mp4
.Anda juga dapat menyediakan video sebagai string byte berenkode base64:
[...] "video": { "bytesBase64Encoded": "B64_ENCODED_VIDEO" } [...]
videoSegmentConfig
(START_SECOND, END_SECOND, INTERVAL_SECONDS). Opsional. Segmen video tertentu (dalam detik) tempat embedding dibuat.Contoh:
[...] "videoSegmentConfig": { "startOffsetSec": 10, "endOffsetSec": 60, "intervalSec": 10 } [...]
Menggunakan konfigurasi ini akan menentukan data video dari 10 detik hingga 60 detik dan menghasilkan embeddings untuk interval video 10 detik berikut: [10, 20), [20, 30), [30, 40), [40, 50), [50, 60). Interval video ini (
"intervalSec": 10
) termasuk dalam Mode penyematan video standar, dan pengguna ditagih dengan Tarif harga mode standar.Jika Anda menghapus
videoSegmentConfig
, layanan akan menggunakan nilai default berikut:"videoSegmentConfig": { "startOffsetSec": 0, "endOffsetSec": 120, "intervalSec": 16 }
. Interval video ini ("intervalSec": 16
) termasuk dalam Mode penyematan video penting, dan pengguna akan ditagih dengan Tarif harga mode Penting.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict
Isi JSON permintaan:
{ "instances": [ { "text": "TEXT", "image": { "gcsUri": "IMAGE_URI" }, "video": { "gcsUri": "VIDEO_URI", "videoSegmentConfig": { "startOffsetSec": START_SECOND, "endOffsetSec": END_SECOND, "intervalSec": INTERVAL_SECONDS } } } ] }
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_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001: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-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/multimodalembedding@001:predict" | Select-Object -Expand Content
{ "predictions": [ { "textEmbedding": [ 0.0105433334, -0.00302835181, 0.00656806398, 0.00603460241, [...] 0.00445805816, 0.0139605571, -0.00170318608, -0.00490092579 ], "videoEmbeddings": [ { "startOffsetSec": 0, "endOffsetSec": 7, "embedding": [ -0.00673126569, 0.0248149596, 0.0128901172, 0.0107588246, [...] -0.00180952181, -0.0054573305, 0.0117037306, 0.0169312079 ] } ], "imageEmbedding": [ -0.00728622358, 0.031021487, -0.00206603738, 0.0273937676, [...] -0.00204976718, 0.00321615417, 0.0121978866, 0.0193375275 ] } ], "deployedModelId": "DEPLOYED_MODEL_ID" }
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.
Langkah selanjutnya
- Baca blog "Apa itu Penelusuran Multimodal: 'LLM dengan visi' mengubah bisnis".
- Untuk informasi tentang kasus penggunaan hanya teks (penelusuran semantik berbasis teks, pengelompokan, analisis dokumen berformat panjang, dan kasus penggunaan pengambilan teks atau question answering lainnya), baca Mendapatkan teks embedding.
- Lihat semua penawaran AI generatif gambar Vertex AI di ringkasan Imagen di Vertex AI.
- Jelajahi model yang telah dilatih sebelumnya di Model Garden.
- Pelajari praktik terbaik AI yang bertanggung jawab dan filter keamanan di Vertex AI.