Dengan Vertex AI text-embeddings API, Anda dapat membuat penyematan teks menggunakan AI Generatif di Vertex AI. Embedding teks adalah representasi numerik dari teks yang menangkap hubungan antara kata dan frasa. Model machine learning, terutama model AI generatif, cocok untuk membuat embedding ini dengan mengidentifikasi pola dalam set data teks besar. Aplikasi Anda dapat menggunakan penyematan teks untuk memproses dan menghasilkan bahasa, sehingga mengenali makna yang kompleks dan hubungan semantik khusus untuk konten Anda. Anda berinteraksi dengan embedding teks setiap kali menyelesaikan Google Penelusuran atau melihat rekomendasi streaming musik.
Beberapa kasus penggunaan umum untuk embedding teks adalah:
- Penelusuran semantik: Penelusuran teks yang diberi peringkat berdasarkan kemiripan semantik.
- Klasifikasi: Menampilkan class item yang atribut teksnya mirip dengan teks yang diberikan.
- Pengelompokan: Mengelompokkan item yang atribut teksnya mirip dengan teks yang diberikan.
- Deteksi Pencilan: Menampilkan item yang atribut teksnya paling tidak berkaitan dengan teks yang diberikan.
- Antarmuka percakapan: Mengelompokkan grup kalimat yang dapat menyebabkan respons serupa, seperti dalam ruang sematan tingkat percakapan.
Embedding teks bekerja dengan mengubah teks menjadi array bilangan floating point, yang disebut vektor. Vektor ini dirancang untuk menangkap makna teks. Panjang array embedding disebut dimensialitas vektor. Misalnya, satu bagian teks mungkin direpresentasikan oleh vektor yang berisi ratusan dimensi. Kemudian, dengan menghitung jarak numerik antara representasi vektor dari dua bagian teks, aplikasi dapat menentukan kesamaan antar-objek.
Vertex AI text embeddings API menggunakan representasi vektor padat: misalnya, text-embedding-gecko menggunakan vektor 768 dimensi. Model embedding vektor padat menggunakan metode deep learning yang mirip dengan yang digunakan oleh model bahasa besar. Tidak seperti vektor renggang, yang cenderung memetakan kata ke angka secara langsung, vektor padat dirancang untuk merepresentasikan makna sebuah teks dengan lebih baik. Manfaat penggunaan embedding vektor padat dalam AI generatif adalah bahwa Anda dapat menelusuri bagian yang selaras dengan makna kueri secara lebih baik, meskipun bagian tersebut tidak menggunakan bahasa yang sama, tanpa perlu mencari kecocokan kata atau sintaksis langsung.
- Untuk mempelajari embedding lebih lanjut, baca Berkenalan dengan alat serba guna AI: Embedding vektor.
- Untuk mengikuti kursus kilat ML dasar tentang embedding, lihat Embeddings.
- Untuk mempelajari cara menyimpan embedding vektor dalam database lebih lanjut, lihat halaman Discover dan Ringkasan Penelusuran Vektor
Prasyarat
Ada prasyarat khusus agar berhasil membuat embedding. Untuk memulai, lihat panduan memulai: Mencoba embedding teks.
Gunakan colab ini untuk memanggil model embedding teks yang baru dirilis (
Jupyter notebook: Panggil model penyematan teks menggunakan Colab atau notebook Jupyter. |
Contoh kasus penggunaan: Mengembangkan chatbot rekomendasi buku
Jika ingin mengembangkan chatbot rekomendasi buku, hal pertama yang harus dilakukan adalah menggunakan deep neural network (DNN) untuk mengonversi setiap buku menjadi vektor embedding, dengan satu vektor embedding mewakili satu buku. Anda dapat memasukkan judul buku, atau hanya konten teks, sebagai input ke DNN. Atau, Anda dapat menggunakan keduanya secara bersamaan, beserta metadata lain yang mendeskripsikan buku, seperti genre.
Embedding dalam contoh ini dapat terdiri dari ribuan judul buku beserta ringkasan dan genrenya, dan mungkin memiliki representasi untuk buku seperti Wuthering Heights oleh Emily Brontë dan Persuasion oleh Jane Austen yang mirip satu sama lain (jarak kecil antara representasi numerik). Sedangkan representasi numerik untuk buku The Great Gatsby karya F. Scott Fitzgerald akan lebih jauh, karena periode waktu, genre, dan ringkasannya kurang mirip.
Input merupakan pengaruh utama terhadap orientasi ruang sematan. Misalnya, jika kita hanya memiliki input berupa judul buku, dua buku dengan judul yang mirip, tetapi memiliki ringkasan yang sangat berbeda, bisa berdekatan. Namun, jika kita menyertakan judul dan ringkasannya, kedua buku yang sama ini akan kurang serupa (lebih jauh jaraknya) dalam ruang sematan.
Bekerja dengan AI generatif, chatbot saran buku ini dapat meringkas, menyarankan, dan menampilkan buku yang mungkin Anda suka (atau tidak suka), berdasarkan kueri Anda.
Model yang didukung
Untuk mempelajari versi model penyematan teks stabil yang tersedia, lihat Versi model stabil yang tersedia. Untuk mempelajari versi model penyematan teks terbaru yang tersedia, lihat Model terbaru.
Sangat disarankan untuk menentukan versi model stabil (misalnya textembedding-gecko@003
). Versi terbaru model ada dalam Pratinjau dan bukan Ketersediaan Umum (GA).
Karena versi terbaru ada dalam
Pratinjau,
versi terbaru tidak dijamin siap produksi.
Sangat penting untuk menggunakan versi model stabil misalnya,
textembedding-gecko@003
untuk aplikasi yang memerlukan embedding yang kompatibel
dengan versi lama. Jika kompatibilitas mundur tidak menjadi masalah dan Anda ingin menggunakan versi model terbaru, Anda harus menentukan @latest
secara eksplisit.
Jika tidak ada versi yang ditentukan, textembedding-gecko
ditetapkan secara default ke textembedding-gecko@003
, dan textembedding-gecko-multilingual
ditetapkan secara default ke textembedding-gecko-multilingual@001
.
Model terbaru
Dua model tersedia untuk Pratinjau:
text-embedding-preview-0409
text-multilingual-embedding-preview-0409
Model-model ini lebih baik daripada model sebelumnya dalam tolok ukur yang ditetapkan yang mencakup berbagai tugas downstream, seperti pengambilan dan klasifikasi. Untuk mempelajari lebih lanjut, lihat Gecko: Penyematan teks serbaguna yang disaring dari model bahasa besar.
Kedua model ini masing-masing menawarkan kualitas penyematan yang lebih baik daripada model textembedding-gecko@003
dan textembedding-gecko-multilingual@001
. Model ini terpisah
dari konvensi penamaan model-name@version
. Tentukan model ini tanpa akhiran "@version". Berikut ini contohnya:
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/locations/us-central1/publishers/google/models/text-embedding-preview-0409:predict -d $'{
"instances": [
{ "content": "What is life?"}
],
}'
Selain peningkatan kualitas, model baru ini mendukung kemampuan berikut:
Parameter baru
outputDimensionality
didukung. Anda dapat menggunakan parameter ini untuk mengurangi ukuran embedding, misalnya untuk pengoptimalan penyimpanan.QUESTION_ANSWERING
FACT_VERIFICATION
Dua jenis tugas baru didukung. Untuk melihat jenis tugas lainnya, lihat referensi model.
Contoh berikut menunjukkan kemampuan baru:
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/locations/us-central1/publishers/google/models/text-embedding-preview-0409:predict -d $'{
"instances": [
{
"task_type": "QUESTION_ANSWERING",
"content": "What is life?"
}
],
"parameters": {
"outputDimensionality": 256
}
}'
Batasan berikut berlaku saat menggunakan model ini:
- Jangan gunakan model Pratinjau ini pada sistem produksi atau misi penting.
- Model-model ini hanya tersedia dalam
us-central1
. - Prediksi batch tidak didukung.
- Penyesuaian tidak didukung.
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 wilayah lain, teks input maksimum adalah 5.
Setiap teks input memiliki batas token sebesar 2.000. Input yang lebih panjang dari panjang ini
akan dipotong secara otomatis. Anda juga dapat menonaktifkan pemotongan senyap dengan menetapkan
autoTruncate
ke false
.
Contoh ini menggunakan model textembedding-gecko@003
.
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 embeddingsnya. Batas: lima teks hingga 3.072 token per teks.
- AUTO_TRUNCATE: Jika ditetapkan ke
false
, teks yang melebihi batas token akan menyebabkan permintaan gagal. Nilai default-nya adalahtrue
.
Metode HTTP dan URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/textembedding-gecko@003: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/textembedding-gecko@003: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/textembedding-gecko@003: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="textembedding-gecko@003"
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, 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.
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.
Menambahkan embedding ke database vektor
Setelah membuat embedding, Anda dapat menambahkan embedding ke database vektor, seperti Vector Search. Hal ini memungkinkan pengambilan latensi rendah, dan sangat penting seiring bertambahnya ukuran data Anda.
Untuk mempelajari Penelusuran Vektor lebih lanjut, lihat Ringkasan Penelusuran Vektor.
Perubahan API pada model yang dirilis pada atau setelah Agustus 2023
Saat menggunakan versi model yang dirilis pada atau setelah Agustus 2023, termasuk
textembedding-gecko@003
dan textembedding-gecko-multilingual@001
,
ada parameter jenis tugas baru dan judul opsional (hanya berlaku dengan
task_type=RETRIEVAL_DOCUMENT
).
Parameter baru ini berlaku untuk model pratinjau publik ini dan semua model stabil ke depannya.
{
"instances": [
{
"task_type": "RETRIEVAL_DOCUMENT",
"title": "document title",
"content": "I would like embeddings for this text!"
},
]
}
Parameter task_type
ditentukan sebagai aplikasi downstream yang dimaksudkan untuk
membantu model menghasilkan embedding dengan kualitas yang lebih baik. Parameter ini adalah string yang dapat mengambil
salah satu nilai berikut:
task_type |
Deskripsi |
---|---|
RETRIEVAL_QUERY |
Menentukan teks yang ditentukan adalah kueri dalam setelan penelusuran atau pengambilan. |
RETRIEVAL_DOCUMENT |
Menentukan teks yang ditentukan adalah dokumen dalam setelan penelusuran atau pengambilan. |
SEMANTIC_SIMILARITY |
Menentukan teks yang ditentukan digunakan untuk Kemiripan Tekstual Semantik (STS). |
CLASSIFICATION |
Menentukan bahwa embedding digunakan untuk klasifikasi. |
CLUSTERING |
Menentukan bahwa embedding digunakan untuk pengelompokan. |
QUESTION_ANSWERING |
Menentukan bahwa penyematan kueri digunakan untuk menjawab pertanyaan. Gunakan RETRIEVAL_DOCUMENT untuk sisi dokumen. |
FACT_VERIFICATION |
Menentukan bahwa penyematan kueri digunakan untuk verifikasi fakta. |
Cakupan bahasa untuk model textembedding-gecko-multilingual
.
Model textembedding-gecko-multilingual@001
telah dievaluasi pada
bahasa berikut:
Arabic (ar)
, Bengali (bn)
, English (en)
, Spanish (es)
, German (de)
,
Persian (fa)
, Finnish (fi)
, French (fr)
, Hindi (hi)
, Indonesian (id)
,
Japanese (ja)
, Korean (ko)
, Russian (ru)
, Swahili (sw)
, Telugu (te)
,
Thai (th)
, Yoruba (yo)
, Chinese (zh)
.
{0, Bulgarian
/5, Bulgarian
ke Bulgarian
Chichewa
Bulgarian
/6/} {8/Afrikaans
Albanian
Amharic
Arabic
Armenian
Azerbaijani
Basque
Belarusian
Bengali
Burmese
Catalan
Cebuano
Chinese
Corsican
Czech
Danish
Dutch
English
Esperanto
Estonian
Filipino
Finnish
French
Galician
Georgian
German
Greek
Gujarati
Haitian Creole
Hausa
Hawaiian
Hebrew
Hindi
Hmong
Hungarian
Icelandic
Igbo
Indonesian
Irish
Italian
Japanese
Javanese
Kannada
Kazakh
Khmer
Korean
Kurdish
Kyrgyz
Lao
Latin
Latvian
Lithuanian
Luxembourgish
Macedonian
Malagasy
Malay
Malayalam
Maltese
Maori
Marathi
Mongolian
Nepali
Norwegian
Pashto
Persian
Polish
Portuguese
Punjabi
Romanian
Russian
Samoan
Scottish Gaelic
Serbian
Shona
Sindhi
Sinhala
Slovak
Slovenian
Somali
Sotho
Spanish
Sundanese
Swahili
Swedish
Tajik
Tamil
Telugu
Thai
Turkish
Ukrainian
Urdu
Uzbek
Vietnamese
Welsh
West Frisian
Xhosa
Yiddish
Yoruba
Zulu
Langkah selanjutnya
- Pelajari cara menyesuaikan model dasar.
- Pelajari praktik terbaik responsible AI dan filter keamanan Vertex AI.