Indexar imágenes para RAG: describir una vez y recuperar como texto

Fuentes: How we index images for RAG
Imagen generada por IA con el prompt: Abstract editorial illustration of a RAG pipeline: a document with screenshots, diagrams, and tables on the left flowing into a vision model and emerging as text caption fragments on the right, modern tech style, soft bl
Imagen generada con IA

Kapa.ai, empresa que construye asistentes de IA sobre documentación técnica, detalla en un extenso post cómo procesa los millones de imágenes (capturas, diagramas de arquitectura, esquemas de circuitos, tablas de especificaciones) que viven en sus bases de conocimiento. Tras varios meses de trabajo, la compañía descarta el enfoque multimodal en tiempo de consulta y opta por una estrategia más económica: describir cada imagen una sola vez, en la indexación, con un modelo de visión barato, y almacenar esas descripciones como texto.

El equipo clasificó las imágenes en dos tipos a partir de miles de preguntas reales de clientes en hardware, semiconductores y herramientas para desarrolladores. La mayoría son ilustrativas y confirman visualmente lo que el texto ya explica, como una captura que muestra el icono de ajustes al que se refiere una guía. Otras, en cambio, son portantes: un diagrama de cableado, una tabla de certificaciones o una matriz de disponibilidad de colores pueden contener información que no aparece en el texto circundante. En ambos casos, según la empresa, un juez LLM prefirió las respuestas con contexto de imagen con significancia estadística (test de McNemar, p < 0,05) en tres proyectos de cliente y dos modelos.

Los autores explican por qué el enfoque multimodal en tiempo de consulta no escala. Enviar las imágenes a GPT 5.1 o Claude 4.6 Sonnet elevó el coste por consulta un 27 % en GPT y un 51 % en Claude, por la tokenización de las imágenes (Claude ronda 975 tokens por imagen frente a 716 de GPT). Los límites de payload (30 MB en Claude, 50 MB en OpenAI) hacen que unas 25 imágenes ya se acerquen al techo de Claude, obligando a recortes agresivos. Los embeddings tipo CLIP, además, diluyen el detalle fino que importa en gráficos y tablas, y las consultas técnicas cortas aportan poca señal para emparejar contra vectores de imagen.

La solución adoptada consiste en usar un modelo de visión en la ingesta para generar una descripción de cada imagen, que se almacena como un fragmento de texto junto a los chunks ordinarios. En la consulta, si esa descripción es relevante, el recuperador la incorpora y el modelo responde basándose solo en texto, citando la imagen por su URL original. El equipo de investigación de Microsoft llegó a una conclusión parecida.

El post aborda también retos de producción: filtrar imágenes basura (logos, avatares, banners) con un clasificador zero-shot que alcanza el 96,8 % de precisión en casos claros pero cae al 59,8 % en ambiguos; alimentar al modelo de visión con los párrafos circundantes para mejorar la calidad de las descripciones; y guardar las descripciones como chunks separados en lugar de incrustarlas en el texto del documento, ya que esta segunda opción elevó el coste por consulta un 19 % en GPT en un proyecto con muchas imágenes.