Phase 12 - Lesson 18

Compreensão de Vídeo Longo em Contexto de Milhões de Tokens

Um vídeo 4K de 1 hora a 24 FPS, segmentado (patched) e incorporado (embedded), produz algo em torno de 60 milhões de tokens. Um episódio de podcast de 2 horas transcrito tem 30.000 tokens. Um filme de longa-metragem Blu-ray completo, mesmo compactado com pooling agressivo, chega a centenas de milhares de tokens. O Gemini 1.5 do Google (março de 2024) inaugurou essa era com um contexto de 10 milhões de tokens, realizando recuperação confiável do tipo "agulha no palheiro" (needle-in-a-haystack) em vídeos de uma hora de duração. O LWM (Liu et al., fevereiro de 2024) mostrou o caminho de dimensionamento da Ring Attention. O LongVILA e o Video-XL expandiram ainda mais a ingestão. O VideoAgent substituiu o contexto bruto por recuperação baseada em agentes (agentic retrieval). Cada abordagem representa uma compensação diferente entre computação, recall e complexidade de engenharia. Esta lição as analisa lado a lado.

Type: Build Languages: Python (stdlib, needle-in-haystack simulator + agentic-retrieval router) Prerequisites: Phase 12 · 17 (video temporal tokens) Time: ~180 minutos

Objetivos de Aprendizado

  • Calcular a contagem total de tokens visuais para vídeos longos em diferentes taxas de FPS e pooling.
  • Explicar os três caminhos de dimensionamento (scaling): contexto bruto (Gemini 1.5), Ring Attention (LWM) e compressão de tokens (LongVILA / Video-XL).
  • Comparar VLMs de vídeo baseados em contexto bruto versus VLMs de recuperação baseada em agentes (VideoAgent) em termos de acurácia e latência.
  • Projetar um teste de "agulha no palheiro" para um vídeo de 30 minutos e medir o recall em um minuto específico.

O Problema

Um único frame de patches com dimensões típicas do Qwen2.5-VL em resolução nativa de 384 equivale a ~729 tokens. Com um pooling de 3x3, são 81 tokens por frame. Um clipe de 30 minutos a 1 FPS = 1800 frames = 145.800 tokens. Viável para modelos VLMs abertos de 2025, no limite. A 2 FPS, são 291.600 tokens — apenas os maiores contextos conseguem processar.

Um filme de 2 horas a 1 FPS equivale a 583k tokens. Fora do alcance da maioria dos modelos abertos de 2026; exige o Gemini 2.5 Pro ou técnicas de pooling mais agressivas.

Surgiram três caminhos de dimensionamento.

O Conceito

Caminho 1: Contexto bruto (Gemini 1.5, Claude Opus)

Consiste em usar muito hardware para resolver o problema. Aumenta-se o contexto para milhões de tokens e processa-se tudo em uma única etapa de propagação direta (forward pass).

O Gemini 1.5 Pro foi lançado com 1M de tokens; o Gemini 1.5 Ultra chegou a 10M; e o Gemini 2.5 Pro em 2026 processa horas de vídeo de forma confiável. O artigo científico (arXiv:2403.05530) documenta um recall de teste de agulha no palheiro de 99,7% em contextos de até ~9,5M de tokens.

Engenharia: uma implementação customizada de atenção com hierarquia de memória (local + global + esparsa) associada a roteamento de especialistas MoE (Mixture of Experts) para garantir eficiência em contextos longos. Não foi publicada em detalhes. Não é de código aberto.

Caminho 2: Ring attention (LWM, LongVILA)

A Ring Attention distribui sequências longas entre múltiplos dispositivos conectados em "anel" (ring), onde cada dispositivo armazena uma fração (chunk) da sequência. A atenção ao longo de toda a sequência é calculada fazendo com que cada dispositivo envie seu chunk para o próximo do anel, computando atenções parciais e realizando a agregação dos resultados.

O LWM (Liu et al., 2024) treinou um modelo com contexto de 1M de tokens usando essa técnica. A computação necessária para o treinamento passa a escalar de forma linear e não quadrática em relação ao contexto — o impacto quadrático do cálculo de atenção é amortizado entre os diversos dispositivos do anel.

O LongVILA (arXiv:2408.10188) adaptou esse padrão para VLMs. Vídeos de 1400 frames a 192 tokens por frame = contexto de 268k, treinado com Ring Attention utilizando paralelismo de 8 vias.

Caminho 3: Compressão de tokens (Video-XL, LongVA)

Mais barato que o contexto bruto: realiza uma compressão agressiva antes que a sequência seja apresentada ao LLM.

O Video-XL (arXiv:2409.14485) utiliza um token de resumo visual: cada clipe contendo N frames gera um único token de "resumo" que aplica atenção sobre os N frames. Durante a inferência, o LLM recebe apenas um token de resumo por clipe, diminuindo drasticamente o tamanho do contexto.

O LongVA estende o contexto do LLM de 200k para 2M por meio de uma técnica de "transferência de contexto longo". Treina-se o modelo em textos de contexto longo e transfere-se esse aprendizado para vídeos de contexto longo através de uma representação compartilhada.

A compressão de tokens sacrifica a precisão de recall em timestamps específicos em troca de escalabilidade. O modelo consegue ter uma noção geral do que aconteceu, mas às vezes deixa passar frames exatos.

Caminho 4: Recuperação baseada em agentes (VideoAgent)

Consiste em não enviar o vídeo completo para o LLM. Em vez disso, o vídeo é tratado como um banco de dados e o LLM é usado para realizar consultas nele.

VideoAgent (arXiv:2403.10517):

  1. O LLM lê a pergunta.
  2. O LLM solicita a uma ferramenta de recuperação os clipes relevantes ("mostre-me trechos com um gato").
  3. A ferramenta retorna os timestamps correspondentes aos clipes identificados.
  4. O LLM analisa esses clipes usando um VLM.
  5. O LLM formula a resposta final ou faz novas consultas de acompanhamento.

Trata-se do padrão de "LLM como agente" aplicado a vídeos longos. A inferência se torna mais barata (apenas os clipes relevantes são codificados), mas a complexidade de engenharia aumenta (a qualidade da recuperação vira o gargalo).

Benchmarks de agulha no palheiro (Needle-in-a-haystack)

O teste padrão para contextos longos: insere-se um marcador visual ou textual único em um ponto aleatório do vídeo e depois faz-se uma pergunta que exige recuperá-lo.

Métrica: Recall@k ao longo da duração do vídeo e da posição do marcador.

O Gemini 2.5 Pro alcança mais de 99% de recall em vídeos de até 90 minutos. Já os modelos abertos de 72B (Qwen2.5-VL-72B, InternVL3-78B) alcançam cerca de 85-90% de recall aos 30 minutos de vídeo e degradam em durações superiores a 60 minutos.

O VideoAgent consegue igualar ou superar os modelos de contexto bruto em vídeos com mais de 2 horas, pois a recuperação consegue localizar a "agulha" se a ferramenta for de boa qualidade.

Qual caminho escolher

Para clipes de até 15 minutos buscando o estado da arte em acurácia: o uso de modelos abertos de 72B + contexto nativo costuma funcionar. A recomendação é o Qwen2.5-VL-72B.

Para conteúdos de 30 minutos a 1 hora: LongVILA ou Video-XL como opções abertas; Gemini 2.5 Pro como opção fechada. O nível de exigência de qualidade é determinante — o estado da arte exige o modelo fechado.

Para conteúdos com mais de 2 horas: VideoAgent ou padrões similares baseados em recuperação. Como alternativa, pode-se sumarizar o conteúdo em blocos menores e alimentar o modelo com resumos hierárquicos.

Padrão de produção para 2026

Na prática, as pipelines de produção de vídeo longo são híbridas:

  1. Executa-se amostragem dinâmica de FPS + pooling agressivo em todo o vídeo (obtendo uma representação global de 100k tokens).
  2. Envia-se o resultado para um VLM de 72B para gerar um resumo global.
  3. Caso o usuário faça perguntas específicas sobre detalhes, executa-se a recuperação baseada em agentes usando o resumo como índice.

Essa abordagem combina contexto bruto para compreensão global com recuperação direcionada para detalhes locais.

Use

code/main.py:

  • Calcula orçamentos de tokens para vídeos de 1 minuto a 3 horas com diferentes taxas de FPS e pooling.
  • Simula um teste de agulha no palheiro (needle-in-a-haystack): injeta um marcador em um timestamp aleatório, faz uma pergunta e calcula a pontuação de recall.
  • Inclui um simulador de roteador de recuperação baseada em agentes que escolhe clipes específicos para enviar a um VLM downstream.

Execute a tabela de orçamento para visualizar a diferença de escala.

Envie

Esta lição produz o arquivo outputs/skill-long-video-strategy-planner.md. Dada a duração de um vídeo e a complexidade da consulta, ele seleciona a estratégia entre contexto bruto, compressão e recuperação baseada em agentes, estimando a latência e a qualidade esperadas.

Exercícios

  1. Uma palestra de 45 minutos a 1 FPS, com 81 tokens por frame. Qual o total de tokens? Em qual contexto de modelo isso se encaixa?

  2. Projete um teste de agulha no palheiro: em qual minuto você injetaria o marcador e qual seria o formato exato da pergunta?

  3. Compare o Qwen2.5-VL-72B em contexto bruto (contexto de 80k) com o VideoAgent (Claude 3.5 + recuperação) em um vídeo de 1 hora. Qual deles vence no recall? Qual deles vence na latência?

  4. O custo de memória da Ring Attention escala linearmente com o comprimento da sequência e linearmente com o número de dispositivos. Explique o motivo e o que falha se eliminarmos a fase de rotação em anel.

  5. Leia a Seção 5 do artigo do Gemini 1.5 sobre agulha no palheiro. O que os autores concluíram sobre o recall no limite entre 1M e 10M de tokens?

Termos-Chave

Termo O que as pessoas dizem O que realmente significa
Brute context "Apenas mais tokens" Ampliar o contexto do LLM para milhões de tokens; processar tudo em uma única etapa
Ring attention "Paralelismo estilo LWM" Padrão de atenção distribuído onde cada dispositivo armazena e rotaciona um chunk da sequência
Token compression "Tokens de resumo" Reduzir a quantidade de tokens por clipe através de um compressor treinado antes de enviá-los ao LLM
Needle-in-haystack "Teste NIH" Inserir um marcador único em uma posição aleatória e pedir para o modelo recuperá-lo no teste
Agentic retrieval "LLM como planejador de consulta" O LLM solicita trechos relevantes a uma ferramenta de recuperação, analisa-os com um VLM e elabora a resposta
VideoAgent "Padrão de recuperação para vídeo" Estrutura clássica de recuperação baseada em agentes: pergunta -> ferramenta -> clipe -> resposta

Leituras Adicionais

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