En este documento se describe cómo crear una inserción de texto con la API Text embeddings (Inserciones de texto) de Vertex AI.
La API de inserciones de texto de Vertex AI usa representaciones de vectores densos: gemini-embedding-001, por ejemplo, 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 fragmentos 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 inserciones, 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 los límites de frecuencia de la IA generativa en Vertex AI.
- Para obtener predicciones por lotes de las incrustaciones, consulta Obtener predicciones de incrustaciones 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 extraídas de modelos de lenguaje de gran tamaño).
Modelos admitidos
Modelos de Google
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.
Modelos abiertos
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 |
---|---|---|---|---|
multilingual-e5-small |
Forma parte de la familia de modelos de inserción de texto E5. La variante pequeña contiene 12 capas. | Hasta 384 | 512 tokens | Idiomas admitidos |
multilingual-e5-large |
Forma parte de la familia de modelos de inserción de texto E5. La variante grande contiene 24 capas. | Hasta 1024 | 512 tokens | Idiomas admitidos |
Para empezar, consulta la tarjeta de modelo de la familia E5. Para obtener más información sobre los modelos abiertos, consulta Modelos abiertos para MaaS.
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. El texto que supere este límite se truncará sin previo aviso. También puedes inhabilitar el truncamiento silencioso definiendo autoTruncate
como false
.
Para obtener más información, consulta los 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, al usar 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 demasiado la 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 tu inserción, puedes añadirla a una base de datos de vectores, como Vector Search. 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 Vector Search, consulta el resumen de Vector Search.