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):
- O LLM lê a pergunta.
- O LLM solicita a uma ferramenta de recuperação os clipes relevantes ("mostre-me trechos com um gato").
- A ferramenta retorna os timestamps correspondentes aos clipes identificados.
- O LLM analisa esses clipes usando um VLM.
- 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:
- Executa-se amostragem dinâmica de FPS + pooling agressivo em todo o vídeo (obtendo uma representação global de 100k tokens).
- Envia-se o resultado para um VLM de 72B para gerar um resumo global.
- 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
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?
Projete um teste de agulha no palheiro: em qual minuto você injetaria o marcador e qual seria o formato exato da pergunta?
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?
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.
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 |