Halaman ini menjelaskan pilihan model penyematan, mencantumkan model penyematan, dan menunjukkan cara menggunakan pilihan model penyematan untuk membuat korpus RAG. Asosiasi antara model Anda dan korpus RAG tetap tetap selama masa aktif korpus RAG Anda.
Embedding adalah representasi numerik dari input. Anda dapat menggunakan penyematan di aplikasi untuk mengenali makna dan hubungan semantik yang kompleks serta untuk memproses dan menghasilkan bahasa.
Embedding berfungsi dengan mengonversi teks, gambar, dan video menjadi array bilangan floating point yang disebut vektor. Makin dekat dua vektor dalam ruang penyematan, makin besar kesamaan inputnya.
Model penyematan adalah komponen penting dari sistem pengambilan semantik. Performa sistem pengambilan bergantung pada seberapa baik model penyematan memetakan hubungan dalam data Anda.
Mesin RAG Vertex AI menerapkan retrieval augmented generation (RAG), dan menawarkan pilihan model penyematan berikut untuk digunakan dalam korpus RAG:
- Model penyematan teks Vertex AI: Model yang dilatih oleh penayang, seperti Google. Model dilatih dengan set data teks yang besar, dan memberikan dasar pengukuran yang kuat untuk banyak tugas.
- Model penyematan teks Vertex AI yang disesuaikan dengan baik: Model yang dilatih agar memiliki pengetahuan khusus atau performa yang sangat disesuaikan.
- Model penyematan OSS: Model penyematan open source pihak ketiga dalam varian khusus bahasa Inggris dan multibahasa.
Model embedding
Model penyematan digunakan untuk membuat korpus serta untuk penelusuran dan pengambilan selama pembuatan respons. Bagian ini mencantumkan model penyematan yang didukung.
textembedding-gecko@003
textembedding-gecko-multilingual@001
text-embedding-004
(default)text-multilingual-embedding-002
textembedding-gecko@002
(khusus versi yang disesuaikan)textembedding-gecko@001
(khusus versi yang disesuaikan)
Untuk informasi selengkapnya tentang cara menyesuaikan model penyematan, lihat Menyesuaikan embedding teks.
Model penyematan terbuka berikut juga didukung. Anda dapat menemukannya di Model Garden.
e5-base-v2
e5-large-v2
e5-small-v2
multilingual-e5-large
multilingual-e5-small
Menggunakan model penyematan teks Vertex AI
Vertex AI text embedding API menggunakan model embedding Gecko, yang menghasilkan vektor embedding padat dengan 768 dimensi. Embedding padat menyimpan makna teks, tidak seperti vektor jarang, yang cenderung memetakan kata ke angka secara langsung. Manfaat penggunaan penyematan vektor padat dalam AI generatif adalah Anda dapat menelusuri bagian yang selaras dengan makna kueri dengan lebih baik, bukan menelusuri kata atau sintaksis yang cocok secara langsung, meskipun bagian tersebut tidak menggunakan bahasa yang sama.
Model Gecko tersedia dalam versi hanya bahasa Inggris dan multibahasa. Tidak seperti model Gecko yang dioptimalkan, model Gecko penayang tidak perlu di-deploy, sehingga menjadikannya kumpulan model yang paling mudah digunakan dengan Vertex AI RAG Engine. Model Gecko berikut direkomendasikan untuk digunakan dengan korpus RAG:
text-embedding-004
text-multilingual-embedding-002
textembedding-gecko@003
textembedding-gecko-multilingual@001
Jika Anda tidak menentukan model penyematan saat membuat korpus RAG,
Vertex AI RAG Engine akan menetapkan model text-embedding-004
secara default untuk
korpus RAG Anda.
Model Gecko penayang mungkin tidak digunakan lagi. Jika hal itu terjadi, model Gecko penerbit tidak dapat digunakan dengan Mesin RAG Vertex AI, bahkan untuk korpus RAG yang dibuat sebelum penghentian. Saat model Gecko tidak digunakan lagi, Anda harus memigrasikan korpus RAG, yang berarti Anda membuat korpus RAG dan mengimpor data. Alternatifnya adalah menggunakan model Gecko yang telah disesuaikan atau model penyematan OSS yang di-deploy sendiri, yang didukung setelah model tidak digunakan lagi.
Contoh kode ini menunjukkan cara membuat korpus RAG dengan model Gecko penayang.
curl
ENDPOINT=us-central1-aiplatform.googleapis.com
PROJECT_ID=YOUR_PROJECT_ID
// Set this to your choice of publisher Gecko model. Note that the full resource name of the publisher model is required.
// Example: projects/${PROJECT_ID}/locations/us-central1/publishers/google/models/text-embedding-004
ENDPOINT_NAME=YOUR_ENDPOINT_NAME
// Set a display name for your corpus.
// For example, "my test corpus"
CORPUS_DISPLAY_NAME=YOUR_CORPUS_DISPLAY_NAME
// CreateRagCorpus
// Input: ENDPOINT, PROJECT_ID, ENDPOINT_NAME, CORPUS_DISPLAY_NAME
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${ENDPOINT}/v1beta1/projects/${PROJECT_ID}/locations/us-central1/ragCorpora \
-d '{
"display_name" : '\""${CORPUS_DISPLAY_NAME}"\"',
"rag_embedding_model_config" : {
"vertex_prediction_endpoint": {
"endpoint": '\""${ENDPOINT_NAME}"\"'
}
}
}'
Vertex AI SDK untuk Python
import vertexai
from vertexai import rag
# Set Project
PROJECT_ID = "YOUR_PROJECT_ID"
vertexai.init(project=${PROJECT_ID}, location="us-central1")
# Configure a Google first-party embedding model
embedding_model_config = rag.EmbeddingModelConfig(
publisher_model="publishers/google/models/text-embedding-004"
)
# Name your corpus
DISPLAY_NAME = "YOUR_CORPUS_DISPLAY_NAME"
rag_corpus = rag.create_corpus(
display_name=DISPLAY_NAME, embedding_model_config=embedding_model_config
)
Menggunakan model penyematan teks Vertex AI yang telah disesuaikan
Meskipun model penayang dasar dilatih pada set data teks yang besar dan memberikan dasar pengukuran yang kuat untuk banyak tugas, mungkin ada skenario saat Anda memerlukan model untuk memiliki pengetahuan khusus atau performa yang sangat disesuaikan. Dalam kasus tersebut, penyesuaian model memungkinkan Anda menyesuaikan representasi model menggunakan data yang relevan. Manfaat tambahan dari pendekatan ini adalah saat model disesuaikan, gambar yang dihasilkan akan dimiliki oleh Anda dan tidak terpengaruh oleh penghentian penggunaan model Gecko. Semua model penyematan Gecko yang disesuaikan menghasilkan penyematan dengan vektor 768 dimensi. Untuk mempelajari model ini lebih lanjut, lihat Mendapatkan embedding teks.
Untuk menyesuaikan model Gecko, lihat Menyesuaikan embedding teks.
Contoh kode ini menunjukkan cara membuat korpus RAG dengan model Gecko yang dioptimalkan dan di-deploy.
curl
ENDPOINT=us-central1-aiplatform.googleapis.com
PROJECT_ID=YOUR_PROJECT_ID
// Your Vertex AI endpoint resource with the deployed fine-tuned Gecko model
// Example: projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/${ENDPOINT_ID}
ENDPOINT_NAME=YOUR_ENDPOINT_NAME
// Set a display name for your corpus.
// For example, "my test corpus"
CORPUS_DISPLAY_NAME=YOUR_CORPUS_DISPLAY_NAME
// CreateRagCorpus
// Input: ENDPOINT, PROJECT_ID, ENDPOINT_NAME, CORPUS_DISPLAY_NAME
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${ENDPOINT}/v1beta1/projects/${PROJECT_ID}/locations/us-central1/ragCorpora \
-d '{
"display_name" : '\""${CORPUS_DISPLAY_NAME}"\"',
"rag_embedding_model_config" : {
"vertex_prediction_endpoint": {
"endpoint": '\""${ENDPOINT_NAME}"\"'
}
}
}'
Vertex AI SDK untuk Python
import vertexai
from vertexai import rag
# Set Project
PROJECT_ID = "YOUR_PROJECT_ID"
vertexai.init(project=${PROJECT_ID}, location="us-central1")
# Your Vertex Endpoint resource with the deployed fine-tuned Gecko model
ENDPOINT_ID = "YOUR_MODEL_ENDPOINT_ID"
MODEL_ENDPOINT = "projects/${PROJECT_ID}/locations/us-central1/endpoints/${ENDPOINT_ID}"
embedding_model_config = rag.EmbeddingModelConfig(
endpoint=${MODEL_ENDPOINT},
)
# Name your corpus
DISPLAY_NAME = "YOUR_CORPUS_DISPLAY_NAME"
rag_corpus = rag.create_corpus(
display_name=${DISPLAY_NAME}, embedding_model_config=embedding_model_config
)
Menggunakan model penyematan OSS
Vertex AI RAG Engine mendukung model penyematan open source pihak ketiga dalam varian khusus bahasa Inggris dan multibahasa. Tabel ini mencantumkan model E5 yang didukung.
Versi model | Model dasar | Parameter | dimensi penyematan | Khusus bahasa Inggris |
---|---|---|---|---|
e5-base-v2 |
MiniLM |
109 JT | 768 | ✔ |
e5-large-v2 |
MiniLM |
335 JT | 1.024 | ✔ |
e5-small-v2 |
MiniLM |
33 Juta | 384 | ✔ |
multilingual-e5-large |
xlm-roberta-large |
560 JT | 1.024 | ✗ |
multilingual-e5-small |
microsoft/Multilingual-MiniLM-L12-H384 |
118 JT | 384 | ✗ |
Untuk menggunakan model E5 dengan Vertex AI RAG Engine, model E5 harus di-deploy dari Model Garden. Lihat Penyematan Teks E5 di konsol Google Cloud untuk men-deploy model E5 Anda.
Contoh kode ini menunjukkan cara membuat korpus RAG dengan model E5 yang di-deploy.
curl
ENDPOINT=us-central1-aiplatform.googleapis.com
PROJECT_ID=YOUR_PROJECT_ID
// Your Vertex Endpoint resource with the deployed E5 model
// Example: projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/${ENDPOINT_ID}
ENDPOINT_NAME=YOUR_ENDPOINT_NAME
// Set a display name for your corpus.
// For example, "my test corpus"
CORPUS_DISPLAY_NAME=YOUR_CORPUS_DISPLAY_NAME
// CreateRagCorpus
// Input: ENDPOINT, PROJECT_ID, ENDPOINT_NAME, CORPUS_DISPLAY_NAME
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${ENDPOINT}/v1beta1/projects/${PROJECT_ID}/locations/us-central1/ragCorpora \
-d '{
"display_name" : '\""${CORPUS_DISPLAY_NAME</var>}"\"',
"rag_embedding_model_config" : {
"vertex_prediction_endpoint": {
"endpoint": '\""${ENDPOINT_NAME}"\"'
}
}
}'
Vertex AI SDK untuk Python
import vertexai
from vertexai import rag
# Set Project
PROJECT_ID = "YOUR_PROJECT_ID"
vertexai.init(project=PROJECT_ID, location="us-central1")
# Your Vertex Endpoint resource with the deployed E5 model
ENDPOINT_ID = "YOUR_MODEL_ENDPOINT_ID"
MODEL_ENDPOINT = "projects/{PROJECT_ID}/locations/us-central1/endpoints/{ENDPOINT_ID}"
embedding_model_config = rag.EmbeddingModelConfig(
endpoint=MODEL_ENDPOINT,
)
# Name your corpus
DISPLAY_NAME = "YOUR_CORPUS_DISPLAY_NAME"
rag_corpus = rag.create_corpus(
display_name=DISPLAY_NAME, embedding_model_config=embedding_model_config
)