Claude Platform Docs
MensajesCapacidades 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 con una amplia variedad de modelos y capacidades es Voyage AI de MongoDB.

Voyage AI crea modelos de embeddings y "rerankers" (reordenadores). Sus modelos de embeddings incluyen modelos de propósito general, multimodales, contextualizados y específicos de dominio.

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 AI ofrece los siguientes modelos de embeddings de texto:

Ú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-code-432,0001024 (predeterminado), 256, 512, 2048Optimizado para la recuperación de código y aplicaciones de programación agéntica. Consulta la publicación del blog de voyage-code-4 para obtener más detalles.
voyage-4-nano32,0002048 (predeterminado), 256, 512, 1024Modelo de pesos abiertos (licencia Apache 2.0) que descargas desde Hugging Face y ejecutas tú mismo. No está disponible a través de la Atlas Embedding and Reranking API. Consulta la publicación del blog de Voyage 4 para obtener más detalles.

Generación anterior

Para conocer el estado del ciclo de vida de cada modelo y su reemplazo recomendado, consulta Model deprecations, lifecycle states, and support en la documentación de MongoDB.

ModeloLongitud de contextoDimensión del embeddingDescripción
voyage-3-large32,0001024 (predeterminado), 256, 512, 2048Generación anterior de voyage-4-large. Consulta la publicación del blog de voyage-3-large para obtener más detalles.
voyage-3.532,0001024 (predeterminado), 256, 512, 2048Generación anterior de voyage-4. Consulta la publicación del blog de voyage-3.5 para obtener más detalles.
voyage-3.5-lite32,0001024 (predeterminado), 256, 512, 2048Generación anterior de voyage-4-lite. Consulta la publicación del blog de voyage-3.5 para obtener más detalles.
voyage-code-332,0001024 (predeterminado), 256, 512, 2048Generación anterior de voyage-code-4. Consulta la publicación del blog de voyage-code-3 para obtener más detalles.
voyage-finance-232,0001024Optimizado para la recuperación en finanzas y "retrieval-augmented generation" (generación aumentada por recuperación), o RAG. Consulta la publicación del blog de voyage-finance-2 para obtener más detalles.
voyage-law-216,0001024Optimizado para la recuperación legal y RAG. Consulta la publicación del blog de voyage-law-2 para obtener más detalles.

Además, Voyage AI ofrece los siguientes modelos de embeddings multimodales. Llama a estos modelos con multimodal_embed() en lugar de embed():

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 compatibilidad con 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 obtener más detalles.
voyage-multimodal-332,0001024Generación anterior de voyage-multimodal-3.5. Vectoriza texto intercalado e imágenes ricas en contenido, como capturas de pantalla de PDF, diapositivas, tablas, figuras y más. Consulta la publicación del blog de voyage-multimodal-3 para obtener 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 la calidad de recuperación de propósito general y multilingüe. Consulta la publicación del blog de voyage-context-4 para obtener más detalles.
voyage-context-3120,0001024 (predeterminado), 256, 512, 2048Generación anterior de voyage-context-4. Consulta la publicación del blog de voyage-context-3 para obtener más detalles.

El límite de 120,000 tokens se aplica cuando estableces enable_auto_chunking en true. De lo contrario, el número total de tokens entre todas las entradas no puede superar los 32,000.

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-332,000La mayor precisión. Recomendado para la mayoría de las aplicaciones. Consulta la publicación del blog de rerank-3 para obtener más detalles.
rerank-3-lite32,000Optimizado para latencia y costo. Consulta la publicación del blog de rerank-3 para obtener más detalles.
rerank-2.532,000Generación anterior de rerank-3. Consulta la publicación del blog de rerank-2.5 para obtener más detalles.
rerank-2.5-lite32,000Generación anterior de rerank-3-lite. Consulta la publicación del blog de rerank-2.5 para obtener más detalles.

¿Necesitas ayuda para decidir qué modelo usar? Consulta Voyage AI embedding and reranking models overview en la documentación de MongoDB.

Primeros pasos con Voyage AI

Para acceder a los modelos de Voyage AI, crea una clave de API de modelo en MongoDB Atlas:

  1. Regístrate para obtener una cuenta de MongoDB Atlas o inicia sesión.
  2. En tu proyecto de Atlas, selecciona AI Model APIs en la barra de navegación, haz clic en Create model API key, asigna un nombre a la clave y haz clic en Create.
  3. Por comodidad, establece la clave de API como una variable de entorno:
export VOYAGE_API_KEY="<your model API key>"

Para obtener más detalles, consulta Voyage AI quick start en la documentación de MongoDB.

Puedes obtener los embeddings usando el paquete oficial de Python voyageai o mediante solicitudes HTTP, como se describe en las siguientes secciones. Voyage AI también tiene un cliente oficial de TypeScript. Para usarlo con una clave de API de modelo de Atlas, establece su opción environment en https://ai.mongodb.com/v1, como se describe en TypeScript client en la documentación de MongoDB.

Biblioteca de Python de Voyage AI

Instala el paquete voyageai con el siguiente comando. Para usar una clave de API de modelo de Atlas, necesitas la versión 0.3.7 o posterior.

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.
# Como alternativa, puedes usar vo = voyageai.Client(api_key="<your model API key>")

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 obtener más información sobre el paquete de Python, consulta Accessing Voyage AI models en la documentación de MongoDB.

API HTTP de Voyage AI

También puedes obtener embeddings enviando solicitudes HTTP a la Atlas Embedding and Reranking API. Por ejemplo, puedes enviar una solicitud HTTP mediante el comando curl en una terminal:

cURL
curl https://ai.mongodb.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",
    "input_type": "document"
  }'

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

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

Las claves de API de modelo de Atlas funcionan con ai.mongodb.com, excepto las claves limitadas a una geografía, que usan el endpoint de esa geografía. Si en cambio tienes una clave de API de la plataforma de Voyage AI, consulta Migrate your applications to use the Atlas Embedding and Reranking API en la documentación de MongoDB.

Para ver la referencia completa de solicitudes y respuestas, consulta Create text embeddings en la documentación de la Atlas Embedding and Reranking API.

AWS Marketplace

Los modelos de Voyage AI también están disponibles en AWS Marketplace a través del perfil de vendedor de MongoDB. Para obtener instrucciones, consulta Deploy Voyage AI models using AWS Marketplace en la documentación de MongoDB.

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 AI 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

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

# Calcula la similitud
# Los embeddings de Voyage AI están normalizados a longitud 1, así que 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. Para obtener más información sobre input_type, consulta ¿Cuándo y cómo debería usar el parámetro input_type? en las preguntas frecuentes.

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

Para obtener los detalles de precios más actualizados, consulta Model pricing en la documentación de MongoDB.

Was this page helpful?