Embeddings
Los embeddings de texto son representaciones numéricas del texto que permiten medir la similitud semántica. Esta guía introduce los embeddings, sus aplicaciones y cómo usar modelos de embedding para tareas como búsqueda, recomendaciones y detección de anomalías.
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 el que mejor se adapte a tu caso de uso específico.
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:
Puedes ejecutar los embeddings usando el paquete Python oficial voyageai o solicitudes HTTP, como se describe a continuación.
Paquete Python de Voyage
El paquete voyageai
se puede instalar usando el siguiente comando:
Luego, puedes crear un objeto cliente y comenzar a usarlo para embeber tus textos:
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:
Al crear los embeddings, puedes especificar algunos otros argumentos para la función embed()
. Aquí está la especificación:
voyageai.Client.embed(texts : List[str], model : str, input_type : Optional[str] = None, truncation : Optional[bool] = None)
- texts (List[str]) - Una lista de textos como lista de strings, como
["I like cats", "I also like dogs"]
. Actualmente, la longitud máxima de la lista es 128, y el número total de tokens en la lista es como máximo 320K paravoyage-2
y 120K paravoyage-large-2
/voyage-code-2
. - model (str) - Nombre del modelo. Opciones recomendadas:
voyage-2
,voyage-large-2
,voyage-code-2
. - input_type (str, opcional, por defecto
None
) - Tipo del texto de entrada. Por defectoNone
. Otras opciones:query
,document
- Cuando input_type se establece en
None
, el texto de entrada será codificado directamente por el modelo de embedding de Voyage. Alternativamente, cuando las entradas son documentos o consultas, los usuarios pueden especificarinput_type
comoquery
odocument
, respectivamente. En tales casos, Voyage antepondrá un prompt especial al texto de entrada y enviará las entradas extendidas al modelo de embedding - Para casos de uso de recuperación/búsqueda, recomendamos especificar este argumento al codificar consultas o documentos para mejorar la calidad de la recuperación. Los embeddings generados con y sin el argumento
input_type
son compatibles
- Cuando input_type se establece en
- truncation (bool, opcional, por defecto
None
) - Si se deben truncar los textos de entrada para que quepan dentro de la longitud del contexto.- Si es
True
, los textos de entrada que excedan la longitud se truncarán para que quepan dentro de la longitud del contexto, antes de ser vectorizados por el modelo de embedding - Si es
False
, se generará un error si algún texto dado excede la longitud del contexto - Si no se especifica (por defecto
None
), Voyage truncará el texto de entrada antes de enviarlo al modelo de embedding si excede ligeramente la longitud de la ventana de contexto. Si excede significativamente la longitud de la ventana de contexto, se generará un error
- Si es
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 comando curl
en una terminal:
La respuesta que obtendrías es un objeto JSON que contiene los embeddings y el uso de tokens:
El endpoint de embedding de Voyage AI es https://api.voyageai.com/v1/embeddings
(POST). El encabezado de la solicitud debe contener la clave API. El cuerpo de la solicitud es un objeto JSON que contiene los siguientes argumentos:
- input (str, List[str]) - Una cadena de texto única o una lista de textos como lista de strings. Actualmente, la longitud máxima de la lista es 128, y el número total de tokens en la lista es como máximo 320K para
voyage-2
y 120K paravoyage-large-2
/voyage-code-2
. - model (str) - Nombre del modelo. Opciones recomendadas:
voyage-2
,voyage-large-2
,voyage-code-2
. - input_type (str, opcional, por defecto
None
) - Tipo del texto de entrada. Por defectoNone
. Otras opciones:query
,document
- truncation (bool, opcional, por defecto
None
) - Si se deben truncar los textos de entrada para que quepan dentro de la longitud del contexto- Si es
True
, los textos de entrada que excedan la longitud se truncarán para que quepan dentro de la longitud del contexto antes de ser vectorizados por el modelo de embedding - Si es
False
, se generará un error si algún texto dado excede la longitud del contexto - Si no se especifica (por defecto
None
), Voyage truncará el texto de entrada antes de enviarlo al modelo de embedding si excede ligeramente la longitud de la ventana de contexto. Si excede significativamente la longitud de la ventana de contexto, se generará un error
- Si es
- encoding_format (str, opcional, por defecto
None
) - Formato en el que se codifican los embeddings. Voyage actualmente admite dos opciones:- Si no se especifica (por defecto
None
): los embeddings se representan como listas de números de punto flotante "base64"
: los embeddings se comprimen a codificaciones Base64
- Si no se especifica (por defecto
Ejemplo de embedding de Voyage
Ahora que sabemos cómo obtener embeddings con Voyage, veamos un breve ejemplo en acción.
Supongamos que tenemos un pequeño corpus de seis documentos para recuperar
Primero usaremos Voyage para convertir cada uno de ellos en un vector de embedding
Los embeddings nos permitirán hacer búsqueda semántica / recuperación en el espacio vectorial. Luego podemos convertir una consulta de ejemplo,
en un embedding, y luego realizar una búsqueda del vecino más cercano para encontrar el documento más relevante basado en la distancia en el espacio de embedding.
Ten en cuenta que usamos input_type="document"
y input_type="query"
para embeber el documento y la consulta, respectivamente. Más especificaciones se pueden encontrar aquí.
La salida sería el quinto documento, que de hecho es el más relevante para la consulta:
Modelos Voyage disponibles
Voyage recomienda usar los siguientes modelos de embedding:
Modelo | Longitud de Contexto | Dimensión de Embedding | Descripción |
---|---|---|---|
voyage-large-2 | 16000 | 1536 | El modelo de embedding generalista más potente de Voyage AI. |
voyage-code-2 | 16000 | 1536 | Optimizado para recuperación de código (17% mejor que las alternativas), y también estado del arte en corpus de propósito general. Ver este post del blog de Voyage para más detalles. |
voyage-2 | 4000 | 1024 | Modelo de embedding generalista base optimizado tanto para latencia como para calidad. |
voyage-lite-02-instruct | 4000 | 1024 | Ajustado con instrucciones para tareas de clasificación, agrupamiento y similitud textual de oraciones, que son los únicos casos de uso recomendados para este modelo. |
voyage-2
y voyage-large-2
son modelos de embedding generalistas, que logran un rendimiento de última generación en todos los dominios y mantienen una alta eficiencia. voyage-code-2
está optimizado para el campo del código, ofreciendo 4 veces la longitud de contexto para un uso más flexible, aunque con una latencia relativamente más alta.
Voyage está desarrollando activamente modelos más avanzados y especializados, y también ofrece servicios de ajuste fino para personalizar modelos a medida para clientes individuales. Envía un correo electrónico a tu gerente de cuenta de Anthropic o comunícate con el soporte de Anthropic para obtener más información sobre modelos a medida.
voyage-finance-2
: próximamentevoyage-law-2
: próximamentevoyage-multilingual-2
: próximamentevoyage-healthcare-2
: próximamente
Voyage en AWS Marketplace
Los embeddings de Voyage también están disponibles en AWS Marketplace. Aquí están las instrucciones para acceder a Voyage en AWS:
- Suscríbete al paquete del modelo
- Navega a la página de listado del paquete del modelo y selecciona el modelo a implementar
- Haz clic en el botón
Continue to subscribe
- Revisa cuidadosamente los detalles en la página
Subscribe to this software
. Si estás de acuerdo con el Acuerdo de Licencia de Usuario Final (EULA) estándar, los precios y los términos de soporte, haz clic en “Accept Offer” - Después de seleccionar
Continue to configuration
y elegir una región, se te presentará un Product Arn. Este es el ARN del paquete del modelo requerido para crear un modelo implementable usando Boto3- Copia el ARN que corresponde a tu región seleccionada y úsalo en la siguiente celda
- Implementa el paquete del modelo
A partir de aquí, crea un espacio JupyterLab en Sagemaker Studio, sube el notebook de Voyage y sigue las instrucciones dentro.
Preguntas frecuentes
Precios
Visita la página de precios de Voyage para obtener los detalles de precios más actualizados.
Was this page helpful?