Módulo 6: RAG Multimodal

1. Introducción: RAG Multimodal

Descripción

RAG (Retrieval-Augmented Generation) fue un salto enorme para los LLMs: en lugar de depender solo de su conocimiento entrenado, el modelo busca en un corpus de documentos y responde con contexto real. Pero el RAG clásico tiene un punto ciego masivo: solo busca texto. Si tu corpus incluye diagramas, gráficos, capturas de pantalla, fotos de productos, o PDFs con figuras, el RAG clásico los ignora por completo.

El RAG multimodal resuelve esto. Indexa texto e imágenes en el mismo espacio vectorial (o en espacios coordinados) y recupera chunks relevantes de ambos tipos cuando el usuario hace una pregunta. Puedes preguntar "encuentra documentos que muestren un diagrama de arquitectura microservicios" y el sistema recupera tanto los párrafos que mencionan microservicios como los diagramas visuales que los ilustran.

Por qué importa: El RAG multimodal es el corazón del Q&A del Document Analyzer que construirás en el Módulo 8. Sin esto, tu proyecto solo extraería datos aislados. Con RAG multimodal, responde preguntas complejas usando texto Y figuras del documento original. En producción, esto es la diferencia entre un chatbot que dice "no encuentro información sobre el diagrama" y uno que te muestra el diagrama relevante junto con la explicación.

Conexión con los módulos anteriores: Los módulos 1-5 te dieron las piezas individuales: vision (M2), procesamiento de documentos (M3), generación de imágenes (M4), audio (M5). Este módulo las ensambla en un sistema de búsqueda y respuesta que combina todo. Es donde pasas de "puedo analizar una imagen" a "puedo buscar en miles de documentos con imágenes y responder preguntas sobre ellos".


¿Dónde Estamos en la Guía?

Contexto

Esta guía tiene 8 módulos organizados en 3 fases:

Phase 1: Fundamentos Multimodales (Módulos 1-3)
├── Módulo 1: Introducción a IA Multimodal
├── Módulo 2: Vision + LLMs
└── Módulo 3: Comprensión de Documentos

Phase 2: Generación y Audio (Módulos 4-5)
├── Módulo 4: Generación de Imágenes
└── Módulo 5: Procesamiento de Audio

Phase 3: RAG, Casos de Uso y Proyecto (Módulos 6-8)
├── Módulo 6: RAG Multimodal    ← ESTÁS AQUÍ
├── Módulo 7: Casos de Uso
└── Módulo 8: Proyecto Final — Document Analyzer Multimodal

Duración total estimada de la guía: 6-7 horas (self-paced).

¿Hacia dónde vamos?

Hasta ahora trabajaste con modalidades individuales: enviar una imagen a un LLM, transcribir audio, generar imágenes. Este módulo conecta esas habilidades con búsqueda inteligente. El Módulo 7 aplica patrones de producción, y el Módulo 8 integra todo en el Document Analyzer.

La progresión dentro de la Phase 3:

  1. RAG Multimodal (este módulo) — buscar y responder sobre corpus con texto + imágenes
  2. Casos de Uso (módulo 7) — patrones de producción: Q&A documental, video, monitoring
  3. Document Analyzer (módulo 8) — el proyecto final que integra vision + RAG + audio

Qué es RAG Multimodal

RAG clásico (solo texto)

El pipeline clásico de RAG funciona así:

1. INDEXAR:
   Documentos → chunks de texto → embeddings → vector store

2. QUERY:
   Pregunta del usuario → embedding de la pregunta
   → buscar chunks similares en vector store
   → enviar chunks al LLM como contexto
   → LLM genera respuesta

Ejemplo:
   "¿Cuál es la política de devoluciones?"
   → recupera chunks del manual de devoluciones
   → LLM responde con la info del manual

Esto funciona bien cuando los documentos son puro texto. Pero el mundo real no es puro texto.

El problema: documentos reales tienen imágenes

Piensa en estos escenarios:

  • Un manual técnico con diagramas de arquitectura — el texto dice "ver Figura 3", pero RAG clásico no sabe qué hay en la Figura 3
  • Un reporte financiero con gráficos — las tendencias están en los gráficos, no en el texto
  • Un catálogo de productos con fotos — el usuario pregunta "¿tienen algo parecido a esta imagen?"
  • Un paper académico con tablas y figuras — la mitad de la información está en elementos visuales

Si solo indexas el texto, estás perdiendo entre el 30% y el 60% de la información en estos documentos.

RAG multimodal: la solución

1. INDEXAR:
   Documentos → chunks de texto → embeddings de texto    → vector store
                                                            ↑
             → imágenes → descripciones/embeddings de img → vector store

2. QUERY:
   Pregunta (texto o imagen)
   → embedding de la pregunta
   → buscar en chunks de texto Y chunks de imagen
   → fusionar resultados (re-ranking)
   → enviar contexto (texto + descripciones de imágenes) al LLM
   → LLM genera respuesta informada por AMBAS modalidades

La clave es que texto e imágenes coexisten en el mismo índice. Cuando buscas, recuperas lo más relevante sin importar si es un párrafo o una imagen.

Dos estrategias principales

Hay dos formas de hacer RAG multimodal, y en este módulo cubrimos ambas:

Estrategia 1: Descripción textual de imágenes

Imagen → Vision API → descripción textual → embedding de texto → vector store

Conviertes cada imagen en una descripción usando un modelo con visión (GPT-4o, Claude 3). Luego tratas esa descripción como cualquier otro chunk de texto. Simple, compatible con cualquier vector store, pero pierdes información visual que el texto no captura.

Estrategia 2: Embeddings multimodales nativos

Imagen → CLIP/modelo multimodal → embedding de imagen → vector store
Texto  → CLIP/modelo multimodal → embedding de texto  → vector store

Usas un modelo como CLIP que genera embeddings en un espacio compartido para texto e imágenes. Un embedding de "perro" y un embedding de una foto de perro están cerca en el espacio vectorial. Más preciso, pero requiere modelos específicos.


Por Qué Importa el RAG Multimodal

La brecha del RAG clásico

Escenario: Manual técnico de 200 páginas

RAG clásico:
  Pregunta: "¿Cómo se conecta el módulo A con el módulo B?"
  → Recupera párrafos que mencionan módulos A y B
  → Respuesta: "El módulo A se conecta al módulo B mediante una API REST"
  → FALTA: El diagrama de arquitectura que muestra exactamente el flujo

RAG multimodal:
  Misma pregunta
  → Recupera párrafos Y el diagrama de conexión
  → Respuesta: "El módulo A se conecta al módulo B mediante una API REST.
     El diagrama de la página 42 muestra que la comunicación pasa por
     un API Gateway con autenticación OAuth 2.0"
  → COMPLETO: Texto + contexto visual

Casos de uso en producción

  1. Q&A sobre documentación técnica: Manuales con diagramas, documentación de API con capturas de pantalla. El usuario pregunta y recibe respuestas que referencian tanto texto como figuras.

  2. Análisis de reportes: Reportes financieros o de negocio con gráficos. "¿Cómo fueron las ventas del Q3?" recupera el párrafo de resumen Y el gráfico de tendencia.

  3. Soporte al cliente con catálogos: "¿Tienen un producto parecido a este?" El usuario envía una imagen y el sistema busca en el catálogo por similitud visual.

  4. Investigación académica: Papers con figuras, tablas y ecuaciones. "¿Qué resultados obtuvieron en el experimento?" recupera la sección de resultados Y las figuras relevantes.

  5. Legal y compliance: Contratos con firmas, sellos y tablas. El RAG multimodal indexa tanto las cláusulas textuales como los elementos visuales.

  6. E-commerce: Búsqueda de productos combinando descripción textual ("vestido rojo elegante") con referencia visual (foto de ejemplo).

Datos de contexto

  • 85% de documentos empresariales contienen elementos visuales (McKinsey 2024)
  • Un RAG que solo indexa texto pierde 30-60% de la información en documentos con figuras
  • Los sistemas de Q&A multimodal muestran +40% de precisión en respuestas sobre documentos técnicos vs RAG solo-texto
  • ChromaDB reporta que >50% de sus usuarios indexan alguna forma de dato multimodal

Objetivos del Módulo

Al terminar este módulo serás capaz de:

  • ✅ Generar embeddings para imágenes usando dos estrategias: descripción textual con Vision y embeddings nativos con CLIP
  • ✅ Construir un índice multimodal en ChromaDB que contenga chunks de texto y representaciones de imágenes
  • ✅ Implementar retrieval híbrido que busca por texto e imagen y fusiona resultados con re-ranking
  • ✅ Procesar documentos mixtos (PDFs con figuras) preservando la asociación texto-imagen
  • ✅ Usar LangChain para construir un pipeline RAG multimodal completo
  • ✅ Identificar limitaciones (costo, latencia, calidad) y aplicar optimizaciones (caching, batch, CLIP local)
  • ✅ Construir un proyecto funcional de RAG multimodal básico que indexa, busca y responde

Objetivo profesional

Cuando alguien te diga "necesitamos un chatbot que responda preguntas sobre nuestros manuales técnicos con diagramas", sabrás: cómo indexar los documentos (texto + imágenes), qué estrategia de embeddings usar (descripción vs CLIP), cómo implementar la búsqueda (híbrida con re-ranking), cuánto costará (embeddings + Vision + LLM), y qué limitaciones tendrá. Ese nivel de criterio es lo que separa a un developer que "sabe usar ChatGPT" de uno que diseña sistemas de IA en producción.


Roadmap del Módulo

Mapa de cápsulas

#CápsulaQué aprenderásTipo
01Introducción (esta)RAG multimodal, contexto, objetivos, setupIntro
02Embeddings de imágenesCLIP, Vision+embedding, similitud coseno, ChromaDB introTécnica
03Indexación multimodalChromaDB setup, indexar texto+imágenes, metadata, persistenciaTécnica
04Retrieval híbridoBúsqueda texto+imagen, fusión de resultados, RRF, ponderaciónTécnica
05Documentos con imágenesChunking de PDFs con figuras, asociar texto-imagen, pipelinesTécnica
06Implementación con LangChainDocument loaders, retrievers, chains RAG multimodalTécnica
07Limitaciones y optimizaciónCostos, latencia, caching, batch, monitoreoTécnica
08Proyecto: RAG multimodal básicoSistema completo: indexar, buscar, responder con texto+imágenesProyecto

Flujo de aprendizaje

Primero entenderás cómo representar imágenes como vectores (cápsula 02) — esta es la pieza fundamental. Luego aprenderás a almacenar esos vectores junto con texto en un índice (cápsula 03). Después implementarás la búsqueda que combina ambos (cápsula 04). Verás cómo procesar documentos reales que mezclan texto y figuras (cápsula 05). Luego usarás LangChain para simplificar la implementación (cápsula 06). Identificarás limitaciones y cómo optimizar (cápsula 07). Y finalmente integrarás todo en un proyecto funcional (cápsula 08).

La progresión es: representación → almacenamiento → búsqueda → documentos reales → framework → optimización → proyecto.

Duración estimada del módulo: 50-60 minutos.


Conexión con el Proyecto

Proyecto de este módulo: RAG Multimodal Básico

El proyecto de la cápsula 08 es un sistema RAG que:

Input:
  - Documentos PDF con texto e imágenes
  - Pregunta del usuario (texto)

Proceso:
  1. Extraer texto e imágenes del PDF
  2. Generar embeddings (texto directo, imágenes vía descripción)
  3. Almacenar en ChromaDB
  4. Buscar chunks relevantes (texto + imagen)
  5. Generar respuesta con LLM usando contexto multimodal

Output:
  - Respuesta textual basada en texto E imágenes del documento
  - Fuentes: qué chunks y qué páginas se usaron

Conexión con el proyecto final: Document Analyzer

Módulo 2: Vision → analizar imágenes individuales
Módulo 3: Documentos → extraer datos de PDFs
Módulo 6: RAG Multimodal → buscar y responder sobre corpus con imágenes
    ↓
Módulo 8: Document Analyzer → combina vision + documentos + RAG + audio

Tu RAG multimodal del módulo 6 se convierte en el motor de Q&A del Document Analyzer. Cuando un usuario sube un PDF y hace preguntas, es tu pipeline RAG multimodal el que busca la respuesta.


Prerrequisitos

De módulos anteriores

Este módulo asume que completaste (o al menos leíste) los módulos anteriores:

MóduloQué necesitas de él
M1: IntroducciónEntender modalidades, modelos, formatos (Base64, APIs)
M2: VisionEnviar imágenes a GPT-4o/Claude, obtener descripciones
M3: DocumentosExtraer texto e imágenes de PDFs con PyMuPDF
M4: GeneraciónConcepto de embeddings y espacios vectoriales
M5: AudioPipeline de procesamiento secuencial de datos

Conocimientos técnicos

  • Python intermedio: Funciones, clases, manejo de archivos, async/await básico
  • APIs de LLMs: Experiencia con OpenAI API (chat completions, embeddings)
  • Concepto de embeddings: Qué es un vector, similitud coseno (lo profundizamos en cápsula 02)
  • PDFs: Haber trabajado con PyMuPDF o herramientas similares

Si no tienes los prerrequisitos

Te faltaRecurso
Módulos 1-5 de esta guíaCompleta al menos M1, M2 y M3 antes de continuar
Concepto de embeddingsOpenAI Embeddings Guide
Vector databasesChromaDB Getting Started
PyMuPDFCápsula 05 del Módulo 3 de esta guía

Setup Técnico

Dependencias

python --version  # 3.11+ requerido

pip install openai>=1.0.0 pillow python-dotenv

pip install langchain langchain-openai langchain-community

pip install chromadb

pip install sentence-transformers

# Opcional: CLIP para embeddings nativos
pip install transformers torch

# Opcional: procesamiento de PDFs
pip install pymupdf

Variables de entorno

# .env
OPENAI_API_KEY=sk-...

# Opcionales
ANTHROPIC_API_KEY=sk-ant-...
GOOGLE_API_KEY=...

Verificación rápida

from openai import OpenAI
import chromadb
from dotenv import load_dotenv

load_dotenv()

oai = OpenAI()
response = oai.embeddings.create(
    model="text-embedding-3-small",
    input="Test de embeddings para RAG multimodal"
)
print(f"Embedding dimension: {len(response.data[0].embedding)}")

chroma = chromadb.Client()
collection = chroma.create_collection("test")
collection.add(
    documents=["Texto de prueba"],
    ids=["test_1"]
)
results = collection.query(query_texts=["prueba"], n_results=1)
print(f"ChromaDB funciona: {results['documents'][0][0]}")

chroma.delete_collection("test")
print("Setup completo — listo para el módulo 6")

Si ves las tres líneas de output sin errores, tu entorno está listo.

Costos estimados

OperaciónCosto aproximado
Embeddings (text-embedding-3-small)~$0.02 por 1M tokens
Vision (gpt-4o-mini, describir imágenes)~$0.01-0.03 por imagen
LLM para respuestas (gpt-4o)~$0.01-0.05 por query
ChromaDBGratuito (local)
CLIP (Hugging Face)Gratuito (local)

Total estimado para completar el módulo: $0.50-2.00 USD.

Consejo: Usa gpt-4o-mini para describir imágenes durante desarrollo. Solo cambia a gpt-4o si necesitas mayor calidad de descripción. ChromaDB y CLIP son gratuitos y locales.

Estructura de archivos recomendada

ai-multimodal-guide/
├── .env
├── module_06/
│   ├── embeddings.py          # Funciones de embeddings (cápsula 02)
│   ├── indexer.py             # Indexación multimodal (cápsula 03)
│   ├── retriever.py           # Retrieval híbrido (cápsula 04)
│   ├── document_processor.py  # Procesar docs con imágenes (cápsula 05)
│   ├── langchain_rag.py       # Implementación LangChain (cápsula 06)
│   ├── rag_pipeline.py        # Proyecto: pipeline completo (cápsula 08)
│   ├── chroma_db/             # Persistencia de ChromaDB
│   └── test_docs/
│       ├── sample.pdf         # PDF de prueba con imágenes
│       ├── diagram.png        # Imagen de prueba
│       └── product.jpg        # Otra imagen de prueba
└── ...

Límites: Qué NO Cubre Este Módulo

  • RAG con video — Nos enfocamos en texto + imágenes estáticas. Video se cubre en M7.
  • RAG con audio — La integración con transcripciones existe pero no es el foco.
  • Fine-tuning de modelos de embedding — Usamos modelos pre-entrenados (CLIP, OpenAI).
  • Vector databases en producción (Pinecone, Weaviate, Qdrant) — Usamos ChromaDB por simplicidad. Los conceptos aplican a cualquier vector store.
  • RAG avanzado (grafos de conocimiento, RAG iterativo) — Cubrimos el pipeline fundamental.
  • Evaluación formal de RAG (RAGAS, benchmarks) — Mencionamos métricas pero no frameworks de evaluación.

Modelo Mental: De RAG Clásico a RAG Multimodal

Antes de entrar en las cápsulas técnicas, ten claro este modelo mental:

RAG clásico:
  DATOS:    [texto, texto, texto, texto]
  BÚSQUEDA: texto → texto
  CONTEXTO: solo texto

RAG multimodal:
  DATOS:    [texto, texto, imagen_desc, texto, imagen_desc, texto]
  BÚSQUEDA: texto → texto + imagen_desc
             imagen → texto + imagen_desc
  CONTEXTO: texto + descripciones de imágenes + referencias visuales

La complejidad adicional no está en el concepto (es el mismo pipeline), sino en:

  1. Representación: ¿Cómo conviertes una imagen en algo buscable?
  2. Indexación: ¿Cómo almacenas texto e imágenes juntos?
  3. Retrieval: ¿Cómo combinas resultados de diferentes modalidades?
  4. Documentos: ¿Cómo preservas la relación texto-imagen en un PDF?

Cada cápsula del módulo responde una de estas preguntas.


Evidencia de Éxito

Al terminar este módulo, sabrás que tuviste éxito si:

  • ✅ Puedes generar embeddings para una imagen (vía descripción textual O vía CLIP) y compararlos con embeddings de texto
  • ✅ Tu índice en ChromaDB contiene tanto chunks de texto como representaciones de imágenes con metadata correcta
  • ✅ Tu búsqueda híbrida encuentra resultados relevantes combinando texto e imagen, con re-ranking
  • ✅ Puedes procesar un PDF con figuras y preservar la asociación texto-imagen en el índice
  • ✅ Tu pipeline LangChain funciona end-to-end: documento → indexación → query → respuesta
  • ✅ Conoces los costos reales y sabes aplicar al menos 3 optimizaciones (caching, batch, CLIP local)
  • ✅ Tu proyecto RAG multimodal funciona: indexar documentos, buscar, y obtener respuestas con contexto de texto e imágenes

Autoevaluación rápida

Si puedes responder estas preguntas antes de empezar, probablemente ya tienes la base. Si no, este módulo te las responderá:

  1. ¿Qué diferencia hay entre generar un embedding de una imagen con CLIP vs describir la imagen y generar un embedding del texto?
  2. ¿Por qué necesitas re-ranking cuando combinas resultados de búsqueda de texto e imagen?
  3. ¿Cuánto cuesta describir 500 imágenes con GPT-4o-mini, y cómo lo optimizarías?
  4. ¿Qué pasa cuando un chunk de texto dice "ver Figura 3" pero el índice no tiene la Figura 3?

Resumen

  • RAG multimodal extiende el RAG clásico para indexar y buscar en texto + imágenes.
  • El pipeline es: extraer → representar (embeddings) → indexar → buscar → fusionar → responder.
  • Hay dos estrategias principales: descripción textual de imágenes (simple) y embeddings multimodales nativos (más preciso).
  • Los casos de uso incluyen: documentación técnica, reportes, catálogos, papers, contratos.
  • Este módulo cubre 7 cápsulas técnicas + 1 proyecto que juntas construyen un RAG multimodal funcional.
  • Es la base directa del Document Analyzer del Módulo 8.
  • Tools principales: OpenAI API (embeddings + vision), ChromaDB (vector store), LangChain (framework), CLIP (embeddings nativos opcionales).

Recursos Adicionales

  1. OpenAI Embeddings Guide — Documentación oficial de embeddings
  2. ChromaDB Documentation — Vector store que usamos en el módulo
  3. CLIP Paper (Radford et al.) — El modelo que conecta texto e imágenes
  4. LangChain RAG — Tutorial oficial de RAG con LangChain
  5. Multimodal RAG (LlamaIndex) — Referencia de implementación alternativa
  6. Sentence Transformers — Modelos de embeddings open source
  7. Pinecone: Multimodal Search — Conceptos de búsqueda multimodal