Antes de implementar embeddings
Al seleccionar un proveedor de embeddings, 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 embeber. Datos más grandes o más específicos del dominio generalmente producen mejores embeddings en el dominio
- Rendimiento de inferencia: velocidad de búsqueda de embeddings y latencia de extremo a extremo. Esta es una consideración particularmente importante para implementaciones 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 embedding. 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 embedding de última generación y ofrece modelos personalizados para dominios industriales específicos como finanzas y salud, o modelos ajustados a medida para clientes individuales. El resto de esta guía es para Voyage AI, pero te animamos a evaluar una variedad de proveedores de embeddings para encontrar la mejor opción para tu caso de uso específico.Modelos Disponibles
Voyage recomienda usar los siguientes modelos de embedding de texto:Modelo | Longitud de Contexto | Dimensión del Embedding | Descripción |
---|---|---|---|
voyage-3-large | 32,000 | 1024 (predeterminado), 256, 512, 2048 | La mejor calidad de recuperación para propósito general y multilingüe. |
voyage-3 | 32,000 | 1024 | Optimizado para calidad de recuperación de propósito general y multilingüe. Ver publicación del blog para más detalles. |
voyage-3-lite | 32,000 | 512 | Optimizado para latencia y costo. Ver publicación del blog para más detalles. |
voyage-code-3 | 32,000 | 1024 (predeterminado), 256, 512, 2048 | Optimizado para recuperación de código. Ver publicación del blog para más detalles. |
voyage-finance-2 | 32,000 | 1024 | Optimizado para recuperación y RAG de finanzas. Ver publicación del blog para más detalles. |
voyage-law-2 | 16,000 | 1024 | Optimizado para recuperación y RAG legal y de contexto largo. También mejoró el rendimiento en todos los dominios. Ver publicación del blog para más detalles. |
Modelo | Longitud de Contexto | Dimensión del Embedding | Descripción |
---|---|---|---|
voyage-multimodal-3 | 32000 | 1024 | Modelo de embedding multimodal rico que puede vectorizar texto intercalado e imágenes ricas en contenido, como capturas de pantalla de PDFs, diapositivas, tablas, figuras y más. Ver publicación del blog para más detalles. |
Comenzando con Voyage AI
Para acceder a los embeddings de Voyage:- Regístrate en el sitio web de Voyage AI
- Obtén una clave API
- Configura la clave API como una variable de entorno para mayor comodidad:
voyageai
o mediante solicitudes HTTP, como se describe a continuación.
Paquete Python de Voyage
El paquetevoyageai
se puede instalar usando el siguiente comando:
result.embeddings
será una lista de dos vectores de embedding, cada uno conteniendo 1024 números de punto flotante. Después de ejecutar el código anterior, los dos embeddings se imprimirán en la pantalla:
embed()
. Puedes leer más sobre la especificación aquí
API HTTP de Voyage
También puedes obtener embeddings solicitando la API HTTP de Voyage. Por ejemplo, puedes enviar una solicitud HTTP a través del comandocurl
en una terminal:
AWS Marketplace
Los embeddings de Voyage también están disponibles en AWS Marketplace. Las instrucciones para acceder a Voyage en AWS están disponibles aquí.Ejemplo de Inicio Rápido
Ahora que sabemos cómo obtener embeddings, veamos un breve ejemplo. Supongamos que tenemos un pequeño corpus de seis documentos para recuperarinput_type="document"
y input_type="query"
para embeber el documento y la consulta, respectivamente. Puedes encontrar más especificaciones aquí.
La salida sería el quinto documento, que de hecho es el más relevante para la consulta:
Preguntas Frecuentes
¿Por qué los embeddings de Voyage tienen una calidad superior?
¿Por qué los embeddings de Voyage tienen una calidad superior?
Los modelos de embedding se basan en potentes redes neuronales para capturar y comprimir el contexto semántico, similar a los modelos generativos. El equipo de investigadores de IA experimentados de Voyage optimiza cada componente del proceso de embedding, incluyendo:
- Arquitectura del modelo
- Recopilación de datos
- Funciones de pérdida
- Selección del optimizador
¿Qué modelos de embedding están disponibles y cuál debería usar?
¿Qué modelos de embedding están disponibles y cuál debería usar?
Para embedding de propósito general, recomendamos:
voyage-3-large
: Mejor calidadvoyage-3-lite
: Menor latencia y costovoyage-3
: Rendimiento equilibrado con calidad de recuperación superior a un precio competitivo
input_type
para especificar el tipo de consulta o documento.Modelos específicos de dominio:- Tareas legales:
voyage-law-2
- Código y documentación de programación:
voyage-code-3
- Tareas relacionadas con finanzas:
voyage-finance-2
¿Qué función de similitud debería usar?
¿Qué función de similitud debería usar?
Los embeddings de Voyage soportan:
- Similitud de producto punto
- Similitud del coseno
- Distancia euclidiana
- La similitud del coseno es igual a la similitud del producto punto (el cálculo del producto punto es más rápido)
- La similitud del coseno y la distancia euclidiana producen clasificaciones idénticas
¿Cómo debería usar el parámetro input_type?
¿Cómo debería usar el parámetro input_type?
Para tareas de recuperación incluyendo RAG, siempre especifica Para documentos:Para clasificación, agrupamiento u otras tareas MTEB usando
input_type
como “query” o “document”. Esta optimización mejora la calidad de recuperación a través de prefijos de prompt especializados:Para consultas:Nunca omitas
input_type
o lo configures como None
para tareas de recuperación.voyage-large-2-instruct
, sigue las instrucciones en nuestro repositorio de GitHub.¿Qué opciones de cuantización están disponibles?
¿Qué opciones de cuantización están disponibles?
La cuantización reduce el almacenamiento, memoria y costos convirtiendo valores de alta precisión a formatos de menor precisión. Tipos de datos de salida disponibles (
Ejemplo: La cuantización binaria convierte ocho valores de embedding en un solo entero de 8 bits:
output_dtype
):Tipo | Descripción | Reducción de Tamaño |
---|---|---|
float | Punto flotante de precisión simple de 32 bits (predeterminado) | Ninguna |
int8 /uint8 | Enteros de 8 bits (-128 a 127 / 0 a 255) | 4x |
binary /ubinary | Valores de un solo bit empaquetados | 32x |
Los tipos binarios usan enteros de 8 bits para representar bits empaquetados, con
binary
usando el método binario desplazado.¿Cómo puedo truncar embeddings Matryoshka?
¿Cómo puedo truncar embeddings Matryoshka?
Los embeddings Matryoshka contienen representaciones de grueso a fino que pueden truncarse manteniendo las dimensiones principales. Así es cómo truncar vectores de 1024D a 256D: