English · Español
Extensión X2 — Modelos Multimodal¶
Requiere: 15 — Attention desde cero · 17 — Bloque transformer diminuto y mini-GPT · 28 — Fine-tuning, LoRA, QLoRA Enseña:
vit·clip·whisper·contrastive-learning·multimodal-fusionSalta a cualquier capítulo desde el índice de referencia de fases.
Mapa del capítulo¶
Extension track. Autorizada por §A15 (addendum de extensión, paralela). Este módulo se sitúa fuera del currículo principal de 40 fases y cierra el hueco de "visión + audio" señalado en
HIRING_PATH.md§"Honest gaps" (el disclaimer multimodal en la línea 263). No es una expansión de alcance del universo microscópico de §A13: el modelo entrenado en los labs aquí sigue operando sobre el set de gramática de 20 verbos × 5 tiempos × 3 personas. Añadimos modalidades (imagen, audio), no vocabulario.🇪🇸 X2 cierra el hueco de visión y audio del
HIRING_PATH.mdsin romper el alcance microscópico de §A13. La gramática inglesa sigue siendo el universo; lo que cambia es que ahora un ícono o un clip de audio pueden ser entradas válidas. La pregunta central: cómo dos modalidades distintas (imagen + texto, o audio + texto) se alinean en un mismo espacio de representación.
Lo que enseña esta extensión¶
Al final de X2 puedes:
- Derivar patchify → forward pass de ViT (ViT), incluyendo el einsum que convierte una imagen
(224, 224, 3)en 196 tokens de dim 768. - Implementar un ViT (vision transformer (vision transformer)) de 4 bloques sobre el bloque transformer de la Fase 17, entrenarlo en una tarea sintética de clasificación de íconos, y alcanzar > 80% top-1 en ≤ 5 min en CPU.
- Implementar un trainer contrastivo estilo CLIP (CLIP) (InfoNCE simétrico) sobre pares (ícono, texto-de-forma-verbal) y benchmarkear retrieval top-k.
- Explicar el frontend log-mel de Whisper (Whisper) numéricamente (16 kHz → 25 ms / 10 ms → 80-mel × 3000 frames → conv-downsampled a 1500), cargar
whisper-tiny.en, ejecutar inferencia, e inspeccionar cross-attention y timestamp logits. - Comparar late fusion (fusion) (CLIP), early fusion (cross-attention con gates de Flamingo) y unified-token fusion (Chameleon, Gemini) — y articular cuándo gana cada una.
- Posicionar el truco del proyector de LLaVA (CLIP 1024-dim → LLM 4096-dim vía un MLP pequeño) en el Pareto coste/calidad.
- Leer una comparación MM-Bench vs MMMU y decir qué mide realmente cada score.
Orden de lectura¶
Teoría (leer primero, en orden)¶
theory/00-motivation.md— multimodalidad (multimodal) como paradigma; modality gap; contrastivo vs autoregresivo.theory/01-vision-transformers.md— ViT (Dosovitskiy 2020), CLIP (Radford 2021), DINOv2 / SigLIP.theory/02-audio-models.md— intuición log-mel; Whisper; HuBERT / wav2vec 2.0; caveats de streaming.theory/03-fusion-strategies.md— late / early / unified-token fusion; escalado de datos de entrenamiento.theory/04-llava-and-vision-language.md— receta de LLaVA y panorama de eval (MM-Bench, MME, MMMU).
Lab (hacer después de cada cluster de teoría)¶
lab/00-tiny-vit-on-grammar-icons.md— después de la teoría 01.lab/01-clip-style-grammar-image-pairing.md— después de la teoría 01.lab/02-whisper-inference-walkthrough.md— después de la teoría 02.
Enlaces cruzados¶
- Fase 15 — Atención. La cross-attention es el dispositivo estructural que hace que CLIP, Flamingo y Whisper funcionen. Si el ejemplo de gramática de §A13 te mostró por qué existe la atención, X2 te muestra qué hace cuando las keys vienen de una modalidad diferente que las queries. (
docs/phase-15-attention/) - Fase 17 — mini-GPT. El ViT del lab 00 es literalmente el bloque transformer de la Fase 17, cambiado de causal-LM a bidireccional, con un embedding de patchify en vez de embedding de token. La reutilización es la lección: un bloque transformer es agnóstico a la modalidad. (
docs/phase-17-mini-gpt/) - Fase 26 — Cuantización. ViT-base y Whisper-tiny son ambos candidatos prime de cuantización (la mayor parte del cómputo es matmul, la mayor parte del ancho de banda son pesos). La inferencia-en-CPU se apoya en los caminos int8 / int4 de la Fase 26.
Qué NO cubre intencionadamente esta extensión¶
- Pretraining de un ViT o CLIP desde cero sobre ImageNet / LAION reales. Entrenamos sobre el dataset sintético de íconos de gramática — 1000 imágenes, generadas por un script de Pillow, CPU-entrenable en 5 minutos. La mecánica es el objetivo; la escala de datos no.
- Entrenar Whisper o HuBERT. El lab 02 es solo inferencia sobre un checkpoint pre-entrenado. El pretraining de audio a la escala de datos que usó Whisper (680 k horas) está fuera de scope para cualquier setup no-frontera.
- Modelos de vídeo (V-JEPA, VideoMAE, transformers-de-difusión estilo Sora). Una modalidad cada vez; el vídeo es una extensión follow-up (X3 si llega a existir).
- Robótica / multimodal embebido (RT-2, OpenVLA, π0). Fuera de scope; señalado como una rama separada del hiring-path en
HIRING_PATH.md. - Modelos de difusión para generación de imagen. Paradigma distinto (score matching, no next-token / contrastivo). Pertenece a una hipotética extensión X1 de modelos generativos.
- RLHF / RLAIF multimodal (p. ej. instruction tuning de Llama-3-Vision). La Fase 31 cubre RLHF de una sola modalidad; extensión multimodal diferida.
Política build-before-abstract para X2¶
La regla del currículo principal es: nada de PyTorch antes de la Fase 25, nada de transformers antes de la Fase 24 (CLAUDE.md §0.4).
Para X2:
- Lab 00 (ViT) — NumPy + bloque transformer NumPy de la Fase 17. Sin framework. Misma regla que el currículo principal.
- Lab 01 (estilo CLIP) — NumPy + bloque de la Fase 17. Sin framework. Misma regla.
- Lab 02 (Whisper) — usa
transformers.WhisperForConditionalGeneration. Esta es la excepción. Justificación: (a) el lab 02 es solo-inferencia — sin entrenamiento que desmitificar; (b) reescribir log-mel + conv stem + encoder-decoder de 4 capas desde cero es un proyecto de ~3 semanas que añade cero insight conceptual nuevo más allá de lo quetheory/02-audio-models.mdya deriva; © el extension track es explícitamente territorio post-Fase-24 en espíritu. La excepción es local al lab 02. Si te encuentras alcanzandotransformersen el lab 00 o 01, para — los labs están diseñados para hacerse en NumPy.
Definition of Done (DoD del extension track)¶
Los extension tracks no tienen un PHASE_NN_REPORT.md (están fuera del ritual de 40 fases). Producen:
- Directorios
experiments/X2-multimodal/lab-{00,01,02}/con manifests + outputs reproducibles. - Un
reflections.mdbreve enlearners/borja/extension-X2/cubriendo: qué estrategia de fusion elegiría para qué caso de uso; qué me sorprendió del patrón de cross-attention de Whisper; cómo extendería el tutor de gramática (Fase 32) para aceptar entrada de imagen. - Quiz
/quiz X2pasado con ≥ 80%.
Lecturas recomendadas¶
Opcional — enriquece pero no es necesario para aprobar la fase.
- 📄 An Image is Worth 16x16 Words (ViT) — Dosovitskiy et al. · 2020. el transformer aplicado a parches de imagen.
- 📄 Learning Transferable Visual Models from Natural Language (CLIP) — Radford et al. · 2021. alineamiento contrastivo imagen-texto.
- 📄 Visual Instruction Tuning (LLaVA) — Liu et al. · 2023. conectar un encoder de visión a un LLM.