Halaman ini menjelaskan pilihan model embedding dan menunjukkan cara menggunakan model embedding untuk membuat korpus RAG. Asosiasi antara model penyematan dan korpus RAG Anda tetap tetap selama masa aktif korpus RAG Anda.
Pengantar penyematan
Embedding adalah representasi numerik input. Anda dapat menggunakan embedding di aplikasi untuk mengenali makna yang kompleks dan hubungan semantik, serta untuk memproses dan menghasilkan bahasa.
Embedding berfungsi dengan mengubah teks, gambar, dan video menjadi array bilangan floating point yang disebut vektor. Semakin dekat dua vektor di ruang embedding, semakin 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.
Pilihan model embedding
RAG Engine menerapkan retrieval-augmented generation (RAG), dan menawarkan pilihan model embedding berikut untuk digunakan dalam korpus RAG:
| Jenis model embedding | Deskripsi |
|---|---|
| Model embedding teks Gemini Enterprise Agent Platform | Model yang dilatih oleh penayang, seperti Google. Model ini dilatih dengan set data teks yang besar, dan memberikan dasar yang kuat untuk banyak tugas. |
| Model embedding teks Agent Platform yang telah di-fine-tune | Model embedding teks Agent Platform disesuaikan secara mendalam untuk memiliki pengetahuan khusus atau performa yang sangat disesuaikan. |
| Model embedding OSS | Model penyematan open source pihak ketiga dalam varian hanya bahasa Inggris dan multibahasa. |
Model embedding yang didukung
Model penyematan digunakan untuk membuat korpus dan digunakan untuk penelusuran dan pengambilan selama pembuatan respons. Bagian ini mencantumkan model sematan yang didukung.
| Versi model | Deskripsi |
|---|---|
text-embedding-005 |
Model penyematan default. Direkomendasikan untuk digunakan dengan korpus RAG. |
text-embedding-004 |
text-embedding-004 diakses langsung melalui API penyematan dan tidak tersedia di Model Garden.
|
text-multilingual-embedding-002 |
Direkomendasikan untuk digunakan dengan korpus RAG. |
Model embedding open source
Model embedding terbuka berikut juga didukung. Anda dapat menemukannya di Model Garden.
e5-base-v2e5-large-v2e5-small-v2multilingual-e5-largemultilingual-e5-small
Menggunakan model embedding teks Agent Platform
API embedding teks Agent Platform mendukung beberapa model embedding, yang menghasilkan vektor embedding padat dengan 768 dimensi. Embedding padat menyimpan makna teks, tidak seperti vektor jarang, yang cenderung memetakan kata secara langsung ke angka. Manfaat menggunakan embedding vektor padat dalam AI generatif adalah, alih-alih menelusuri kecocokan kata atau sintaksis langsung, Anda dapat menelusuri bagian yang sesuai dengan makna kueri dengan lebih baik, meskipun bagian tersebut tidak menggunakan bahasa yang sama.
Untuk mengetahui daftar model yang didukung, lihat Model embedding.
Model Gecko
Model Gecko tersedia dalam versi hanya bahasa Inggris dan multibahasa. Tidak seperti model Gecko yang di-fine-tune, model Gecko penayang tidak perlu di-deploy, sehingga menjadikannya kumpulan model pilihan untuk digunakan dengan RAG Engine.
Untuk mengidentifikasi model embedding default yang digunakan atau Anda memerlukan daftar model Gecko yang direkomendasikan untuk digunakan dengan korpus RAG, lihat Model embedding yang didukung.
Saat model Gecko dihentikan
Model Gecko dari penerbit mungkin dihentikan. Jika hal itu terjadi, model Gecko penerbit tidak dapat digunakan dengan RAG Engine, bahkan untuk korpus RAG yang dibuat sebelum penghentian. Saat model Gecko Anda dihentikan, Anda harus memigrasikan korpus RAG, yang berarti Anda membuat korpus RAG baru dan mengimpor ulang data. Alternatifnya adalah menggunakan model Gecko yang di-fine-tune atau model penyematan OSS yang di-deploy sendiri, yang didukung setelah model dihentikan.
Membuat korpus RAG dengan model Gecko penayang
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}"\"'
}
}
}'
Agent Platform 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.RagEmbeddingModelConfig(
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, rag_embedding_model_config=embedding_model_config
)
Menggunakan model embedding teks Agent Platform yang telah disesuaikan
Meskipun model penayang dasar dilatih dengan set data teks yang besar dan memberikan dasar yang kuat untuk banyak tugas, mungkin ada skenario di mana Anda memerlukan model yang 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 bahwa saat model disesuaikan, gambar yang dihasilkan dimiliki oleh Anda dan tidak terpengaruh oleh penghentian penggunaan model Gecko. Semua model embedding Gecko yang di-tuning halus menghasilkan embedding dengan vektor 768 dimensi. Untuk mempelajari model ini lebih lanjut, lihat Mendapatkan embedding teks.
Untuk mengetahui informasi selengkapnya tentang cara menyesuaikan model embedding, lihat Menyesuaikan embedding teks.
Contoh kode ini menunjukkan cara membuat korpus RAG dengan model Gecko yang telah di-deploy dan di-fine-tune.
curl
ENDPOINT=us-central1-aiplatform.googleapis.com
PROJECT_ID=YOUR_PROJECT_ID
// Your Agent Platform 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}"\"'
}
}
}'
Agent Platform 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.RagEmbeddingModelConfig(
endpoint=${MODEL_ENDPOINT},
)
# Name your corpus
DISPLAY_NAME = "YOUR_CORPUS_DISPLAY_NAME"
rag_corpus = rag.create_corpus(
display_name=${DISPLAY_NAME}, rag_embedding_model_config=embedding_model_config
)
Menggunakan model embedding OSS
Mesin RAG mendukung model penyematan open source pihak ketiga dalam varian hanya berbahasa 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 JT | 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 RAG Engine, model E5 harus di-deploy dari Model Garden. Untuk men-deploy model E5, lihat E5 Text Embedding di konsol Google Cloud .
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}"\"'
}
}
}'
Agent Platform 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.RagEmbeddingModelConfig(
endpoint=MODEL_ENDPOINT,
)
# Name your corpus
DISPLAY_NAME = "YOUR_CORPUS_DISPLAY_NAME"
rag_corpus = rag.create_corpus(
display_name=DISPLAY_NAME, rag_embedding_model_config=embedding_model_config
)