Obtener incorporaciones de texto

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-005, 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.

Antes de comenzar

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Enable the Vertex AI API.

    Enable the API

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Enable the Vertex AI API.

    Enable the API

  6. 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 Modelos de incorporación de Gemini
textembedding-gecko@001 textembedding-gecko-multilingual@001 text-embedding-large-exp-03-07 (experimental)
textembedding-gecko@002 text-multilingual-embedding-002
textembedding-gecko@003
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. Además, para obtener una calidad de incorporación superior, text-embedding-large-exp-03-07 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. 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. Para los modelos experimentales, el texto de entrada máximo es 1. Los modelos experimentales solo están disponibles en us-central1. 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. En la mayoría de los modelos, cada texto de entrada individual se limita a 2,048 tokens. Cualquier exceso se trunca de forma silenciosa. En el caso de text-embedding-large-exp-03-07, cada texto de entrada individual se limita a 8,192 tokens. También puedes inhabilitar la truncación silenciosa si configuras autoTruncate como false.

Todos los modelos producen un vector de incorporación de longitud completa de forma predeterminada. Para text-embedding-large-exp-03-07, este vector tiene 3,072 dimensiones, y otros modelos producen vectores de 768 dimensiones. Sin embargo, los siguientes modelos les brindan a los usuarios la opción de elegir una dimensionalidad de salida entre 1 y la dimensionalidad de salida máxima. 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-004
  • text-embedding-005
  • text-multilingual-embedding-002
  • text-embedding-large-exp-03-07

En los siguientes ejemplos, se usa el modelo text-embedding-005.

Gen AI SDK for 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 Gen AI 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=us-central1
export GOOGLE_GENAI_USE_VERTEXAI=True

from google import genai
from google.genai.types import EmbedContentConfig

client = genai.Client()
response = client.models.embed_content(
    model="text-embedding-005",
    contents=[
        "How do I get a driver's license/learner's permit?",
        "How do I renew my driver's license?",
        "How do I change my address on my driver's license?",
    ],
    config=EmbedContentConfig(
        task_type="RETRIEVAL_DOCUMENT",  # Optional
        output_dimensionality=768,  # Optional
        title="Driver's License",  # Optional
    ),
)
print(response)
# Example response:
# embeddings=[ContentEmbedding(values=[-0.06302902102470398, 0.00928034819662571, 0.014716853387653828, -0.028747491538524628, ... ],
# statistics=ContentEmbeddingStatistics(truncated=False, token_count=13.0))]
# metadata=EmbedContentMetadata(billable_character_count=112)

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?