La API de incorporaciones de texto de Vertex AI te permite crear una incorporación de texto mediante la IA generativa en Vertex AI. Las incorporaciones de texto son representaciones numéricas de texto que capturan las relaciones entre palabras y frases. Los modelos de aprendizaje automático, en especial los modelos de IA generativa, son adecuados para crear estas incorporaciones mediante la identificación de patrones dentro de grandes conjuntos de datos de texto. Tu aplicación puede usar incorporaciones de texto para procesar y producir lenguaje, y reconocer significados complejos y relaciones semánticas específicas en tu contenido. Interactúas con incorporaciones de texto cada vez que completas una Búsqueda de Google o ves recomendaciones de transmisión de música.
Estos son algunos casos de uso comunes de las incorporaciones de texto:
- Búsqueda semántica: Busca texto clasificado por similitud semántica.
- Clasificación: Muestra la clase de elementos cuyos atributos de texto son similares al texto dado.
- Agrupamiento en clústeres: Elementos de un clúster con atributos de texto similares a los textos proporcionados.
- Detección de valores atípicos: Muestra los elementos en los que los atributos de texto están menos relacionados con el texto dado.
- Interfaz de conversación: Agrupa grupos de oraciones que pueden generar respuestas similares, como en un espacio de incorporaciones a nivel de conversación.
Las incorporaciones de texto funcionan mediante la conversión de texto en arreglos de números de punto flotante, llamados vectores. Estos vectores están diseñados para capturar el significado del texto. La longitud del arreglo de incorporaciones se denomina dimensionalidad del vector. Por ejemplo, un pase de texto podría representarse con un vector que contiene cientos de dimensiones. Luego, mediante el cálculo de la distancia numérica entre las representaciones vectoriales de dos textos, una aplicación puede determinar la similitud entre los objetos.
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.
- Para obtener más información sobre las incorporaciones, consulta Multitool de Meet AI: Vector Embeddings.
- Para realizar un curso básico de aprendizaje automático sobre el AA en las incorporaciones, consulta Incorporaciones.
- Para obtener más información sobre cómo almacenar incorporaciones vectoriales en una base de datos, consulta la página Descubre y la Descripción general de Vector Search.
Requisitos previos
Existen requisitos previos específicos para crear con éxito una incorporación. Para comenzar, consulta la guía de inicio rápido: Prueba las incorporaciones de texto.
Usa este Colab para llamar a los modelos de incorporación de texto recién publicados (
Notebook de Jupyter: Llama a los modelos de incorporación de texto con Colab o un notebook de Jupyter. |
Ejemplo de caso de uso: Desarrolla un chatbot de recomendación de libros
Si deseas desarrollar un chatbot de recomendación de libros, lo primero que debes hacer es usar una red neuronal profunda (DNN) para convertir cada libro en un vector de incorporación, donde un vector de incorporación representa un libro. Puedes alimentar, como entrada a la DNN, solo el título del libro o solo el contenido del texto. O bien, puedes usar ambos en conjunto, demás de cualquier otro metadato que describa el libro, como el género.
Las incorporaciones de este ejemplo podrían estar compuestas por miles de títulos de libros con resúmenes y su género. También puede tener representaciones de libros, como Cumbres Borrascosas de Emily Brontë y Persuasión de Jane Austen que son similares entre sí (distancia pequeña entre la representación numérica). Mientras que la distancia de la representación numérica del libro El gran Gatsby de F. Scott Fitzgerald estaría más alejada, ya que el período, el género y el resumen son menos similares.
Las entradas son la influencia principal de la orientación del espacio de incorporaciones. Por ejemplo, si solo tenemos entradas de título de libro, dos libros con títulos similares, pero resúmenes muy diferentes, podrían estar cerca. Sin embargo, si incluimos el título y el resumen, estos mismos libros son menos similares (más lejanos) en el espacio de incorporaciones.
Trabajando con IA generativa, este chatbot de sugerencias de libros podría resumir, sugerir y mostrar libros que te podrían gustar (o no) según tu consulta.
Modelos compatibles
Para saber qué versiones del modelo de incorporación de texto estables están disponibles, consulta Versiones de modelos estables disponibles. Para saber qué versiones más recientes del modelo de incorporación de texto están disponibles, consulta Modelos más recientes.
Se recomienda especificar una versión de modelo estable (por ejemplo, text-embedding-004
). La versión más reciente de un modelo se encuentra en su versión preliminar y no cuenta con disponibilidad general (DG).
Debido a que la versión más reciente se encuentra en versión preliminar, no se garantiza que esté lista para la producción.
Es muy importante usar una versión del modelo estable, por ejemplo, text-embedding-004 para aplicaciones que requieren incorporaciones retrocompatibles. Si la retrocompatibilidad no es un problema y quieres usar la versión más reciente del modelo, debes especificar @latest
de forma explícita.
Especifica siempre el nombre completo del modelo, incluido el número de versión.
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.
Cada texto de entrada tiene un límite de token de 2,000. Las entradas de más de esta longitud se truncan en silencio. También puedes inhabilitar el truncamiento silencioso si configuras autoTruncate
en false
.
En estos 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 3,072 tokens por texto.
- AUTO_TRUNCATE: Si se configura como
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.
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.
Cambios en la API de los modelos publicados a partir de agosto de 2023
Cuando se usan versiones del modelo publicadas después de agosto de 2023, incluidas text-embedding-004
y textembedding-gecko-multilingual@001
, se genera un nuevo parámetro con el tipo de tarea y el título opcional (solo es válido para task_type=RETRIEVAL_DOCUMENT
).
Estos parámetros nuevos se aplican a los modelos de versión preliminar pública y a todos los modelos estables en el futuro.
{
"instances": [
{
"task_type": "RETRIEVAL_DOCUMENT",
"title": "document title",
"content": "I would like embeddings for this text!"
},
]
}
El parámetro task_type
se define como la aplicación descendente deseada para ayudar al modelo a producir incorporaciones de mejor calidad. Es una cadena que puede tomar uno de los siguientes valores:
task_type |
Descripción |
---|---|
RETRIEVAL_QUERY |
Especifica que el texto dado es una consulta en un parámetro de configuración de búsqueda o recuperación. |
RETRIEVAL_DOCUMENT |
Especifica que el texto dado de un documento en un parámetro de configuración de búsqueda o recuperación. |
SEMANTIC_SIMILARITY |
Especifica que el texto dado se usa para la similitud textual semántica (STS). |
CLASSIFICATION |
Especifica que la incorporación se usa para la clasificación. |
CLUSTERING |
Especifica que la incorporación se usa para el agrupamiento en clústeres. |
QUESTION_ANSWERING |
Especifica que la incorporación de consultas se usa para responder preguntas. Usa RETRIEVAL_DOCUMENT para el lado del documento. |
FACT_VERIFICATION |
Especifica que la incorporación de consultas se usa para la verificación de datos. |
Cobertura de idioma para los modelos textembedding-gecko-multilingual
.
El modelo textembedding-gecko-multilingual@001
se evaluó en los siguientes idiomas: Arabic (ar)
, Bengali (bn)
, English (en)
, Spanish (es)
, German (de)
y Persian (fa)
, Finnish (fi)
, French (fr)
, Hindi (hi)
, Indonesian (id)
, Japanese (ja)
, Korean (ko)
, Russian (ru)
, Swahili (sw)
, Telugu (te)
, Thai (th)
, Yoruba (yo)
, Chinese (zh)
.
A continuación, se muestra la lista completa de idiomas compatibles:Afrikaans
,Albanian
,Amharic
,Arabic
,Armenian
,Azerbaijani
,Basque
,Belarusian
,Bengali
,Bulgarian
,Burmese
,Catalan
,Cebuano
,Chichewa
,Chinese
,Corsican
,Czech
,Danish
,Dutch
,English
,Esperanto
,Estonian
,Filipino
,Finnish
,French
,Galician
,Georgian
,German
,Greek
,Gujarati
,Haitian Creole
,Hausa
,Hawaiian
,Hebrew
,Hindi
,Hmong
,Hungarian
,Icelandic
,Igbo
,Indonesian
,Irish
,Italian
,Japanese
,Javanese
,Kannada
,Kazakh
,Khmer
,Korean
,Kurdish
,Kyrgyz
,Lao
,Latin
,Latvian
,Lithuanian
,Luxembourgish
,Macedonian
,Malagasy
,Malay
,Malayalam
,Maltese
,Maori
,Marathi
,Mongolian
,Nepali
,Norwegian
,Pashto
,Persian
,Polish
,Portuguese
,Punjabi
,Romanian
,Russian
,Samoan
,Scottish Gaelic
,Serbian
,Shona
,Sindhi
,Sinhala
,Slovak
,Slovenian
,Somali
,Sotho
,Spanish
,Sundanese
,Swahili
,Swedish
,Tajik
,Tamil
,Telugu
,Thai
,Turkish
,Ukrainian
,Urdu
,Uzbek
,Vietnamese
,Welsh
,West Frisian
,Xhosa
,Yiddish
,Yoruba
,Zulu
.
¿Qué sigue?
- Obtén información para ajustar un modelo de base.
- Obtén información sobre las prácticas recomendadas de IA responsable y los filtros de seguridad de Vertex AI.