Claude Platform Docs
MessagesCapacidades del modelo

Embeddings

Los embeddings de texto son representaciones numéricas del texto que permiten medir la similitud semántica. Esta guía presenta los embeddings, sus aplicaciones y cómo usar modelos de embeddings para tareas como búsqueda, recomendaciones y detección de anomalías.

Antes de implementar embeddings

Al seleccionar un proveedor de "embeddings" (incrustaciones), hay varios factores que puedes considerar según tus necesidades y preferencias:

  • Tamaño del conjunto de datos y especificidad del dominio: tamaño del conjunto de datos de entrenamiento del modelo y su relevancia para el dominio que deseas incrustar. Datos más grandes o más específicos del dominio generalmente producen mejores embeddings dentro del dominio
  • Rendimiento de inferencia: velocidad de búsqueda de embeddings y "latency" (latencia) de extremo a extremo. Esta es una consideración particularmente importante para despliegues de producción a gran escala
  • Personalización: opciones para continuar el entrenamiento con datos privados, o especialización de modelos para dominios muy específicos. Esto puede mejorar el rendimiento en vocabularios únicos

Cómo obtener embeddings con Anthropic

Anthropic no ofrece su propio modelo de embeddings. Un proveedor de embeddings que tiene una amplia variedad de opciones y capacidades que abarcan todas las consideraciones anteriores es Voyage AI.

Voyage AI crea modelos de embeddings de última generación y ofrece modelos personalizados para dominios industriales específicos como finanzas y salud, o modelos con "fine-tuning" (ajuste fino) a medida para clientes individuales.

El resto de esta guía es para Voyage AI, pero deberías evaluar una variedad de proveedores de embeddings para encontrar el que mejor se adapte a tu caso de uso específico.

Modelos disponibles

Voyage recomienda usar los siguientes modelos de embeddings de texto:

Voyage 4 (última generación)

ModeloLongitud de contextoDimensión del embeddingDescripción
voyage-4-large32,0001024 (predeterminado), 256, 512, 2048La mejor calidad de recuperación de propósito general y multilingüe. Consulta la publicación del blog de Voyage 4 para más detalles.
voyage-432,0001024 (predeterminado), 256, 512, 2048Optimizado para calidad de recuperación de propósito general y multilingüe. Equilibra calidad y eficiencia. Consulta la publicación del blog de Voyage 4 para más detalles.
voyage-4-lite32,0001024 (predeterminado), 256, 512, 2048Optimizado para latencia y costo. Consulta la publicación del blog de Voyage 4 para más detalles.
voyage-4-nano32,0001024 (predeterminado), 256, 512, 2048Modelo de pesos abiertos (licencia Apache 2.0) disponible en Hugging Face. Consulta la publicación del blog de Voyage 4 para más detalles.

Generación anterior

ModeloLongitud de contextoDimensión del embeddingDescripción
voyage-3-large32,0001024 (predeterminado), 256, 512, 2048La mejor calidad de recuperación de propósito general y multilingüe. Consulta la publicación del blog de voyage-3-large para más detalles.
voyage-3.532,0001024 (predeterminado), 256, 512, 2048Optimizado para calidad de recuperación de propósito general y multilingüe. Consulta la publicación del blog de voyage-3.5 para más detalles.
voyage-3.5-lite32,0001024 (predeterminado), 256, 512, 2048Optimizado para latencia y costo. Consulta la publicación del blog de voyage-3.5 para más detalles.
voyage-code-332,0001024 (predeterminado), 256, 512, 2048Optimizado para recuperación de código. Consulta la publicación del blog de voyage-code-3 para más detalles.
voyage-finance-232,0001024Optimizado para recuperación y RAG de finanzas. Consulta la publicación del blog de voyage-finance-2 para más detalles.
voyage-law-216,0001024Optimizado para recuperación y RAG legal y de contexto largo. También mejoró el rendimiento en todos los dominios. Consulta la publicación del blog de voyage-law-2 para más detalles.

Además, Voyage recomienda los siguientes modelos de embeddings multimodales:

ModeloLongitud de contextoDimensión del embeddingDescripción
voyage-multimodal-3.532,0001024 (predeterminado), 256, 512, 2048Modelo de embeddings multimodal enriquecido que puede vectorizar texto, imágenes y videos intercalados. Incluye soporte de video como el primer modelo de embeddings de video de nivel de producción. Consulta la publicación del blog de voyage-multimodal-3.5 para más detalles.
voyage-multimodal-332,0001024Modelo de embeddings multimodal enriquecido que puede vectorizar texto intercalado e imágenes ricas en contenido, como capturas de pantalla de PDFs, diapositivas, tablas, figuras y más. Consulta la publicación del blog de voyage-multimodal-3 para más detalles.

Los siguientes modelos de embeddings de fragmentos contextualizados producen vectores a nivel de fragmento que capturan el contexto completo del documento sin aumento manual de metadatos. Llama a estos modelos con contextualized_embed() en lugar de embed():

ModeloLongitud de contextoDimensión del embeddingDescripción
voyage-context-4120,0001024 (predeterminado), 256, 512, 2048Embeddings de fragmentos contextualizados optimizados para calidad de recuperación de propósito general y multilingüe. Consulta la publicación del blog de voyage-context-4 para más detalles.
voyage-context-3120,0001024 (predeterminado), 256, 512, 2048Embeddings de fragmentos contextualizados optimizados para calidad de recuperación de propósito general y multilingüe. Consulta la publicación del blog de voyage-context-3 para más detalles.

Voyage AI también ofrece "rerankers" (reordenadores), que toman una consulta y una lista de documentos y los devuelven ordenados por relevancia respecto a la consulta. Llama a estos modelos con rerank():

ModeloLongitud de contextoDescripción
rerank-2.532,000La mayor precisión. Recomendado para la mayoría de las aplicaciones. Consulta la publicación del blog de rerank-2.5 para más detalles.
rerank-2.5-lite32,000Optimizado para latencia y costo. Consulta la publicación del blog de rerank-2.5 para más detalles.

¿Necesitas ayuda para decidir qué modelo de embeddings de texto usar? Consulta las preguntas frecuentes de Voyage AI.

Primeros pasos con Voyage AI

Para acceder a los embeddings de Voyage:

  1. Regístrate en el sitio web de Voyage AI.
  2. Obtén una clave de API.
  3. Configura la clave de API como una variable de entorno para mayor comodidad:
export VOYAGE_API_KEY="<your secret key>"

Puedes obtener los embeddings usando el paquete oficial de Python voyageai o mediante solicitudes HTTP, como se describe en las siguientes secciones.

Biblioteca Python de Voyage

Instala el paquete voyageai usando el siguiente comando:

pip install -U voyageai

Luego, puedes crear un objeto cliente y comenzar a usarlo para incrustar tus textos:

import voyageai

vo = voyageai.Client()
# Esto usará automáticamente la variable de entorno VOYAGE_API_KEY.
# Alternativamente, puedes usar vo = voyageai.Client(api_key="<tu clave secreta>")

texts = ["Sample text 1", "Sample text 2"]

result = vo.embed(texts, model="voyage-4", input_type="document")
print(result.embeddings[0])
print(result.embeddings[1])

result.embeddings es una lista de dos vectores de embeddings, cada uno con 1024 números de punto flotante. Después de ejecutar el código anterior, los dos embeddings se imprimen en la pantalla:

[-0.013131560757756233, 0.019828535616397858, ...]   # embedding for "Sample text 1"
[-0.0069352793507277966, 0.020878976210951805, ...]  # embedding for "Sample text 2"

Al crear los embeddings, puedes especificar algunos otros argumentos para la función embed().

Para más información sobre el paquete Python de Voyage, consulta la documentación del paquete Python de Voyage.

API HTTP de Voyage

También puedes obtener embeddings haciendo solicitudes a la API HTTP de Voyage. Por ejemplo, puedes enviar una solicitud HTTP mediante el comando curl en una terminal:

cURL
curl https://api.voyageai.com/v1/embeddings \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $VOYAGE_API_KEY" \
  -d '{
    "input": ["Sample text 1", "Sample text 2"],
    "model": "voyage-4"
  }'

La respuesta que obtendrías es un objeto JSON que contiene los embeddings y el uso de tokens:

{
  "object": "list",
  "data": [
    {
      "embedding": [-0.013131560757756233, 0.019828535616397858 /* ... */],
      "index": 0
    },
    {
      "embedding": [-0.0069352793507277966, 0.020878976210951805 /* ... */],
      "index": 1
    }
  ],
  "model": "voyage-4",
  "usage": {
    "total_tokens": 10
  }
}

Para más información sobre la API HTTP de Voyage, consulta la documentación de la API HTTP de Voyage.

AWS Marketplace

Los embeddings de Voyage están disponibles en AWS Marketplace. Las instrucciones para acceder a Voyage en AWS están disponibles en la documentación de Voyage en AWS Marketplace.

Ejemplo de inicio rápido

El siguiente ejemplo breve muestra cómo usar embeddings.

Supón que tienes un pequeño corpus de seis documentos de los cuales recuperar

documents = [
    "The Mediterranean diet emphasizes fish, olive oil, and vegetables, believed to reduce chronic diseases.",
    "Photosynthesis in plants converts light energy into glucose and produces essential oxygen.",
    "20th-century innovations, from radios to smartphones, centered on electronic advancements.",
    "Rivers provide water, irrigation, and habitat for aquatic species, vital for ecosystems.",
    "Apple's conference call to discuss fourth fiscal quarter results and business updates is scheduled for Thursday, November 2, 2023 at 2:00 p.m. PT / 5:00 p.m. ET.",
    "Shakespeare's works, like 'Hamlet' and 'A Midsummer Night's Dream,' endure in literature.",
]

Primero, usa Voyage para convertir cada documento en un vector de embedding.

import voyageai

vo = voyageai.Client()

# Genera los embeddings de los documentos
doc_embds = vo.embed(documents, model="voyage-4", input_type="document").embeddings

Los embeddings te permiten hacer búsqueda / recuperación semántica en el espacio vectorial. Dada una consulta de ejemplo,

query = "When is Apple's conference call scheduled?"

A continuación, conviértela en un embedding y realiza una búsqueda del vecino más cercano para encontrar el documento más relevante según la distancia en el espacio de embeddings.

import numpy as np

# Incrusta la consulta
query_embd = vo.embed([query], model="voyage-4", input_type="query").embeddings[0]

# Calcula la similitud
# Los embeddings de Voyage están normalizados a longitud 1, por lo tanto el producto punto
# y la similitud coseno son lo mismo.
similarities = np.dot(doc_embds, query_embd)

retrieved_id = np.argmax(similarities)
print(documents[retrieved_id])

Ten en cuenta que input_type="document" e input_type="query" se usan para incrustar el documento y la consulta, respectivamente. Puedes encontrar más especificaciones en Biblioteca Python de Voyage.

La salida es el quinto documento, que efectivamente es el más relevante para la consulta:

Apple's conference call to discuss fourth fiscal quarter results and business updates is scheduled for Thursday, November 2, 2023 at 2:00 p.m. PT / 5:00 p.m. ET.

Si buscas un conjunto detallado de recetas sobre cómo hacer RAG con embeddings, incluidas bases de datos vectoriales, consulta la receta de RAG.

Preguntas frecuentes

Precios

Visita la página de precios de Voyage para obtener los detalles de precios más actualizados.

Was this page helpful?