Une vidéo longue dans un contexte de millions de mots
Type: Build
Languages: Python (stdlib, needle-in-haystack simulator + agentic-retrieval router)
Prerequisites: Phase 12 · 17 (video temporal tokens)
Time: ~180 minutes
Objectifs d'apprentissage
- Calculer le nombre total de jetons visuels pour la vidéo longue format à des FPS et des pools variables.
- Expliquez les trois voies d'échelle: contexte brut (Gemini 1.5), attention aux anneaux (LWM), compression des jetons (LongVILA / Video-XL).
- Comparer les VLM vidéo contextuelle brute contre les VLM vidéo de récupération agencée (VideoAgent) sur la précision et la latence.
- Conçuez un test à l'aiguille dans un paquet de foin pour une vidéo de 30 minutes et mesurez le rappel à une minute spécifique.
Le problème
Un seul cadre de patches de taille Qwen2.5VL à 384 résolution native est de ~ 729 jetons. À 3x3 pooling, c'est 81 jetons par cadre. Un clip de 30 minutes à 1 FPS = 1800 images = 145.800 jetons. Faible d'ici 2025, VLMs ouverts, serrés. À 2 FPS, 291.600 jetons ne conviennent que aux plus grands contextes.
Un film de 2 heures à 1 FPS est de 583k jetons. Au-delà de la plupart des modèles ouverts de 2026; nécessite Gemini 2.5 Pro ou un regroupement plus agressif.
Trois sentiers d'escalade sont apparus.
Le concept
Voie 1: contexte brut (Gemini 1.5, Claude Opus)
Jetez du matériel au problème, étalonnez le contexte à des millions de jetons, traitez tout en une seule passe.
Gemini 1.5 Pro est lancé avec 1M de jetons; Gemini 1.5 Ultra à 10M; Gemini 2.5 Pro en 2026 fait des heures de vidéo de manière fiable.
Ingénierie: une mise en œuvre d'attention personnalisée avec hiérarchie de mémoire (local + global + rare) plus un routage par expert MoE pour une efficacité de long contexte.
Voie 2: Attention aux anneaux (LWM, LongVILA)
L'attention à l'anneau répartit de longues séquences entre les appareils dans un "anneau" où chaque appareil tient une pièce.
LWM (Liu et coll., 2024) a formé un modèle de contexte de 1M-token de cette façon.
LongVILA (arXiv:2408.10188) a adapté le modèle aux VLM. Vidéos de 1400 images à 192 jetons par image = 268k contexte, entraînées avec l'attention des anneaux sur le parallélisme à 8 voies.
Voie 3: Compression des jetons (vidéo-XL, LongVA)
Plus bon marché que le contexte brut: comprimé agressivement avant que le LLM ne voie la séquence.
Video-XL (arXiv:2409.14485) utilise un jeton de résumé visuel: chaque clip de N cadres produit un seul jeton de "récapitulation" qui se trouve au-dessus du N. En conséquence, le LLM voit un jeton de résumé par clip, réduisant considérablement le contexte.
LongVA étend le contexte de LLM de 200 000 à 2 millions avec une technique de "transfert de contexte long".
La compression des jetons échange le rappel à des timestamps spécifiques pour l'évolutivité. Le modèle sait généralement ce qui s'est passé mais manque parfois des cadres exacts.
Voie 4: Récupération par agent (VideoAgent)
Ne pas fournir la vidéo complète au LLM. Traitez plutôt la vidéo comme une base de données et utilisez un LLM pour la consulter.
VidéoAgent (arXiv:2403.10517):
- LLM lit la question.
- Le MLL demande un outil de récupération pour les clips pertinents ("montre-moi des segments avec un chat").
- L'outil renvoie les timestamps correspondants.
- LLM lit ces clips par le biais d'un VLM.
- Le MLL compose la réponse ou pose des questions de suivi.
C'est le modèle LLM-as-agent appliqué à la vidéo longue.
Indices de référence pour l'aiguille dans un tas de foin
Le test de long-context standard: insérer un marqueur visuel ou textuel unique à un point aléatoire de la vidéo, puis poser une requête qui nécessite son rappel.
Métrique: Recall@k sur la longueur de la vidéo et la position du marqueur.
Les modèles Open 72B (Qwen2.5-VL-72B, InternVL3-78B) obtiennent un score de ~85-90% à 30 minutes et se dégradent au-delà de 60.
VideoAgent peut correspondre ou battre les modèles de contexte brut à plus de 2 heures parce que la récupération frappe l'aiguille si l'outil est bon.
Quelle voie choisir ?
Pour un clip de 15 minutes à la précision de la frontière: ouvrir 72B + contexte natif fonctionne généralement.
Pour le contenu de 30 minutes à 1 heure: LongVILA ou Video-XL pour ouvert; Gemini 2.5 Pro pour fermé.
Pour un contenu de plus de 2 heures: VideoAgent ou des modèles de récupération similaires.
Modèle de production 2026
En pratique, les pipelines de production vidéo longue sont hybrides:
- Exécutez un prélèvement dynamique en FPS + un regroupement agressif sur l'ensemble de la vidéo (obtenir une représentation globale de 100k-token).
- Passez à un VLM 72B pour un résumé global.
- Si l'utilisateur pose des questions détaillées, effectuer une recherche agentique en utilisant le résumé comme index.
Cela combine le contexte brut pour la compréhension globale et la récupération des détails locaux.
Utilisez-le
code/main.py- Le numéro de la liste:
- Compute les budgets de jetons pour les vidéos de 1 minute à 3 heures à des FPS + pooling variables.
- Simulation d'une course à l'aiguille dans un tas de foin: injection d'un marqueur à un timestamp aléatoire, pose une question, score rappel.
- Inclut un simulateur de routeur de récupération d'agents qui choisit des clips spécifiques pour les alimenter à un VLM en aval.
Faites le bilan et ressentez l'écart de l'échelle.
La faire partir
Cette leçon produit outputs/skill-long-video-strategy-planner.md. Compte tenu de la durée de la vidéo et de la complexité de la requête, il choisit entre le contexte brut, la compression et la récupération agencée, et calcule les attentes de latence + qualité.
Exercices
- Une conférence de 45 minutes à 1 FPS, 81 jetons par image.
- Conceptez un test à l'aiguille dans un tas de foin: à quelle minute vous injectez le marqueur, et quel est le format exact de la requête?
- Comparer le contexte brut Qwen2.5-VL-72B (context 80k) à l'agent vidéo (Claude 3.5 + récupération) sur une vidéo d'une heure.
- Les coûts de mémoire de l'attention à l'anneau s'échelonnent linéairement en longueur de séquence et en nombre de périphériques.
- Lisez Gemini 1.5 Section 5 sur l'aiguille dans un tas de foin.
Les termes clés
| Term | What people say | What it actually means |
|---|---|---|
| Brute context | "Just more tokens" | Scale LLM context to millions of tokens; process everything in one pass |
| Ring attention | "LWM-style parallel" | Distributed attention pattern where each device holds a chunk and rotates |
| Token compression | "Summary tokens" | Reduce per-clip tokens via a learned compressor before the LLM |
| Needle-in-haystack | "NIH test" | Insert a unique marker at a random point, ask model to recall it at test time |
| Agentic retrieval | "LLM as query planner" | LLM asks a retrieval tool for relevant clips, reads them via a VLM, composes answer |
| VideoAgent | "Retrieval pattern for video" | Canonical agentic-retrieval design: question -> tool -> clip -> answer |
Pour en savoir plus
- Gemini Team — Gemini 1.5 (arXiv:2403.05530)
- Liu et al. — LWM / RingAttention (arXiv:2402.08268)
- Xue et al. — LongVILA (arXiv:2408.10188)
- Shu et al. — Video-XL (arXiv:2409.14485)
- Wang et al. — VideoAgent (arXiv:2403.10517)
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.