En este documento se describe cómo crear una incrustación de texto con la API Text embeddings de Vertex AI.
La API de inserciones de texto de Vertex AI usa representaciones de vectores densos. Por ejemplo, gemini-embedding-001 usa vectores de 3072 dimensiones. Los modelos de inserción de vectores densos usan métodos de aprendizaje profundo similares a los que usan los modelos de lenguaje extensos. A diferencia de los vectores dispersos, que suelen asignar palabras directamente a números, los vectores densos se han diseñado para representar mejor el significado de un fragmento de texto. La ventaja de usar incrustaciones de vectores densos en la IA generativa es que, en lugar de buscar coincidencias directas de palabras o sintaxis, puedes buscar mejor pasajes que se ajusten al significado de la consulta, aunque no utilicen el mismo lenguaje.
Los vectores se normalizan, por lo que puede usar la similitud del coseno, el producto escalar o la distancia euclídea para obtener las mismas clasificaciones de similitud.
- Para obtener más información sobre las inserciones, consulta la descripción general de las APIs de inserciones.
- Para obtener información sobre los modelos de inserción de texto, consulta Inserciones de texto.
- Para obtener información sobre los idiomas que admite cada modelo de embeddings, consulta Idiomas de texto admitidos.
Antes de empezar
- 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 inserciones.
- Para obtener más información sobre los límites de frecuencia, consulta Límites de frecuencia de la IA generativa en Vertex AI.
- Para obtener predicciones por lotes de las inserciones, consulta Obtener predicciones de inserciones de texto por lotes.
- Para obtener más información sobre las inserciones multimodales, consulta Obtener inserciones multimodales.
- Para ajustar una inserción, consulta Ajustar inserciones de texto.
- Para obtener más información sobre la investigación que hay detrás de
text-embedding-005
ytext-multilingual-embedding-002
, consulta el artículo de investigación Gecko: Versatile Text Embeddings Distilled from Large Language Models (Gecko: representaciones de texto versátiles obtenidas de modelos de lenguaje de gran tamaño).
Modelos admitidos
Puedes obtener inserciones de texto con los siguientes modelos:
Nombre del modelo | Descripción | Dimensiones de salida | Longitud máxima de la secuencia | Idiomas de texto admitidos |
---|---|---|---|---|
gemini-embedding-001 |
Rendimiento de última generación 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 consigue un mejor rendimiento en sus respectivos dominios. Consulta más información en nuestro informe técnico. |
hasta 3072 | 2048 tokens | Idiomas de texto admitidos |
text-embedding-005 |
Especializada en tareas de inglés y código. | hasta 768 | 2048 tokens | Inglés |
text-multilingual-embedding-002 |
Especializada en tareas multilingües. | hasta 768 | 2048 tokens | Idiomas de texto admitidos |
Para obtener una calidad de inserción superior, gemini-embedding-001
es nuestro modelo grande diseñado para ofrecer el máximo rendimiento.
Obtener representaciones de texto de un fragmento de texto
Puedes obtener las inserciones de texto de un fragmento de texto mediante la API de Vertex AI o el SDK de Vertex AI para Python.
Límites de la API
En cada solicitud, puedes incluir un máximo de 250 textos de entrada.
La API tiene un límite máximo de 20.000 tokens de entrada.
Si se supera este límite, se produce un error 400. Cada texto de entrada individual tiene un límite de 2048 tokens. Si se supera, se trunca de forma silenciosa. También puedes inhabilitar el truncamiento silencioso definiendo autoTruncate
como false
.
Para obtener más información, consulta Límites de inserción de texto.
Elegir una dimensión de inserción
Todos los modelos generan un vector de incrustación de longitud completa de forma predeterminada. En el caso de gemini-embedding-001
,
este vector tiene 3072 dimensiones, mientras que otros modelos generan vectores de 768 dimensiones. Sin embargo, con el parámetro output_dimensionality
, los usuarios pueden controlar el tamaño del vector de inserción de salida.
Si seleccionas una dimensionalidad de salida más pequeña, puedes ahorrar espacio de almacenamiento y aumentar la eficiencia computacional de las aplicaciones posteriores, sin sacrificar apenas 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.
Define 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
Consulta cómo instalar o actualizar Go.
Para obtener más información, consulta la documentación de referencia del SDK.
Define 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
Añadir una inserción a una base de datos de vectores
Una vez que hayas generado la inserción, puedes añadirla a una base de datos de vectores, como la búsqueda de vectores. Esto permite recuperar datos con baja latencia, lo cual es fundamental a medida que aumenta el tamaño de los datos.
Para obtener más información sobre la búsqueda vectorial, consulta el resumen de la búsqueda vectorial.