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: text-embedding-gecko, por ejemplo, usa vectores de 768 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 de 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.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
- Elige un tipo de tarea para tu trabajo de embeddings.
Modelos compatibles
Puedes obtener incorporaciones de texto con los siguientes modelos:
Modelos en inglés | Modelos multilingües |
---|---|
textembedding-gecko@001 |
textembedding-gecko-multilingual@001 |
textembedding-gecko@003 |
text-multilingual-embedding-002 |
text-embedding-004 |
|
text-embedding-005 |
Si eres nuevo en estos modelos, te recomendamos que uses las versiones más recientes.
Para texto en inglés, usa text-embedding-005
. Para texto multilingüe, usa text-multilingual-embedding-002
.
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. Para cada solicitud, tienes un límite de 250 textos de entrada en us-central1
y, en otras regiones, el texto de entrada máximo es de 5.
La API tiene un límite máximo de tokens de entrada de 20,000. Si las entradas superan este límite, se genera un error 500. Cada texto de entrada individual se limita aún más a 2,048 tokens. Cualquier exceso se trunca de forma silenciosa. También puedes inhabilitar la truncación silenciosa si configuras autoTruncate
como false
.
Todos los modelos producen un resultado con 768 dimensiones de forma predeterminada. Sin embargo, los siguientes modelos les brindan a los usuarios la opción de elegir una dimensionalidad de salida entre 1 y 768. Si seleccionas una dimensionalidad de salida más pequeña, los usuarios pueden ahorrar memoria y espacio de almacenamiento, lo que genera cálculos más eficientes.
text-embedding-005
text-multilingual-embedding-002
En los siguientes ejemplos, se usa el modelo text-embedding-004
.
REST
Para obtener incorporaciones de texto, envía una solicitud POST mediante la especificación del ID del modelo del modelo de publicador.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto.
- TEXT: El texto para el que deseas generar incorporaciones. Límite: cinco textos de hasta 2,048 tokens por texto para todos los modelos, excepto
textembedding-gecko@001
. La longitud máxima del token de entrada paratextembedding-gecko@001
es 3,072. - AUTO_TRUNCATE: Si se establece en
false
, el texto que excede el límite del token hace que la solicitud falle. El valor predeterminado estrue
.
HTTP method and URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-embedding-004:predict
Cuerpo JSON de la solicitud:
{ "instances": [ { "content": "TEXT"} ], "parameters": { "autoTruncate": AUTO_TRUNCATE } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-embedding-004:predict"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-embedding-004:predict" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación: Ten en cuenta que values
se truncó para ahorrar espacio.
Ejemplo del comando curl
MODEL_ID="text-embedding-004"
PROJECT_ID=PROJECT_ID
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/${MODEL_ID}:predict -d \
$'{
"instances": [
{ "content": "What is life?"}
],
}'
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Go
Antes de probar este ejemplo, sigue las instrucciones de configuración para Go incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Go.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Java.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Node.js.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Modelo más reciente
text-embedding-005
admite un nuevo tipo de tarea CODE_RETRIEVAL_QUERY
, que se puede usar para recuperar bloques de código relevantes con consultas de texto sin formato. Para usar esta función, los bloques de código deben incorporarse con el tipo de tarea RETRIEVAL_DOCUMENT
, mientras que las consultas de texto se incorporan con CODE_RETRIEVAL_QUERY
.
Para explorar todos los tipos de tareas, consulta la referencia del modelo.
A continuación, se muestra un ejemplo:
REST
PROJECT_ID=PROJECT_ID
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-embedding-005:predict -d \
$'{
"instances": [
{
"task_type": "CODE_RETRIEVAL_QUERY",
"content": "Function to add two numbers"
}
],
}'
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Go
Antes de probar este ejemplo, sigue las instrucciones de configuración para Go incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Go.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Java.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Node.js.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Las siguientes limitaciones se aplican cuando se usan estos modelos:
- No uses estos modelos de vista previa en sistemas esenciales o de producción.
- Estos modelos solo están disponibles en
us-central1
. - Las predicciones por lotes no son compatibles.
- No se admite la personalización.
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.
¿Qué sigue?
- Para obtener más información sobre los límites de frecuencia, consulta Límites de frecuencia de 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.