Dokumen ini menjelaskan cara membuat embedding teks menggunakan Text embeddings API Vertex AI.
Vertex AI text embeddings API menggunakan representasi vektor padat: text-embedding-gecko, misalnya, menggunakan vektor 768 dimensi. Model penyematan vektor padat menggunakan metode deep learning yang mirip dengan yang digunakan oleh model bahasa besar. Tidak seperti vektor jarang, yang cenderung memetakan kata ke angka secara langsung, vektor padat dirancang untuk merepresentasikan makna sebuah teks dengan lebih baik. Manfaat penggunaan penyematan vektor rapat dalam AI generatif adalah Anda dapat menelusuri bagian yang lebih sesuai dengan makna kueri, bukan menelusuri pencocokan kata atau sintaksis langsung, meskipun bagian tersebut tidak menggunakan bahasa yang sama.
Vektor dinormalisasi, sehingga Anda dapat menggunakan kesamaan kosinus, perkalian titik, atau jarak Euclidean untuk memberikan peringkat kesamaan yang sama.
- Untuk mempelajari penyematan lebih lanjut, lihat ringkasan API penyematan.
- Untuk mempelajari model penyematan teks, lihat Penyematan teks.
- Untuk informasi tentang bahasa yang didukung setiap model penyematan, lihat Bahasa teks yang didukung.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
- Pilih jenis tugas untuk tugas penyematan Anda.
Model yang didukung
Anda bisa mendapatkan embedding teks dengan menggunakan model berikut:
Model bahasa Inggris | Model multibahasa |
---|---|
textembedding-gecko@001 |
textembedding-gecko-multilingual@001 |
textembedding-gecko@003 |
text-multilingual-embedding-002 |
text-embedding-004 |
|
text-embedding-005 |
Jika Anda baru menggunakan model ini, sebaiknya gunakan versi terbaru.
Untuk teks bahasa Inggris, gunakan text-embedding-005
. Untuk teks multibahasa, gunakan
text-multilingual-embedding-002
.
Mendapatkan embedding teks untuk cuplikan teks
Anda bisa mendapatkan embedding teks untuk cuplikan teks dengan menggunakan Vertex AI API atau
Vertex AI SDK untuk Python. Untuk setiap permintaan, Anda dibatasi hingga 250 teks input
di us-central1
, dan di region lain, teks input maksimumnya adalah 5.
API ini memiliki batas token input maksimum 20.000. Input yang melebihi batas ini akan menyebabkan error 500. Setiap teks input dibatasi lebih lanjut hingga
2.048 token; kelebihan apa pun akan terpotong secara otomatis. Anda juga dapat menonaktifkan pemotongan
senyap dengan menetapkan autoTruncate
ke false
.
Semua model menghasilkan output dengan 768 dimensi secara default. Namun, model berikut memberi pengguna opsi untuk memilih dimensi output antara 1 dan 768. Dengan memilih dimensi output yang lebih kecil, pengguna dapat menghemat memori dan ruang penyimpanan, sehingga menghasilkan komputasi yang lebih efisien.
text-embedding-005
text-multilingual-embedding-002
Contoh berikut menggunakan model text-embedding-004
.
REST
Untuk mendapatkan embedding teks, kirim permintaan POST dengan menentukan ID model dari model penayang.
Sebelum menggunakan data permintaan apa pun, lakukan penggantian sebagai berikut:
- PROJECT_ID: Project ID Anda.
- TEXT: Teks yang ingin Anda buatkan embedding-nya. Batas: lima teks hingga 2.048 token per teks untuk semua model kecuali
textembedding-gecko@001
. Panjang token input maksimum untuktextembedding-gecko@001
adalah 3072. - AUTO_TRUNCATE: Jika ditetapkan ke
false
, teks yang melebihi batas token akan menyebabkan permintaan gagal. Nilai defaultnya adalahtrue
.
Metode HTTP dan URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-embedding-004:predict
Isi JSON permintaan:
{ "instances": [ { "content": "TEXT"} ], "parameters": { "autoTruncate": AUTO_TRUNCATE } }
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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-embedding-004: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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-embedding-004:predict" | Select-Object -Expand Content
Anda akan menerima respons JSON yang mirip dengan yang berikut ini: Perhatikan bahwa values
telah dipotong untuk menghemat ruang penyimpanan.
Contoh perintah curl
MODEL_ID="text-embedding-004"
PROJECT_ID=PROJECT_ID
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/${MODEL_ID}:predict -d \
$'{
"instances": [
{ "content": "What is life?"}
],
}'
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.
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Go Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat 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, 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 mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Model terbaru
text-embedding-005
mendukung jenis tugas baru CODE_RETRIEVAL_QUERY
, yang dapat digunakan untuk
mengambil blok kode yang relevan menggunakan kueri teks biasa. Untuk menggunakan fitur ini, blok kode harus disematkan menggunakan jenis tugas RETRIEVAL_DOCUMENT
, sedangkan kueri teks disematkan menggunakan CODE_RETRIEVAL_QUERY
.
Untuk mempelajari semua jenis tugas, lihat referensi model.
Berikut ini contohnya:
REST
PROJECT_ID=PROJECT_ID
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-embedding-005:predict -d \
$'{
"instances": [
{
"task_type": "CODE_RETRIEVAL_QUERY",
"content": "Function to add two numbers"
}
],
}'
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.
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Go Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat 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, 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 mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Batasan berikut berlaku saat menggunakan model ini:
- Jangan gunakan model pratinjau ini di sistem produksi atau yang sangat penting.
- Model ini hanya tersedia di
us-central1
. - Prediksi batch tidak didukung.
- Penyesuaian tidak didukung.
Menambahkan penyematan ke database vektor
Setelah membuat embedding, Anda dapat menambahkan embedding ke database vektor, seperti Vector Search. Hal ini memungkinkan pengambilan dengan latensi rendah, dan sangat penting seiring bertambahnya ukuran data Anda.
Untuk mempelajari Vector Search lebih lanjut, lihat Ringkasan Vector Search.
Langkah selanjutnya
- Untuk mempelajari batas kapasitas lebih lanjut, lihat Batas kapasitas AI Generatif di Vertex AI.
- Untuk mendapatkan prediksi batch untuk embedding, lihat Mendapatkan prediksi embedding teks batch
- Untuk mempelajari embedding multimodal lebih lanjut, lihat Mendapatkan embedding multimodal
- Untuk menyesuaikan embedding, lihat Menyesuaikan embedding teks
- Untuk mempelajari lebih lanjut riset di balik
text-embedding-005
dantext-multilingual-embedding-002
, lihat makalah riset Gecko: Versatile Text Embeddings Distilled from Large Language Models.