voyage-multimodal-3, presentado por Voyage AI, es un modelo para RAG y búsqueda semántica pensado para consultar bases de conocimiento con texto e imágenes mezclados usando un solo modelo de embeddings- Su principal diferenciador es que puede vectorizar sin parsear documentos materiales donde la información de layout es importante, como PDF, diapositivas, tablas, ilustraciones y capturas de pantalla de documentos
- Para reducir las limitaciones de búsqueda multimodal mixta de los modelos de la familia CLIP, procesa texto e información visual en el mismo codificador Transformer y preserva las relaciones de contexto en entradas con modalidades mezcladas
- En 20 datasets de búsqueda multimodal mostró una precisión de búsqueda promedio 19.63% superior a la del siguiente mejor modelo de embeddings multimodal, y también superó a OpenAI v3 large en 34 datasets de búsqueda de texto
- A medida que aumentaba la proporción de capturas de pantalla, los modelos basados en CLIP perdían calidad, pero
voyage-multimodal-3mostró poca degradación en todo el rango, por lo que resulta práctico para pipelines de búsqueda basados en capturas de pantalla
Casos de uso a los que apunta voyage-multimodal-3
voyage-multimodal-3es el primer modelo de embeddings multimodal de Voyage AI, orientado a RAG y búsqueda semántica en bases de conocimiento con abundante material visual y texto- Los tipos de entrada son texto e imágenes ricas en contenido, y ejemplos representativos son los siguientes
- Capturas de pantalla de texto
- Ilustraciones y tablas
- Capturas de pantalla de PDF
- Presentaciones de diapositivas
- Otras imágenes de documentos
- Los vectores generados reflejan no solo el significado del texto, sino también rasgos visuales como el tamaño de fuente, la posición del texto y los márgenes
- En documentos con layouts complejos o con ilustraciones y fotos mezcladas pueden surgir problemas de precisión con el parsing basado en heurísticas, por lo que el modelo adopta un enfoque que convierte directamente la vista original en vectores para búsqueda
- Se puede ver un ejemplo de uso en el sample notebook
Un enfoque de embeddings distinto al de la familia CLIP
- Los modelos multimodales existentes, como Amazon Titan Multimodal G1, Google Vertex AI multimodal y Cohere multimodal v3, usan una arquitectura basada en OpenAI CLIP
- La arquitectura de la familia CLIP procesa las distintas modalidades en redes independientes
- Las imágenes se vectorizan mediante una vision tower
- El texto se vectoriza mediante una text tower
- En esta estructura es difícil procesar de una sola vez entradas con texto e imágenes mezclados
voyage-multimodal-3vectoriza ambas modalidades directamente dentro del mismo codificador Transformer- El texto y las características visuales no se tratan como componentes separados, sino como parte de una representación unificada
- Es una aplicación de la arquitectura de los modelos modernos de visión-lenguaje al vectorizado, no a la generación
- Gracias a esto, puede incorporar en el vector tanto la información visual como la textual y su relación contextual en texto e imágenes mezclados, capturas de pantalla de documentos, PDF complejos e imágenes con anotaciones
La diferencia que se ve en búsquedas con capturas de pantalla mezcladas
- Los modelos similares a CLIP pueden degradar su rendimiento en búsqueda de modalidades mixtas por la brecha de modalidad (modality gap)
- En un ejemplo, el vector más cercano al fragmento de texto “I address you, members of the Seventy-Seventh Congress…” no era la captura de pantalla correspondiente, sino otro texto distinto
- Este fenómeno lleva a un sesgo de búsqueda donde un vector de texto queda más cerca de elementos no relacionados de la misma modalidad que de una imagen relacionada
- Voyage AI realizó un experimento cuantitativo con documentación de PyTorch
- Creó, para un mismo conjunto de documentos, versiones como cadenas de texto normales y como capturas de pantalla
- Construyó un dataset de modalidades mixtas combinando parte de los documentos basados en texto con capturas de pantalla del resto
- La proporción de capturas de pantalla se configuró de forma distinta desde 0% hasta 100%
- Cada modelo recuperó los 10 resultados principales con similitud coseno y fue evaluado con NDCG@10
- Los modelos basados en CLIP perdieron calidad de búsqueda a medida que la proporción de capturas de pantalla aumentaba hasta 90%, y también mostraron bajo rendimiento cuando todo el texto se sustituyó por imágenes
voyage-multimodal-3mostró el mejor rendimiento en todas las proporciones y casi no tuvo degradación general- Este resultado muestra su capacidad para capturar en el vector la información semántica presente dentro de capturas de pantalla y la solidez de procesar todas las modalidades de entrada con el mismo backbone
Datasets de evaluación y modelos de comparación
- La evaluación multimodal se realizó en 3 tareas y un total de 20 datasets
- Búsqueda de tablas/ilustraciones: charxiv, mmtab-test, ChartQA, Chartve, FintabnetQA, PlotQA
- Búsqueda de capturas de pantalla de documentos: Energy, Healthcare Industry, Artificial Intelligence, Government Report, InfoVQA, DocVQA, ArxivQA, TabFQuad, TAT-DQA, Shift Project del benchmark ViDoRe
- Búsqueda texto-foto: meme-cap, mm-imdb, winoground, docci
- La evaluación estándar de búsqueda de texto se realizó en 34 datasets de 6 dominios como legal, finanzas, diálogo, código, web y tecnología
- En todos los datasets, las consultas son texto y los documentos pueden ser ilustraciones, fotos, texto, capturas de pantalla de documentos o una combinación de estos
- Los modelos comparados en las tareas multimodales fueron los siguientes
- OpenAI CLIP large (
clip-vit-large-patch14-336) - Amazon Titan Multimodal Embeddings G1 (
amazon.titan-embed-image-v1) - Cohere multimodal v3 (
embed-multimodal-v3.0) - SigLIP So400M (
siglip-so400m-patch14-384) - ColQwen2 v0.1 (
colqwen-v0.1)
- OpenAI CLIP large (
- En búsqueda estándar de texto se comparó con OpenAI v3 large (
text-embeddings-3-large), Cohere multimodal/English 1 v3 yvoyage-3 - Como Cohere multimodal v3 usa Cohere English v3 (
embed-english-v3.0) como text tower en texto puro, en las gráficas se utiliza solo la etiqueta “Cohere multimodal v3” para reducir confusión
Resultados de precisión de búsqueda
voyage-multimodal-3registró una precisión de búsqueda promedio 19.63% superior a la del siguiente mejor modelo de embeddings multimodal en el conjunto completo de 20 datasets de búsqueda multimodal- En búsqueda de tablas/ilustraciones superó a OpenAI CLIP large, Amazon Titan Multimodal G1, Cohere multimodal v3, SigLIP So400M y ColQwen2 v0.1 por 41.44%, 45.00%, 43.37%, 20.66% y 6.14%, respectivamente
- En búsqueda de capturas de pantalla de documentos mostró un rendimiento superior de 26.54%, 37.68%, 25.84%, 35.62% y 0.98% frente a esos mismos modelos de comparación, respectivamente
- En búsqueda texto-foto quedó por delante de esos mismos modelos por 6.55%, 5.16%, 5.86%, 3.42% y 10.34%, respectivamente
- En búsqueda estándar de texto rindió 5.13% mejor que OpenAI v3 large y 13.70% mejor que Cohere multimodal/English 1 v3
- La precisión en búsqueda de documentos de texto puro fue 0.05% superior a
voyage-3, por lo que ambos modelos quedaron prácticamente al mismo nivel - Los resultados completos de la evaluación están publicados en esta hoja de cálculo
Cómo empezar y materiales disponibles
voyage-multimodal-3puede usarse desde el mismo día de su lanzamiento- Los primeros 200 millones de tokens son gratis
- Los materiales para empezar están disponibles en el sample notebook y en la documentación
- Los usuarios interesados en modelos de embeddings con fine-tuning pueden contactar a
contact@voyageai.com
1 comentarios
Comentarios en Hacker News
La observación clave es simple e intuitiva: todos los modelos de la familia CLIP rinden mal en búsquedas de modalidad mixta debido a la brecha entre modalidades (modality gap)
Por ejemplo, para la frase “I address you, members of the Seventy-Seventh Congress…”, el vector más cercano termina siendo otro texto y no la captura de pantalla correspondiente. Por eso, en el espacio de embeddings, los vectores de texto quedan más cerca de texto no relacionado que de imágenes relacionadas, sesgando los resultados de búsqueda hacia la misma modalidad
Si existe un espacio latente capaz de agrupar la misma idea, ya sea expresada visualmente o en texto, sería bastante genial. Aun así, creo que este benchmark evalúa los embeddings multimodales de una forma bastante estrecha. Que una imagen con texto relacionado y un embedding de texto queden cerca es útil, pero no necesariamente implica que eso se extienda a relaciones entre distintas representaciones visuales, como “rabbit” y una foto de un conejo. Si el objetivo es limitado, como indexar imágenes de documentos, quizá otras técnicas también funcionen bastante bien. Parece una buena oportunidad para que aparezca un nuevo dataset de benchmark sobre representación conceptual multimodal más allá de medios textuales
Si te interesa este campo, quizá valga la pena considerar nuestro proyecto, que usa ColPali internamente de forma transparente
https://github.com/tjmlabs/ColiVara
El benchmark principal de este lado es la tabla de clasificación de Vidore, y me gustaría ver cómo queda VoyageAI frente a implementaciones open source más abiertas
Siento que me estoy perdiendo de algo. Uno imaginaría que cualquier LLM “multimodal nativo” debería incluir embeddings multimodales de alguna forma
Por ejemplo, una entrada del blog de Gemini de Google explica que los modelos multimodales anteriores entrenaban por separado componentes para distintas modalidades y luego los unían, mientras que Gemini fue preentrenado desde el inicio con múltiples modalidades y ajustado con datos multimodales adicionales. Así que afirman que entiende y razona de forma natural sobre todo tipo de entradas desde el principio
La distinción aquí es que los embeddings de tokens y los vectores/embeddings que produce un modelo de embeddings son conceptos relacionados pero distintos. Hay muchos embeddings de tokens, uno por cada token, que se contextualizan al pasar por el transformer, mientras que un modelo de embeddings produce un solo vector por cada entrada, ya sea texto largo, una foto o una captura de pantalla de un documento
Técnicamente es un concepto un poco más específico, pero en este contexto sirve. Los LLM, incluidos los LLM multimodales, sí tienen embeddings, pero no fueron entrenados para encontrar documentos similares, sino mediante generación de texto
Se ve bastante impresionante. Me interesa una perspectiva crítica sobre la evaluación presentada
También me pregunto cómo se comporta con texto no inglés. ¿Entiendo bien que, como otros modelos comerciales, solo está disponible vía API?
Había escrito algo sobre multilingüismo, pero estaba mal, así que lo borré. Como referencia, Voyage también tiene modelos separados para
law,codeyfinance. Ver [1]En cualquier caso, los resultados son realmente interesantes
[1]: https://docs.voyageai.com/docs/embeddings
Es una lástima que el modelo sea comercial y privativo y solo esté disponible por API
Si es un modelo solo por API, yo lo paso de largo. Igual, felicitaciones
Se ve bastante interesante. He estado trabajando en AnyModal, un framework para integrar varios tipos de datos, por ejemplo imágenes y audio, en un LLM: https://github.com/ritabratamaiti/AnyModal
voyage-multimodal-3 parece bastante prometedor para desarrollar LLM multimodales, aunque no tengo claro si ese es su caso de uso previsto
En la API tradicional de Python, el motor de Voyage tokeniza bloques de texto y produce cadenas. Este modelo parece hacer eso con imágenes, vectorizándolas dentro de un espacio
Palabras como
youoapplese convierten en un solo token, mientras que términos más complejos comopikachupueden dividirse comopik-a-chu[1]: https://docs.voyageai.com/docs/tokenization
Es interesante la forma en que observan los embeddings multimodales. Miden el cambio de rendimiento según la proporción en que la entrada va pasando gradualmente de una modalidad a otra
https://i0.wp.com/blog.voyageai.com/wp-content/uploads/2024/...
En Colab miden valores de producto punto de 0.428 y 0.498 y explican que eso significa que “los valores de similitud son bastante altos”. Dudo que eso sea realmente alto
¿Se podría diseñar un sistema que etiquete datos con confianza usando un umbral de 0.4?
En el ejemplo del notebook, esos valores eran relativamente los más altos. Entiendo por qué puede resultar ambiguo o confuso, y lo corregiré
En datos reales que no sean casi duplicados, una similitud coseno de 0.4 es un valor bastante decente