En esta página, se describen las opciones de modelos de embedding y se muestra cómo usar tu modelo de embedding para crear un corpus de RAG. La asociación entre tu modelo de embedding y el corpus de RAG permanece fija durante el ciclo de vida de tu corpus de RAG.
Introducción a los embeddings
Los embeddings son representaciones numéricas de las entradas. Puedes usar incorporaciones en tus aplicaciones para reconocer significados complejos y relaciones semánticas, y para procesar y producir lenguaje.
Las incorporaciones funcionan convirtiendo texto, imágenes y videos en arreglos de números de punto flotante llamados vectores. Cuanto más cerca estén dos vectores en su espacio de incorporación, mayor será la similitud de sus entradas.
Los modelos de incorporación son un componente importante de los sistemas de recuperación semántica. El rendimiento de un sistema de recuperación depende de qué tan bien el modelo de incorporación asigna las relaciones en tus datos.
Opciones de modelos de embeddings
El motor RAG de Gemini Enterprise Agent Platform implementa la generación mejorada por recuperación (RAG) y te ofrece la opción de usar los siguientes modelos de incorporación en un corpus de RAG:
| Tipo de modelo de embedding | Descripción |
|---|---|
| Modelos de embedding de texto de Agent Platform de Gemini Enterprise | Modelos entrenados por el publicador, como Google. Los modelos se entrenan con un gran conjunto de datos de texto y proporcionan un modelo de referencia sólido para muchas tareas. |
| Modelos de embedding de texto de Agent Platform ajustados | Los modelos de embedding de texto de Agent Platform se ajustan para tener conocimientos especializados o un rendimiento altamente personalizado. |
| Modelos de embeddings de OSS | Modelos de código abierto de terceros para la generación de incorporaciones en variantes solo en inglés y multilingües |
Modelos de incorporación compatibles
Los modelos de embedding se usan para crear un corpus y para la búsqueda y recuperación durante la generación de respuestas. En esta sección, se enumeran los modelos de incorporación compatibles.
| Versión del modelo | Descripción |
|---|---|
text-embedding-005 |
Es el modelo de embedding predeterminado. Se recomienda usar con un corpus de RAG. |
text-embedding-004 |
|
text-multilingual-embedding-002 |
Se recomienda usar con un corpus de RAG. |
Modelos de incorporación de código abierto
También se admiten los siguientes modelos de embedding abiertos. Puedes encontrarlos en Model Garden.
e5-base-v2e5-large-v2e5-small-v2multilingual-e5-largemultilingual-e5-small
Usa modelos de embedding de texto de Agent Platform
La API de Agent Platform para embeddings de texto admite varios modelos de embeddings, que producen un vector de embedding denso con 768 dimensiones. Los embeddings densos almacenan el significado del texto, a diferencia de los vectores dispersos, que tienden a asignar palabras directamente a números. La ventaja de usar embeddings de vectores densos en la IA generativa es que, en lugar de buscar coincidencias de palabras o sintaxis directas, puedes buscar mejor pasajes que se alineen con el significado de la consulta, incluso si los pasajes no usan el mismo idioma.
Para obtener una lista de los modelos compatibles, consulta Modelos de embeddings.
Modelos de Gecko
Los modelos Gecko están disponibles en versiones solo en inglés y multilingües. A diferencia de los modelos de Gecko ajustados, los modelos de Gecko para publicadores no requieren implementación, lo que los convierte en el conjunto de modelos preferido para usar con el motor RAG de Gemini Enterprise Agent Platform.
Para identificar el modelo de incorporación predeterminado que se usa o si necesitas una lista de los modelos de Gecko recomendados para usar con un corpus de RAG, consulta Modelos de incorporación compatibles.
Cuándo se descontinuarán los modelos de Gecko
Es posible que se descontinúen los modelos Gecko de Publisher. Si eso sucede, los modelos Gecko del editor no se podrán usar con el motor de RAG de Gemini Enterprise Agent Platform, incluso para un corpus de RAG que se haya creado antes de la discontinuación. Cuando se descontinúe tu modelo de Gecko, deberás migrar el corpus de RAG, lo que significa que deberás crear un corpus de RAG nuevo y volver a importar los datos. Una alternativa es usar un modelo de Gecko ajustado o un modelo de incorporación de OSS implementado por el usuario, que se admite después de que se descontinúa el modelo.
Crea un corpus de RAG con un modelo de Gecko para publicadores
En estas muestras de código, se muestra cómo crear un corpus de RAG con un modelo de Gecko para publicadores.
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}"\"'
}
}
}'
SDK de Agent Platform para 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
)
Usa modelos de embedding de texto de Agent Platform ajustados
Si bien los modelos de base de publicadores se entrenan con un gran conjunto de datos de texto y proporcionan un modelo de referencia sólido para muchas tareas, es posible que, en algunos casos, necesites que los modelos tengan conocimientos especializados o un rendimiento altamente personalizado. En esos casos, el ajuste del modelo te permite definir mejor las representaciones del modelo con tus datos pertinentes. Un beneficio adicional de este enfoque es que, cuando se ajusta el modelo, la imagen resultante es de tu propiedad y no se ve afectada por la baja del modelo de Gecko. Todos los modelos de embedding de Gecko ajustados producen embeddings con vectores de 768 dimensiones. Para obtener más información sobre estos modelos, consulta Obtén incorporaciones de texto.
Para obtener más información sobre el ajuste de modelos de incorporación, consulta Ajusta los modelos de texto.
En estas muestras de código, se muestra cómo crear un corpus de RAG con tu modelo de Gecko ajustado y desplegado.
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}"\"'
}
}
}'
SDK de Agent Platform para 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
)
Usa modelos de embedding de OSS
El motor RAG de Gemini Enterprise Agent Platform admite modelos de incorporación de código abierto de terceros en variantes solo en inglés y multilingües. En esta tabla, se enumeran los modelos de E5 compatibles.
| Versión del modelo | Modelo base | Parámetros | Dimensión de embedding | Solo en inglés |
|---|---|---|---|---|
e5-base-v2 |
MiniLM |
109 M | 768 | ✔ |
e5-large-v2 |
MiniLM |
335 millones | 1,024 | ✔ |
e5-small-v2 |
MiniLM |
33 millones | 384 | ✔ |
multilingual-e5-large |
xlm-roberta-large |
560 millones | 1,024 | ✗ |
multilingual-e5-small |
microsoft/Multilingual-MiniLM-L12-H384 |
118 millones | 384 | ✗ |
Para usar los modelos E5 con el motor RAG de Gemini Enterprise Agent Platform, el modelo E5 debe implementarse desde Model Garden. Para implementar tu modelo E5, consulta E5 Text Embedding en la consola de Google Cloud .
En estas muestras de código, se muestra cómo crear un corpus de RAG con tu modelo E5 implementado.
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}"\"'
}
}
}'
SDK de Agent Platform para 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
)