Phase 12 - Lesson 17
Modelos de Video-Lenguaje: Tokens Temporales y Grounding
El video no es una pila de fotos. Un clip de 5 segundos tiene un orden causal, verbos de acción y sincronización de eventos que un modelo de imagen no puede representar. Video-LLaMA (Zhang et al., junio de 2023) lanzó el primer video-LLM abierto con grounding de audio y video. VideoChat y Video-LLaVA escalaron el patrón. Para 2025, TMRoPE de Qwen2.5-VL cerró la brecha con los modelos propietarios de frontera. Cada sistema resolvió los tokens temporales de manera diferente: Q-former por clip, concat-pool por fotograma y TMRoPE por token. Esta lección analiza los patrones, construye un muestreador de fotogramas uniforme vs. dinámico y evalúa en tareas de grounding temporal.
Tipo: Construcción Idiomas: Python (librería estándar, muestreador de fotogramas + evaluador de grounding temporal) Prerrequisitos: Fase 12 · 08 (LLaVA-OneVision) Tiempo: ~180 minutos
Objetivos de Aprendizaje
- Explicar por qué la codificación posicional temporal cambia el rendimiento del VLM de video independientemente del codificador de visión.
- Comparar el muestreo de fotogramas uniforme, por FPS dinámico y orientado a eventos en relación con tokens por segundo vs. precisión de grounding.
- Describir los diseños de Q-former-por-clip (Video-LLaMA) vs. pooling-por-fotograma (Video-LLaVA) vs. M-RoPE-por-token (Qwen2.5-VL).
- Nombrar los cuatro benchmarks de video: VideoMME, TempCompass, EgoSchema y Video-MMMU.
El Problema
Un video de 1 minuto a 30 FPS equivale a 1800 fotogramas. A 196 tokens visuales por fotograma (ViT-B a 224), eso representa 352k tokens, lo cual es más grande que cualquier contexto de LLM de la era de 2024.
Existem tres estrategias de reducción:
- Submuestrear fotogramas (1-8 FPS según el contenido).
- Agrupar (pool) agresivamente los tokens de parche de cada fotograma (pooling bilinear 3x3 o 4x4).
- Comprimir a través de un Q-former que recibe un clip de 16 fotogramas y genera 64 tokens.
Cada compensación es diferente. El submuestreo pierde detalles temporales. El pooling pierde detalles espaciales. Q-former pierde un poco de ambos pero ahorra tokens.
La codificación de posición temporal es el otro eje: ¿cómo sabe el modelo que el fotograma 5 ocurrió antes que el fotograma 6? Las opciones incluyen RoPE temporal 1D simple (Video-LLaMA), embeddings temporales aprendidos (Video-LLaVA) y TMRoPE (Qwen2.5-VL, 3D completo).
El Concepto
Video-LLaMA: Q-former per clip + audio branch
Video-LLaMA (2023) fue el primer video-LLM abierto. Arquitectura:
- Clips de 16 fotogramas a 2 FPS (es decir, 8 segundos).
- Características de ViT por fotograma -> Video Q-former que realiza atención cruzada sobre los 16 fotogramas -> 32 consultas aprendidas -> LLM.
- Rama de audio paralela: forma de onda -> codificador de audio ImageBind -> Audio Q-former -> 32 consultas -> LLM.
Fortaleza: razonamiento conjunto de audio y video. Debilidad: longitud de clip fija, sin grounding de tiempo arbitrario.
VideoChat and Video-LLaVA
VideoChat mantuvo la idea de Video-LLaMA pero eliminó el audio y simplificó. Video-LLaVA (Lin et al., 2023) entrenó un único codificador visual tanto en imágenes como en fotogramas de video ("alineación antes de la proyección"), proporcionando una representación unificada. Ambos son un codificador CLIP congelado + MLP + LLM.
Ninguno maneja videos largos. Ambos son sistemas de 8 a 16 fotogramas.
Qwen2.5-VL and TMRoPE
Qwen2.5-VL introdujo TMRoPE (Temporal-Modality Rotary Position Embedding). Cada token de parche lleva una posición (t, h, w) donde t es la marca de tiempo real (not el índice del fotograma).
Diferencias clave con el embedding temporal simple:
- Tiempo absoluto, no índice. El modelo ve "a los 4.2 segundos", no "en el fotograma 15".
- Rotación por token, no por clip. Cada token visual rota de forma independiente según su marca de tiempo.
- Compatible con FPS dinámico. Si se muestrea a 2 FPS aquí y a 4 FPS allá, TMRoPE maneja la separación irregular de forma nativa.
TMRoPE permite consultas como "¿en qué segundo salta el gato?". El modelo puede devolver "a los 4.2 segundos". Video-LLaMA solo podía responder "al principio del clip".
Frame sampling strategies
Uniforme: muestrea N fotogramas de forma equitativa a lo largo de la duración. Simple, pero pierde los picos de movimiento.
FPS dinámico: muestrea de forma adaptativa basándose en la intensidad del movimiento. El flujo óptico o la diferenciación de fotogramas selecciona segmentos con mucho movimiento para un muestreo más denso. Qwen2.5-VL se entrena con esto.
Orientado a eventos: ejecuta un detector ligero y muestrea más donde ocurre la acción. Utilizado por VideoAgent.
Fotograma clave (keyframe) + contexto: muestrea en los límites de escena + algunos fotogramas adyacentes. Utilizado para contenido cinematográfico.
Pooling per frame
A 1 FPS y 576 tokens por fotograma, un clip de 5 minutos equivale a 172,800 tokens. Es viable con el contexto de 128k de Qwen2.5-VL-72B pero resulta costoso.
El pooling bilinear 3x3 reduce a 64 tokens por fotograma -> 19,200 tokens para 5 minutos. El punto de equilibrio ideal para la mayoría de las tareas.
Agrupe de manera más agresiva (6x6 -> 16 tokens por fotograma) para flujos de trabajo de agentes donde los detalles espaciales importan menos.
The four video benchmarks
- VideoMME: comprensión integral de video; corto, mediano y largo.
- TempCompass: razonamiento temporal detallado, preguntas de tipo "antes" / "después".
- EgoSchema: video en primera persona de largo horizonte.
- Video-MMMU: preguntas de video multidisciplinarias y multimodales.
Una evaluación completa de video-VLM abarca los cuatro. Ponen a prueba diferentes ejes: TempCompass se centra en el orden, EgoSchema en el razonamiento de más de 3 minutos y VideoMME cubre varias duraciones.
Grounding output formats
Formatos de salida para grounding temporal:
- Texto libre: "El gato salta alrededor de la marca de los 4 segundos". Fácil de analizar pero impreciso.
- JSON estructurado:
{"event": "jump", "start": 4.1, "end": 4.3}. Qwen2.5-VL se entrena con esto. - Basado en tokens: tokens especiales
<time>4.1</time>intercalados con la respuesta. Formato interno de Qwen2.5-VL.
El basado en tokens es el más preciso para un uso posterior. El formato de salida JSON de Qwen2.5-VL se analiza directamente.
2026 best practice
Para VLMs de video en 2026:
- Codificador: SigLIP 2 con M-RoPE o TMRoPE (Qwen2.5-VL).
- Muestreo de fotogramas: FPS dinámico (1-4 según el movimiento) con límite de fotogramas máximo.
- Pooling por fotograma: bilinear 3x3.
- Salida: JSON estructurado con campos de tiempo y evento.
- Benchmarks: VideoMME + TempCompass para general; EgoSchema para largo horizonte.
Uso
El archivo code/main.py incluye:
- Muestreadores de fotogramas uniforme y por FPS dinámico.
- Un evaluador de grounding temporal simple: dada una marca de tiempo real T del evento y la salida del modelo, calcula la precisión con cierta tolerancia.
- Una comparación entre Video-LLaMA (16 fotogramas, Q-former), Video-LLaVA (8 fotogramas, MLP) y Qwen2.5-VL (FPS dinámico + TMRoPE).
Envío
Esta lección produce outputs/skill-video-vlm-frame-planner.md. Dada una tarea de video (monitoreo, reconocimiento de acción, grounding temporal, resumen), selecciona el muestreador de fotogramas, el factor de pooling, el formato de salida y el nivel de precisión esperado.
Ejercicios
Para una demostración de cocina de 3 minutos, elija entre FPS uniforme o dinámico. Justifique su elección con un recuento de tokens.
¿Qué añade específicamente TMRoPE que una tabla simple de embedding temporal no pueda hacer?
Escriba un esquema JSON para grounding temporal que un VLM pueda aprender a emitir. Incluya casos de error.
Lea la Sección 3 de Video-LLaVA sobre "Alignment Before Projection". ¿Por qué es mejor esto que entrenar codificadores de imagen y video por separado?
Teniendo en cuenta la tabla de clasificación de VideoMME, ¿cuál es la brecha entre el mejor modelo abierto y el mejor modelo propietario a partir de 2026? ¿Qué parte de esa brecha es atribuible a la codificación temporal vs. la escala del LLM base?
Términos Clave
| Término | Lo que dice la gente | Lo que realmente significa |
|---|---|---|
| Temporal grounding | "Respuestas localizadas en el tiempo" | El VLM emite un rango de marca de tiempo específico sobre cuándo ocurre un evento |
| TMRoPE | "RoPE Multimodal Temporal" | Posición rotatoria 3D con marcas de tiempo absolutas, utilizada por Qwen2.5-VL |
| Dynamic FPS | "Muestreo consciente del movimiento" | Muestrea más fotogramas en los segmentos con mucho movimiento y menos en los estáticos |
| Frame pooling | "Compresión espacial por fotograma" | Reduce los parches por fotograma con interpolación bilinear antes del LLM |
| Video Q-former | "Compresor de clip" | Garganta de botella de atención cruzada que mapea N fotogramas a K consultas aprendidas |
| VideoMME | "Benchmark de video" | Benchmark integral de video corto/mediano/largo con más de 2500 muestras |