En este documento, se describe cómo crear un embedding de texto con la API de embedding de texto de Vertex AI.
La API de incorporaciones de texto de Vertex AI usa representaciones vectoriales densas: gemini-embedding-001, por ejemplo, usa vectores de 3,072 dimensiones. Los modelos de incorporación de vectores densos usan métodos de aprendizaje profundo similares a los que usan los modelos de lenguaje grandes. A diferencia de los vectores dispersos, que tienden a asignar palabras directamente a números, los vectores densos están diseñados para representar mejor el significado de un fragmento de texto. La ventaja de usar incorporaciones de vectores densas 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 fragmentos no usan el mismo idioma.
Los vectores están normalizados, por lo que puedes usar la similitud del coseno, el producto punto o la distancia euclidiana para proporcionar las mismas clasificaciones de similitud.
- Para obtener más información sobre embeddings, consulta la descripción general de las APIs de embeddings.
- Para obtener más información sobre los modelos de incorporación de texto, consulta Embeddings de texto.
- Para obtener información sobre qué idiomas admite cada modelo de incorporación, consulta Idiomas de texto compatibles.
Antes de comenzar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. - Elige un tipo de tarea para tu trabajo de embeddings.
- Para obtener más información sobre los límites de frecuencia, consulta Límites de frecuencia de la IA generativa en Vertex AI.
- Con el fin de obtener predicciones por lotes para embeddings, consulta Obtén predicciones de embeddings de texto por lotes.
- Para obtener más información sobre las embeddings multimodales, consulta Obtener embeddings multimodales
- Para ajustar un embedding, consulta Ajusta embeddings de texto
- Para obtener más información sobre la investigación detrás de
text-embedding-005
ytext-multilingual-embedding-002
, consulta el artículo de investigación Gecko: Incorporaciones de texto versátiles extraídas de modelos de lenguaje grande.
Modelos compatibles
Puedes obtener incorporaciones de texto con los siguientes modelos:
Nombre del modelo | Descripción | Dimensiones de salida | Longitud de secuencia máxima | Lenguajes de texto admitidos |
---|---|---|---|---|
gemini-embedding-001 |
Rendimiento de vanguardia en tareas de inglés, multilingües y de código Unifica los modelos especializados anteriores, como text-embedding-005 y text-multilingual-embedding-002 , y logra un mejor rendimiento en sus respectivos dominios. Para obtener más detalles, lee nuestro Informe técnico. |
hasta 3072 | 2,048 tokens | Idiomas de texto admitidos |
text-embedding-005 |
Se especializa en tareas de código y en inglés. | Hasta 768 | 2,048 tokens | Inglés |
text-multilingual-embedding-002 |
Se especializa en tareas multilingües. | Hasta 768 | 2,048 tokens | Idiomas de texto admitidos |
Para obtener una calidad de incorporación superior, gemini-embedding-001
es nuestro modelo grande diseñado para proporcionar el mayor rendimiento.
Obtén incorporaciones de texto para un fragmento de texto
Puedes obtener incorporaciones de texto para un fragmento de texto mediante la API de Vertex AI o el SDK de Vertex AI para Python.
Límites de API
Para cada solicitud, tienes un límite de 250 textos de entrada.
La API tiene un límite máximo de tokens de entrada de 20,000.
Si se superan estos límites, se genera un error 400. Cada texto de entrada individual tiene un límite adicional de 2,048 tokens; cualquier exceso se trunca de forma silenciosa. También puedes inhabilitar el truncamiento silencioso configurando autoTruncate
como false
.
Para obtener más información, consulta Límites de los embeddings de texto.
Elige una dimensión de incorporación
De forma predeterminada, todos los modelos producen un vector de embedding de longitud completa. Para gemini-embedding-001
, este vector tiene 3,072 dimensiones, y otros modelos producen vectores de 768 dimensiones. Sin embargo, con el parámetro output_dimensionality
, los usuarios pueden controlar el tamaño del vector de incorporación de salida.
Seleccionar una dimensionalidad de salida más pequeña puede ahorrar espacio de almacenamiento y aumentar la eficiencia computacional para las aplicaciones posteriores, sin sacrificar mucha calidad.
En los siguientes ejemplos, se usa el modelo gemini-embedding-001
.
Python
Instalar
pip install --upgrade google-genai
Para obtener más información, consulta la documentación de referencia del SDK.
Establece variables de entorno para usar el SDK de IA generativa con Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Go
Obtén más información para instalar o actualizar Go.
Para obtener más información, consulta la documentación de referencia del SDK.
Establece variables de entorno para usar el SDK de IA generativa con Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Agrega una incorporación a una base de datos vectorial
Después de generar tu incorporación, puedes agregar incorporaciones a una base de datos vectorial, como Vector Search. Esto permite una recuperación de latencia baja y es fundamental a medida que aumenta el tamaño de los datos.
Para obtener más información sobre Vector Search, consulta Descripción general de Vector Search.