Phase 12 - Lesson 17

Modelos de Vídeo-Linguagem: Tokens Temporais e Grounding

O vídeo não é uma pilha de fotos. Um clipe de 5 segundos possui ordenação causal, verbos de ação e tempo de eventos que um modelo de imagem não pode representar. O Video-LLaMA (Zhang et al., junho de 2023) lançou o primeiro LLM de vídeo aberto com grounding de áudio-visual. VideoChat e Video-LLaVA escalaram o padrão. Em 2025, o TMRoPE do Qwen2.5-VL eliminou a diferença em relação aos modelos proprietários de ponta. Cada sistema resolveu os tokens temporais de forma diferente — Q-former por clipe, concat-pool por quadro, TMRoPE por token. Esta lição lê os padrões, constrói um amostrador de quadros uniforme vs. dinâmico e avalia em tarefas de grounding temporal.

Tipo: Construir Linguagens: Python (biblioteca padrão, amostrador de quadros + avaliador de grounding temporal) Pré-requisitos: Fase 12 · 08 (LLaVA-OneVision) Tempo: ~180 minutos

Objetivos de Aprendizado

  • Explicar por que a codificação posicional temporal altera o desempenho do VLM de vídeo independentemente do codificador de visão.
  • Comparar a amostragem de quadros uniforme, baseada em FPS dinâmico e orientada a eventos em relação a tokens por segundo vs. acurácia de grounding.
  • Descrever os designs de Q-former-por-clipe (Video-LLaMA) vs. pooling-por-quadro (Video-LLaVA) vs. M-RoPE-por-token (Qwen2.5-VL).
  • Nomear os quatro benchmarks de vídeo: VideoMME, TempCompass, EgoSchema, Video-MMMU.

O Problema

Um vídeo de 1 minuto a 30 FPS tem 1800 quadros. Com 196 tokens visuais por quadro (ViT-B a 224), isso resulta em 352k tokens — maior do que qualquer contexto de LLM da era de 2024.

Existem três estratégias de redução:

  1. Subamostrar quadros (1-8 FPS dependendo do conteúdo).
  2. Agrupar (pool) agressivamente os tokens de patch de cada quadro (pool bilinear 3x3 ou 4x4).
  3. Comprimir por meio de um Q-former que recebe um clipe de 16 quadros e gera 64 tokens.

Cada compensação é diferente. A subamostragem perde detalhes temporais. O pooling perde detalhes espaciais. O Q-former perde um pouco de ambos, mas economiza tokens.

A codificação de posição temporal é o outro eixo: como o modelo sabe que o quadro 5 veio antes do quadro 6? As opções incluem RoPE temporal 1D simples (Video-LLaMA), embeddings temporais aprendidos (Video-LLaVA) e TMRoPE (Qwen2.5-VL, 3D completo).

O Conceito

Video-LLaMA: Q-former per clip + audio branch

O Video-LLaMA (2023) foi o primeiro video-LLM aberto. Arquitetura:

  • Clipes de 16 quadros a 2 FPS (portanto, 8 segundos).
  • Recursos de ViT por quadro -> Video Q-former que realiza atenção cruzada em todos os 16 quadros -> 32 consultas aprendidas -> LLM.
  • Ramo de áudio paralelo: forma de onda -> codificador de áudio ImageBind -> Audio Q-former -> 32 consultas -> LLM.

Força: raciocínio conjunto áudio-visual. Fraqueza: comprimento de clipe fixo, sem grounding de tempo arbitrário.

VideoChat and Video-LLaVA

O VideoChat manteve a ideia do Video-LLaMA, mas removeu o áudio e simplificou. O Video-LLaVA (Lin et al., 2023) treinou um único codificador visual em imagens e quadros de vídeo ("alinhamento antes da projeção"), proporcionando uma representação unificada. Ambos consistem em um codificador CLIP congelado + MLP + LLM.

Nenhum deles lida com vídeos longos. Ambos são sistemas de 8 a 16 quadros.

Qwen2.5-VL and TMRoPE

O Qwen2.5-VL introduziu o TMRoPE — Temporal-Modality Rotary Position Embedding. Cada token de patch carrega uma posição (t, h, w), onde t é a marca de tempo real (não o índice do quadro).

Principais diferenças em relação ao embedding temporal simples:

  • Tempo absoluto, não índice. O modelo vê "aos 4.2 segundos" e não "no quadro 15."
  • Rotação por token, não por clipe. Cada token visual rotaciona de forma independente por sua marca de tempo.
  • Compatível com FPS dinâmico. Se você amostrar a 2 FPS aqui e a 4 FPS ali, o TMRoPE lida com o espaçamento irregular nativamente.

O TMRoPE permite consultas como "em qual segundo o gato pula?". O modelo pode responder "aos 4.2 segundos". O Video-LLaMA só conseguia responder "no início do clipe".

Frame sampling strategies

Uniforme: amostra N quadros uniformemente ao longo da duração. Simples, perde picos de movimento.

FPS dinâmico: amostra adaptativamente com base na intensidade do movimento. O fluxo óptico ou a diferenciação de quadros seleciona segmentos de alto movimento para uma amostragem mais densa. O Qwen2.5-VL treina com isso.

Orientada a eventos: executa um detector leve e amostra mais onde a ação acontece. Usado pelo VideoAgent.

Quadro-chave + contexto: amostra nos limites de cena + alguns quadros adjacentes. Usado para conteúdo cinematográfico.

Pooling per frame

A 1 FPS e 576 tokens por quadro, um clipe de 5 minutos representa 172.800 tokens. É viável com o contexto de 128k do Qwen2.5-VL-72B, mas é caro.

O pooling bilinear 3x3 reduz para 64 tokens por quadro -> 19.200 tokens para 5 minutos. O ponto ideal para a maioria das tarefas.

Agrupe de forma mais agressiva (6x6 -> 16 tokens por quadro) para fluxos de trabalho de agentes onde o detalhe espacial importa menos.

The four video benchmarks

  • VideoMME: compreensão abrangente de vídeo, curto + médio + longo.
  • TempCompass: raciocínio temporal de granularidade fina, perguntas do tipo "antes" / "depois".
  • EgoSchema: vídeo de primeira pessoa de longo horizonte.
  • Video-MMMU: perguntas de vídeo multidisciplinares e multimodais.

Uma avaliação completa de video-VLM atinge os quatro. Eles testam diferentes eixos — o TempCompass foca em ordenação, o EgoSchema em raciocínio de mais de 3 minutos e o VideoMME abrange várias durações.

Grounding output formats

Formatos de saída para grounding temporal:

  • Texto livre: "O gato pula por volta da marca de 4 segundos." Fácil de analisar, mas impreciso.
  • JSON estruturado: {"event": "jump", "start": 4.1, "end": 4.3}. O Qwen2.5-VL treina isso.
  • Baseado em tokens: tokens especiais <time>4.1</time> intercalados com a resposta. Formato interno do Qwen2.5-VL.

O formato baseado em tokens é o mais preciso para uso posterior. O formato de saída JSON do Qwen2.5-VL é analisado diretamente.

2026 best practice

Para VLMs de vídeo em 2026:

  • Codificador: SigLIP 2 com M-RoPE ou TMRoPE (Qwen2.5-VL).
  • Amostragem de quadros: FPS dinâmico (1-4 dependendo do movimento) com limite máximo de quadros.
  • Pooling por quadro: bilinear 3x3.
  • Saída: JSON estruturado com os campos de tempo e evento.
  • Benchmarks: VideoMME + TempCompass para geral; EgoSchema para longo horizonte.

Uso

O arquivo code/main.py inclui:

  • Amostradores de quadros uniforme e por FPS dinâmico.
  • Um avaliador de grounding temporal simples: dada uma marca de tempo T real de um evento e uma saída do modelo, calcula a acurácia com uma tolerância.
  • Uma comparação entre Video-LLaMA (16 quadros, Q-former), Video-LLaVA (8 quadros, MLP) e Qwen2.5-VL (FPS dinâmico + TMRoPE).

Envie

Esta lição produz outputs/skill-video-vlm-frame-planner.md. Dada uma tarefa de vídeo (monitoramento, reconhecimento de ação, grounding temporal, sumarização), ela seleciona o amostrador de quadros, o fator de pooling, o formato de saída e o nível de acurácia esperado.

Exercícios

  1. Para uma demonstração de culinária de 3 minutos, escolha entre FPS uniforme vs. dinâmico. Justifique com uma contagem de tokens.

  2. O que especificamente o TMRoPE adiciona que uma tabela simples de embedding temporal não consegue fazer?

  3. Escreva um esquema JSON para grounding temporal que um VLM possa aprender a emitir. Inclua casos de erro.

  4. Leia a Seção 3 do Video-LLaVA sobre "Alignment Before Projection." Por que isso é melhor do que treinar codificadores de imagem e vídeo separados?

  5. Com base no painel de líderes do VideoMME, qual é a diferença entre o melhor modelo aberto e o melhor modelo proprietário em 2026? Quanto dessa diferença é atribuível à codificação temporal vs. escala do LLM base?

Termos-Chave

Termo O que as pessoas dizem O que realmente significa
Temporal grounding "Respostas localizadas no tempo" O VLM gera um intervalo de timestamps específico para quando um evento ocorre
TMRoPE "RoPE Multimodal-Temporal" Posição rotativa 3D com timestamps absolutos, utilizada pelo Qwen2.5-VL
Dynamic FPS "Amostragem ciente de movimento" Amostra mais quadros em segmentos de alto movimento e menos em segmentos estáticos
Frame pooling "Compressão espacial por quadro" Reduz patches por quadro com interpolação bilinear antes do LLM
Video Q-former "Compressor de clipe" Gargalo de atenção cruzada que mapeia N quadros para K consultas aprendidas
VideoMME "Benchmark de vídeo" Benchmark abrangente de vídeo curto/médio/longo, com mais de 2500 amostras

Leituras Adicionais

0 lifetime access. Curriculum based on AI Engineering from Scratch by Rohit Ghumare (MIT, used under attribution).