Auf dieser Seite werden die verfügbaren Einbettungsmodelle beschrieben und gezeigt, wie Sie damit einen RAG-Corpus erstellen. Die Verknüpfung zwischen Ihrem Einbettungsmodell und dem RAG-Corpus bleibt während der gesamten Lebensdauer Ihres RAG-Corpus unverändert.
Einführung in Embeddings
Einbettungen sind numerische Darstellungen von Eingaben. Sie können mit Einbettungen in Ihren Anwendungen komplexe Bedeutungen und semantische Beziehungen erkennen und Sprache verarbeiten und erzeugen.
Bei Einbettungen werden Text, Bilder und Videos in Arrays von Gleitkommazahlen umgewandelt, die als Vektoren bezeichnet werden. Je näher sich zwei Vektoren in ihrem Einbettungsbereich beieinander befinden, desto größer ist die Ähnlichkeit ihrer Eingaben.
Das Einbetten von Modellen ist ein wichtiger Bestandteil semantischer Abrufsysteme. Die Leistung eines Abrufsystems hängt davon ab, wie gut das Einbettungsmodell Beziehungen in Ihren Daten zuordnet.
Auswahl des Einbettungsmodells
Gemini Enterprise Agent Platform RAG Engine implementiert die Retrieval-Augmented Generation (RAG) und bietet Ihnen die folgenden Einbettungsmodelle zur Verwendung in einem RAG-Corpus:
| Typ des Einbettungsmodells | Beschreibung |
|---|---|
| Gemini Enterprise Agent Platform-Modelle zur Texteinbettung | Modelle, die vom Publisher trainiert wurden, z. B. Google. Die Modelle werden mit einem großen Text-Dataset trainiert und bieten eine solide Grundlage für viele Aufgaben. |
| Abgestimmte Agent Platform-Modelle zur Texteinbettung | Agent Platform-Modelle zur Texteinbettung werden optimiert, um spezialisiertes Wissen oder eine hochgradig angepasste Leistung zu bieten. |
| Open Source-Einbettungsmodelle | Open-Source-Einbettungsmodelle von Drittanbietern in englischsprachigen und mehrsprachigen Varianten. |
Unterstützte Einbettungsmodelle
Einbettungsmodelle werden zum Erstellen eines Korpus und zum Suchen und Abrufen während der Generierung von Antworten verwendet. In diesem Abschnitt werden die unterstützten Einbettungsmodelle aufgeführt.
| Modellversion | Beschreibung |
|---|---|
text-embedding-005 |
Standardmodell für Einbettungen. Empfohlen für die Verwendung mit einem RAG-Corpus. |
text-embedding-004 |
|
text-multilingual-embedding-002 |
Empfohlen für die Verwendung mit einem RAG-Corpus. |
Open-Source-Modelle zur Einbettung
Die folgenden offenen Embedding-Modelle werden ebenfalls unterstützt. Sie finden sie in Model Garden.
e5-base-v2e5-large-v2e5-small-v2multilingual-e5-largemultilingual-e5-small
Agent Platform-Modelle zur Texteinbettung verwenden
Die Agent Platform Texteinbettungs-API unterstützt mehrere Einbettungsmodelle, die einen dichten Einbettungsvektor mit 768 Dimensionen erstellen. Dichte Einbettungen speichern im Gegensatz zu dünnbesetzten Vektoren, die Wörter in der Regel direkt Zahlen zuordnen, die Bedeutung von Text. Der Vorteil der dichten Vektoreinbettungen in der generativen KI besteht darin, dass Sie anstelle der direkten Übereinstimmungen mit Wörtern oder Syntaxen besser nach Passagen suchen können, die der Bedeutung der Abfrage entsprechen, selbst wenn die Abschnitte nicht dieselbe Sprache verwenden.
Eine Liste der unterstützten Modelle finden Sie unter Einbettungsmodelle.
Gecko-Modelle
Gecko-Modelle sind nur in englischer und mehrsprachiger Version verfügbar. Im Gegensatz zu optimierten Gecko-Modellen müssen Publisher-Gecko-Modelle nicht bereitgestellt werden. Daher sind sie der bevorzugte Satz von Modellen für die Verwendung mit der RAG Engine der Gemini Enterprise Agent Platform.
Informationen zum Ermitteln des verwendeten Standard-Einbettungsmodells oder eine Liste der Gecko-Modelle, die für die Verwendung mit einem RAG-Corpus empfohlen werden, finden Sie unter Unterstützte Einbettungsmodelle.
Wenn Gecko-Modelle eingestellt werden
Die Gecko-Modelle von Publishern werden möglicherweise eingestellt. In diesem Fall können die Publisher-Gecko-Modelle nicht mit der RAG Engine der Gemini Enterprise Agent Platform verwendet werden, auch nicht für ein RAG-Korpus, das vor der Einstellung erstellt wurde. Wenn Ihr Gecko-Modell eingestellt wird, müssen Sie den RAG-Korpus migrieren. Dies bedeutet, dass Sie einen neuen RAG-Korpus erstellen und die Daten noch einmal importieren. Alternativ können Sie ein optimiertes Gecko-Modell oder ein selbst bereitgestelltes OSS-Einbettungsmodell verwenden, das nach der Einstellung des Modells unterstützt wird.
RAG-Korpus mit einem Publisher-Gecko-Modell erstellen
Diese Codebeispiele zeigen, wie Sie einen RAG-Korpus mit einem Publisher-Gecko-Modell erstellen.
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 für 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
)
Optimierte Agent Platform-Modelle zur Texteinbettung verwenden
Die Publisher-Grundlagenmodelle werden zwar mit einem großen Textdatensatz trainiert und bieten eine solide Grundlage für viele Aufgaben, es kann aber Szenarien geben, in denen Sie von den Modellen spezialisiertes Wissen oder eine stark angepasste Leistung benötigen. In solchen Fällen können Sie mit der Modellabstimmung die Darstellungen des Modells anhand Ihrer relevanten Daten optimieren. Ein weiterer Vorteil dieses Ansatzes besteht darin, dass das resultierende Bild nach der Feinabstimmung Ihnen gehört und nicht von der Einstellung des Gecko-Modells betroffen ist. Alle optimierten Gecko-Embedding-Modelle erzeugen Einbettungen mit 768-dimensionalen Vektoren. Weitere Informationen zu diesen Modellen finden Sie unter Texteinbettungen abrufen.
Weitere Informationen zum Optimieren von Einbettungsmodellen finden Sie unter Textmodelle einbetten.
Diese Codebeispiele zeigen, wie Sie einen RAG-Korpus mit Ihrem bereitgestellten, optimierten Gecko-Modell erstellen.
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 für 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
)
Open Source-Einbettungsmodelle verwenden
Die RAG-Engine der Gemini Enterprise Agent Platform unterstützt Open-Source-Einbettungsmodelle von Drittanbietern in englischsprachigen und mehrsprachigen Varianten. In dieser Tabelle sind die unterstützten E5-Modelle aufgeführt.
| Modellversion | Basismodell | Parameter | Einbettungsdimension | Nur Englisch |
|---|---|---|---|---|
e5-base-v2 |
MiniLM |
109M | 768 | ✔ |
e5-large-v2 |
MiniLM |
335M | 1.024 | ✔ |
e5-small-v2 |
MiniLM |
33M | 384 | ✔ |
multilingual-e5-large |
xlm-roberta-large |
560M | 1.024 | ✗ |
multilingual-e5-small |
microsoft/Multilingual-MiniLM-L12-H384 |
118M | 384 | ✗ |
Um E5-Modelle mit der RAG Engine der Gemini Enterprise Agent Platform zu verwenden, muss das E5-Modell aus Model Garden bereitgestellt werden. Informationen zum Bereitstellen Ihres E5-Modells finden Sie in der Google Cloud Console unter E5-Texteinbettung.
Diese Codebeispiele zeigen, wie Sie einen RAG-Korpus mit Ihrem bereitgestellten E5-Modell erstellen.
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 für 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
)