Clase 8 — Introducción a la Visión Artificial: del documento al LLM con prompts
Resumen Ejecutivo
Sesión de transición al bloque 3 (visión artificial). La primera mitad es una conversación abierta con los alumnos sobre arquitecturas modernas de procesamiento de documentos e imágenes con IA: del modelo clásico (entrada → modelo entrenado o pre-entrenado → salida) a un modelo basado en LLM + prompt + checker, con discusión de herramientas reales (Document AI de Google, Gemini 1.5, Anthropic Claude, Noxus, n8n, Dify AI, Langflow, Mysa). En la segunda mitad se aterriza el tema 7: introducción al procesamiento digital de imágenes, con definiciones, justificación de la importancia, volumen de datos requerido para entrenar modelos visuales, y los tres bloques fundamentales del análisis de imagen (segmentación, extracción de características, clasificación de patrones). ⚠️ EXAMEN: definiciones de visión artificial y análisis de imagen, áreas de aplicación, los tres bloques de análisis, y el marco conceptual de prompt = qué + cómo (know-how) + checker.
Conceptos Clave
Modelo clásico vs. modelo LLM-céntrico ⚠️ EXAMEN
| Modelo clásico (pre-2022) | Modelo moderno con LLM | |
|---|---|---|
| Núcleo | Modelo entrenado/pre-entrenado para una tarea | LLM generalista guiado por prompt |
| Entrada | Tipo fijo (PDF, imagen, etc.) | Cualquier tipo, normalizada vía conversores |
| Salida | Estructura fija definida en el modelo | Definida por el prompt (suele ser JSON) |
| Coste de adaptación | Re-entrenar o fine-tunear | Reescribir el prompt |
| Garantía de salida | Alta (esquema fijo) | Necesita checker explícito |
Anatomía de un agente LLM bien diseñado ⚠️ EXAMEN
- Instrucciones (qué): descripción de la tarea a realizar.
- Know-how (cómo): restricciones específicas, criterios, reglas de extracción ("solo valores con
€al final, sin decimales, en filas \(\geq 17\)"...). - Checker: validación a posteriori de la salida (presencia de campos, formato, umbrales). Puede ejecutarse con otro LLM o con código.
- Guardrails (guardarraíles): controles de seguridad sobre entrada y salida (no enviar al modelo datos clasificados, abortar si la salida supera umbrales no permitidos, etc.).
Document AI vs. LLM con prompt
- Document AI (Google): procesador especializado (e.g. Invoice Processor). Modelo pre-entrenado por Google + posibilidad de snapshot + fine-tuning propio (Google recomienda 200-250 documentos etiquetados como mínimo). Salida en JSON estandarizado, los nombres de campo son fijos.
- Gemini 1.5 / Claude / GPT con prompt: flexibilidad total, los nombres de campo los defines tú en el prompt. Más versátil ante entradas heterogéneas, pero la calidad depende enormemente del prompt.
Punto clave de la profesora: el "centro de gravedad" se ha desplazado de la calidad del modelo a la calidad del prompt. Un buen prompt engineer es el determinante.
Visión artificial — definiciones ⚠️ EXAMEN
- Visión por computador / artificial: adquisición y procesamiento de la información visual por parte del ordenador.
- Procesamiento digital de imágenes: campo en crecimiento continuo. Aplicaciones desde la industria del entretenimiento hasta el programa espacial.
- Análisis de imágenes: examen de los datos de la imagen para resolver un problema concreto. Es la fase de desarrollo y validación dentro del ciclo de una aplicación de visión por computador.
- Aplicación de visión por computador: sistema desplegado que integra los métodos de análisis de imágenes en producción.
Dos áreas primarias de aplicación según el receptor ⚠️ EXAMEN
| Área | Receptor de la salida | Característica |
|---|---|---|
| Aplicaciones de visión por computador | El propio ordenador (otro proceso, sensor, agente) | La salida no necesita ser visualmente "bonita"; se optimiza para procesado posterior |
| Aplicaciones de visión humana | El humano | Limitadas a longitudes de onda visibles. La salida debe ser interpretable a simple vista |
Los tres bloques del análisis de imágenes ⚠️ EXAMEN
- Segmentación de imágenes: dividir la imagen en regiones o detectar objetos. Suele ser el primer paso.
- Extracción de características (feature extraction): obtener información de mayor nivel (color, forma, frecuencia espacial vía transformaciones).
- Clasificación de patrones: asignar etiquetas a los objetos detectados. Cierra el pipeline.
Volumen de datos para entrenar modelos visuales (Gemini)
- Imágenes: >1.000 millones de pares imagen–texto.
- Audio: >1 millón de horas de habla.
- Vídeo: fotogramas de ~10 millones de horas de vídeo.
Apunte de Mark referenciando MIT: están apareciendo modelos zero-shot con poca data y rendimiento similar a los grandes, lo que abre la puerta a entrenar barato en problemas concretos.
Desarrollo del Temario
1. Conversación abierta: ¿cómo procesáis documentos con IA hoy?
Carlos abre la sesión explicando Document AI de Google: solución cloud que permite (a) entrenar modelos propios desde cero, (b) usar modelos pre-entrenados (genéricos), (c) hacer un snapshot de un modelo pre-entrenado y refinarlo. Para invoices y albaranes recomienda el Invoice Processor.
El equipo de Carlos lo está comparando con Gemini 1.5, lo que motiva el resto de la discusión.
2. Por qué el cambio del modelo clásico al modelo con LLM
El profesor dibuja en pizarra el modelo clásico:
[Entrada] → [Modelo (entrenado/pre-entrenado/snapshot)] → [Salida]
Problema fundamental: la entrada es heterogénea. Aunque pidas un PDF, el usuario te enviará un JPG, una foto borrosa o un documento que ni siquiera es lo que esperas. Hay que mantener el modelo pre-entrenado + adaptación constante para cubrir esa diversidad.
La industria evoluciona a:
[Entrada heterogénea] → [LLM general + prompt + checker] → [Salida estructurada]
El LLM "se come" la complejidad de la entrada. La carga del problema se traslada al diseño del prompt.
3. El prompt como código
Un prompt bien diseñado tiene tres bloques explícitos. Ejemplo aplicado a "extraer importes de facturas":
- Instrucciones (qué): "Procesa el PDF de entrada y devuelve un JSON con la suma de los importes numéricos."
- Know-how (cómo): "Toma solo los valores numéricos que terminan en
€, sin decimales, en filas \(\geq 17\)." - Checker: "Valida que el JSON tiene siete claves, todas con dígitos, sin nulls, dentro del rango esperado."
Mark plantea el problema clásico: cuando cambias un system prompt de un agente, rompes funcionalidades que iban bien. Solución: tests automatizados estilo JUnit pero adaptados a salidas no deterministas. Herramienta mencionada: Mysa (startup española) que implementa el patrón checker sobre la salida.
4. Cambiar de modelo cambia el prompt ⚠️ EXAMEN-conceptual
Pregunta lanzada en clase: si tienes un prompt afinado para Claude Opus, ¿sirve igual en Gemini o GPT?
Respuesta consensuada: No. Cada modelo tiene:
- Entrenamiento distinto.
- Guardrails propios (Claude más entrenado para código; Gemini más generalista).
- Estilo de razonamiento distinto.
Analogía del profesor: "Es como explicar la misma materia a personas distintas; cambia la forma en que lo explicas."
5. Ecosistema de herramientas mencionadas
| Herramienta | Categoría | Uso típico |
|---|---|---|
| Document AI | Procesado de documentos cloud (Google) | Facturas, formularios |
| Gemini 1.5 | LLM (Google) | Multimodal (texto + imagen + vídeo) |
| Claude Opus / Sonnet | LLM (Anthropic) | Código, razonamiento |
| GPT (OpenAI) | LLM | General |
| Noxus | Plataforma de agentes y workflows (de pago, self-host con Kubernetes) | Construir flujos complejos con LLMs |
| n8n | Workflows open-source self-host (Docker) | Automatización low-code |
| Dify AI | Plataforma agentes con control de versiones (dev/prod) | Workflows con CI/CD |
| Langflow | Visual builder | Prototipado rápido |
| Mysa | Checker / evaluación de prompts | Validación de salidas |
6. Guardrails (guardarraíles)
Concepto introducido por Pablo. Son controles que se aplican alrededor del modelo para limitar comportamientos no deseados:
- De entrada: filtrar información sensible o clasificada antes de enviarla al modelo.
- De salida: rechazar respuestas cuyos valores superen umbrales prefijados o no encajen con un esquema esperado.
- De seguridad: evitar prompt injection y jailbreaks que intentan saltarse las restricciones del modelo (ejemplo mencionado: gemas de Gemini con jailbreaks que rompen filtros).
⚠️ Aunque la clase no lo profundiza, los guardrails son el equivalente AOP (paradigma de programación orientada a agentes) de los
try/catchy los validadores de entrada en programación clásica.
7. Repaso estructural del temario hasta la fecha
La profesora encadena el bloque 1 con el inicio del bloque 3:
| Bloque | Tema | Contenido principal |
|---|---|---|
| Bloque 1 | T1 | Concepto de agente, AOP, arquitecturas (simbólica, reactiva, BDI, híbrida), comunicación, FIPA |
| T2 | Estándar FIPA: AMS, DF, MTS, niveles de pila, ACL | |
| T3 | JADE: creación de agentes, behaviours, comunicación | |
| T4-6 | Aplicación práctica: ejemplo venta de libro con JADE para ilustrar comportamiento y comunicación | |
| Bloque 3 | T7 | Visión artificial — esta clase |
Andy pregunta si los temas 4-6 giran en torno al ejemplo de venta de libro. La profesora confirma: "Las ideas con las que os debéis quedar son las de comportamiento y comunicación a través de ese ejemplo."
8. Tema 7 — Procesamiento digital de imágenes
8.1 Por qué importa
"Una imagen vale más que mil palabras." En realidad, la representación digital de una imagen requiere el equivalente de muchos miles de palabras de datos. Sin esa cantidad, el medio sería prohibitivamente ineficiente.
La visión es nuestro sentido primario. El sistema visual humano es el sistema neurológico más sofisticado del cuerpo. La mayoría de avances científicos descansan sobre la vista (del descubrimiento del fuego al teléfono y la televisión).
8.2 Definición operativa
Visión por computador = adquisición + procesamiento de la información visual por parte del ordenador.
8.3 Aplicaciones típicas
- Industria de fabricación (control de calidad, robótica)
- Hospitales (imágenes médicas)
- Exploración espacial (Marte)
- Entretenimiento (efectos, generación)
- Internet y navegadores (consumo masivo)
- Procesamiento de documentos (la primera mitad de la clase)
8.4 Dos áreas primarias
Según el receptor último de la información:
flowchart LR
A[Imagen de entrada] --> B[Procesamiento]
B --> C{Receptor de la salida}
C -->|Otro proceso/máquina| D[Aplicaciones de visión por computador]
C -->|Humano| E[Aplicaciones de visión humana]
E --> F[Limitadas al espectro visible]
8.5 Componentes principales del análisis de imágenes
flowchart LR
A[Imagen en bruto] --> B[Segmentación]
B --> C[Extracción de características]
C --> D[Clasificación de patrones]
D --> E[Información de alto nivel/etiquetas]
- Segmentación: primer paso. Aísla regiones u objetos del fondo.
- Extracción de características: información de mayor nivel: color, forma, transformaciones (frecuencia espacial).
- Clasificación de patrones: identifica los objetos presentes en la imagen.
⚠️ EXAMEN: el orden de estos tres pasos y su función concreta.
8.6 Por qué los modelos visuales necesitan tantos datos
La cantidad de datos requeridos para entrenar modelos visuales es fundamental para el desarrollo de subáreas como:
- Segmentación de imágenes
- Compresión de imágenes
Cifras de Gemini citadas en clase:
- \(> 10^9\) pares imagen-texto.
- \(> 10^6\) horas de habla.
- Fotogramas equivalentes a \(10^7\) horas de vídeo.
9. Próxima clase
Demo en directo de procesamiento de imágenes con IA, con ejemplos reales y posiblemente una primera prueba de la herramienta de testeo de prompts que Mark llevará probada (RAGAS / similar).
Ejemplos / Ejercicios resueltos
Ejemplo 1 — Diseñar un prompt completo (qué + cómo + checker)
Tarea: extraer el total de una factura.
INSTRUCCIONES:
Recibes el contenido textual de un PDF de factura.
Devuelve un JSON con clave "total_eur" que contenga la suma
de todos los importes en euros que aparezcan en la sección "Detalle".
KNOW-HOW:
- Considera solo valores numéricos que terminan con el símbolo "€".
- Ignora valores con decimales en su parte entera por encima de 9999.
- Si la factura es en otra moneda, devuelve "total_eur": null.
- La suma se devuelve como entero sin decimales.
CHECKER (post-ejecución, otro LLM o código):
- "total_eur" existe.
- Es null o un entero.
- Si es entero, está dentro del rango [0, 1_000_000].
Ejemplo 2 — Identificar el bloque del análisis
| Tarea | Bloque |
|---|---|
| "Detectar y aislar matrículas en una foto de tráfico" | Segmentación |
| "Calcular la transformada de Fourier para encontrar bordes" | Extracción de características |
| "Decir si la matrícula es española, francesa o alemana" | Clasificación de patrones |
Ejemplo 3 — Decidir entre Document AI y LLM con prompt
| Situación | Recomendado | Razón |
|---|---|---|
| Procesar 100k facturas mensuales con campos fijos en un sector estable | Document AI | Salida estandarizada, fine-tuning rentable |
| Extraer información heterogénea (DNI + recibos + correos) en un piloto | LLM con prompt | Flexibilidad mientras se define el problema |
| Producción crítica con SLA estricto sobre el formato de salida | Document AI o LLM con checker fuerte | Garantía de esquema |
Preguntas de Autoevaluación
- ¿Cuál es la diferencia conceptual entre el modelo clásico de procesamiento de documentos y el modelo basado en LLM con prompt? Pon un ejemplo donde cada uno sea preferible.
- Define los tres bloques que debe contener un buen prompt aplicado a un agente. Da un ejemplo de cada bloque.
- ¿Qué es un checker en el contexto de un agente LLM? ¿Por qué es necesario y dónde se ejecuta?
- Explica qué son los guardrails de entrada y los de salida. Pon un ejemplo de cada uno.
- Si has diseñado un prompt afinado para Claude, ¿puedes reutilizarlo en Gemini sin cambios? Justifica.
- ¿Qué cantidad mínima de documentos recomienda Google para entrenar un modelo personalizado en Document AI? ¿Por qué este número?
- Define visión por computador y análisis de imágenes. ¿En qué se diferencian?
- ¿Cuáles son las dos áreas primarias del procesamiento digital de imágenes según el receptor de la salida? Da un ejemplo de aplicación de cada una.
- Enumera los tres bloques principales del análisis de imágenes en su orden lógico y explica brevemente cada uno.
- ¿Por qué el procesamiento digital de imágenes requiere tantos datos para entrenar modelos? Cita un orden de magnitud para imágenes y vídeo (Gemini).
- ¿Qué papel juega un router dentro de un workflow de agentes? ¿Qué problema introduce desde el punto de vista de testing?
- ¿En qué se diferencia un snapshot de Document AI respecto a un modelo entrenado desde cero?
- ¿Qué es un prompt injection / jailbreak? ¿Qué tipo de control mitiga este riesgo?
- ¿Qué herramienta puede usarse para automatizar la validación de salidas no deterministas de un workflow LLM? Cita al menos una.
- ¿Cuál es la principal limitación de las aplicaciones de visión humana frente a las de visión por computador?