- Course
- 计算机视觉基础
- [Transformer 与多模态基础](#Transformer 与多模态基础)
- Concept
- [VLM 基本架构](#VLM 基本架构)
- 视频理解与视频推理
- Paper
- Benchmark
- Dataset
- Project
- Book
- 学习路线
- Resources
VLM Wiki
- Vision-Language Model 资料整理与学习笔记
- 看到了什么、发生了什么、为什么发生、何时响应、如何持续低延迟运行
参考资料见文末Resources
一、Course
计算机视觉基础
- Stanford CS231n: Deep Learning for Computer Vision:CNN、视觉表征、检测与分割基础
- Hugging Face Community Computer Vision Course:从视觉基础到 Vision Transformer
- UvA Deep Learning Tutorials:PyTorch、Attention、ViT 等可运行教程
- Dive into Deep Learning:Computer Vision:卷积、检测、分割与数据增强
Transformer 与多模态基础
- The Illustrated Transformer:先建立 Attention、Encoder、Decoder 的直觉
- The Annotated Transformer:用 PyTorch 阅读 Transformer 实现
- Hugging Face LLM Course:Tokenizer、Transformer、微调与推理
- Stanford CS336: Language Modeling from Scratch:语言模型训练与系统基础
- LLaVA-NeXT Documentation:图像、视频、多模态模型与评测生态
二、Concept
VLM 基本架构
text
Image / Video
↓
Vision Encoder(ViT / CLIP)
↓
Projector / Adapter / Q-Former
↓
Visual Tokens + Text Tokens
↓
Large Language Model
↓
Caption / QA / Reasoning / Action
- Vision Encoder:把像素转换成 patch token
- Projector / Adapter:将视觉特征映射到 LLM 的表示空间
- Visual Token:LLM 能消费的视觉序列
- Position Encoding / RoPE:表达时间与空间位置
- SFT:使用图文、视频问答与 caption 数据训练模型
- Prefill / Decode / KV Cache:决定多模态模型的推理速度与显存
视频理解与视频推理
视频比单图多了时间轴。模型不仅要识别物体,还要处理:
- 动作、状态变化与事件边界
- 事件先后顺序、持续时间和因果关系
- 跨帧目标跟踪与空间关系
- 长视频记忆与证据检索
- 音频、字幕和画面的同步
视频推理可以按输出和思考形式分为:
- CoT-based Video Reasoning:以语言 Chain-of-Thought 为主
- CoF-based Video Reasoning:以帧、视频生成或视觉状态变化作为推理过程
- Interleaved Video Reasoning:视频、图像与文本交替进入推理链
- Streaming Video Reasoning:视频持续到来,模型只能使用过去和当前信息
Streaming Video Understanding
离线视频模型可以提前看到完整视频;Streaming 模型在时刻 t t t 只能使用:
I t = { F 1 , F 2 , ... , F t } \mathcal{I}_t = \{F_1,F_2,\ldots,F_t\} It={F1,F2,...,Ft}
不能预览 F t + 1 F_{t+1} Ft+1,也不能依赖未来证据。核心问题分为两类:
- Proactive / When to Act:什么时候回答、提醒、输出 caption 或保持沉默
- Reactive / How to Sustain:如何控制不断增长的视觉 token、记忆、KV Cache 和计算量
常见系统形态:
text
Video Stream → Frame/Chunk Buffer → Trigger/Gate → VLM
↓ ↓ ↓
Short-term Memory Speak? Response
↓
Long-term Memory / Retrieval
- Streaming input:视频帧持续到达
- Streaming output:模型逐 token 输出文字
- Dataset streaming:训练时边下载边读取数据
三、Paper
VLM 基座
- CLIP: Learning Transferable Visual Models From Natural Language Supervision:视觉与文本对比学习基础
- Flamingo: a Visual Language Model for Few-Shot Learning:跨注意力连接视觉编码器与冻结 LLM
- BLIP-2: Bootstrapping Language-Image Pre-training:Q-Former 对齐视觉与语言
- LLaVA: Visual Instruction Tuning|Code:视觉指令微调经典工作
- Qwen2-VL: Enhancing Vision-Language Model's Perception of the World at Any Resolution|Code:动态分辨率与多模态 RoPE
- Qwen2.5-VL Technical Report|Code:长视频、定位与视觉 Agent
- LLaVA-OneVision: Easy Visual Task Transfer|Code:统一单图、多图和视频任务
- OneVision-Encoder: Codec-Aligned Sparsity as a Foundational Principle for Multimodal Intelligence:利用运动与残差信号进行 codec-aligned 视觉编码
Video-LLM 基座
- Video-LLaVA: Learning United Visual Representation by Alignment Before Projection|Code
- VideoChat2: Advancing Spatial-Temporal Modeling and Post-Training in Video-LLMs|Code
- LLaVA-NeXT: A Strong Zero-shot Video Understanding Model|Code
- LongVA: Long Context Transfer from Language to Vision|Code
- LongVU: Spatiotemporal Adaptive Compression for Long Video-Language Understanding|Code
视频推理
Language-centric / CoT
- Video-R1: Reinforcing Video Reasoning in MLLMs|Code
- VideoChat-R1: Enhancing Spatio-Temporal Perception via Reinforcement Fine-Tuning|Code
- Thinking With Videos: Multimodal Tool-Augmented Reinforcement Learning for Long Video Reasoning|Code
- Open-o3 Video: Grounded Video Reasoning with Explicit Spatio-Temporal Evidence|Code
- Video-Thinker: Sparking "Thinking with Videos" via Reinforcement Learning|Code
Vision-centric / CoF
- Chain-of-Frames: Advancing Video Understanding via Frame-Aware Reasoning|Code
- Are Video Models Ready as Zero-Shot Reasoners? MME-CoF|Dataset
- Thinking with Video: Video Generation as a Promising Multimodal Reasoning Paradigm|Code
Interleaved Reasoning
- Thinking With Videos|Code:通过工具调用在推理中主动重看视频
- ViTCoT: Video-Text Interleaved Chain-of-Thought|Code
- LongVT: Thinking with Long Videos via Native Tool Calling|Code
主动交互:When to Speak
生成式 Token 触发
让模型生成 EOS、<silence>、<response> 或动作 token,统一学习"是否回答"和"回答内容"。
- VideoLLM-online: Online Video Large Language Model for Streaming Video|Code:Streaming EOS 代表保持沉默
- What to Say and When to Say It|Code:
<next>与<feedback>动作 token - LiveCC: Learning Video LLM with Streaming Speech Transcription at Scale|Code:实时赛事解说与 Streaming EOS
- ProAssist: Proactive Assistant Dialogue Generation|Code:帧级 EOS 与负样本下采样
- Streaming Video Instruction Tuning|Code:Silence、Standby、Response 三状态 token
辅助 Head / Detector 触发
使用轻量分类器、路由器或 Activation Model 判断是否调用大模型。
- MMDuet: VideoLLM Knows When to Speak|Code:Informative Head 与 Relevance Head
- Dispider|Code:解耦感知、决策和响应
- StreamMind|Code:Event-Gated Cognition,面向高帧率视频
- ViSpeak|Code:Informative Head 判断视觉反馈时机
- StreamBridge|Code:小 Activation Model 驱动离线 Video-LLM
- Proact-VL|Code:FLAG token 与 gated response head
Feature / Event 触发
- TimeChat-Online: 80% Visual Tokens are Naturally Redundant|Code:差分 token drop 和场景变化触发
- LiveStar|Code:通过 perplexity 验证是否需要输出
- QueryStream|Code:query-aware differential pruning 与相关性触发
- ColorTrigger|Code:灰度常开、彩色按需激活
- CodecSight: Leveraging Video Codec Signals for Efficient Streaming VLM Inference:motion vector 引导 patch pruning,I 帧刷新 KV Cache
强化学习优化响应时机
- MMDuet2|Code:多轮 RL 学习 Reply / No Reply
- Thinking in Streaming Video|Code:Watch--Think--Speak 与 streaming RLVR
长期记忆
滑动窗口与淘汰
- A Simple Baseline for Streaming Video Understanding|Code:固定最近帧窗口,是重要 baseline
- StreamingVLM: Real-Time Understanding for Infinite Video Streams|Code:Attention Sink、滑动窗口和连续 RoPE
- Proact-VL|Code:双 Cache 滑窗与 Reverse-RoPE eviction
层次化与事件记忆
- VideoChat-Online / OVBench|Code:Pyramid Memory Bank
- StreamChat|Code:短期记忆、长期记忆树与对话检索
- StreamForest|Code:Persistent Event Memory Forest
- VideoScaffold|Code:弹性事件切分与层次化聚合
- EventMemAgent|Code:事件中心双层记忆与工具调用
- FluxMem|Code:短、中、长期自适应层次记忆
Token 与 KV Cache 压缩
- VideoScan|Code:每帧压缩为 Semantic Carrier Token
- InfiniPot-V|Code:时间冗余和 Value-Norm 驱动 KV 压缩
- StreamMem|Project:query-agnostic KV pruning 与 merging
- StreamingTOM|Code:视觉 token 压缩与 4-bit KV Memory
- StreamKV|Code:分段 KV 检索与压缩
- HERMES|Code:将 KV Cache 组织成感觉、工作与长期记忆
检索增强记忆
- ReKV|Code:KV Cache 下放 CPU/磁盘并按问题检索
- Flash-VStream|Code:摘要记忆与细节增强记忆
- CogStream|Code:事件压缩与历史对话检索
- WeaveTime|Code:不确定性触发的粗到细历史检索
实时推理
编码---解码并行
- Speak While Watching|Code:并行感知与生成
- Think-as-You-See|Code:Parallel Dual KV Cache
- Think While Watching|Code:异步 Watch--Think Pipeline
稀疏调用与视觉计算
- VideoLLM-MoD:Mixture-of-Depths 跳过冗余视觉层计算
- LION-FS|Code:Fast Path 判断时机,Slow Path 生成回答
- StreamMind|Code:轻量 Gate 持续运行,重模型按事件调用
- STC: Hierarchical Token Compression|Code:ViT 特征复用与 LLM 前 token pruning
- AutoGaze|Code:在 ViT 前自回归选择少量多尺度 patch
推理系统关键指标
- TTFT:Time to First Token
- TPOT:Time per Output Token
- RTF :推理耗时 / 视频时长,实时系统通常要求 R T F < 1 RTF < 1 RTF<1
- P50 / P95 latency:平均体验与尾延迟
- Model call ratio:真正调用重模型的帧或 chunk 比例
- Visual tokens/s:视觉侧处理吞吐
- Peak GPU memory:峰值显存
Streaming with Thinking
- StreamingCoT|Code:Streaming VideoQA 与多模态 CoT 数据
- Video Streaming Thinking|Code:边看边思考,VST-SFT + VST-RL
- Think While Watching|Code:持续 segment memory 与并行推理
- Thinking in Streaming Video|Code:Watch--Think--Speak 与 reasoning-compressed memory
- Think-as-You-See|Code:因果 streaming attention 与双 KV Cache
四、Benchmark
Streaming QA、记忆与推理
- StreamingBench|Code & Data:实时、全局与上下文理解
- OVBench|Code & Data:过去记忆、当前感知与未来预测
- OVO-Bench|Code & Data:Backward Tracing、实时感知和主动响应
- StreamBench|Code:长短期记忆与多轮交互
- SVBench|Code:时序多轮视频对话
- RTV-Bench|Code:持续感知、理解和推理
- OST-Bench|Code:在线时空场景理解
- ODV-Bench|Dataset:自动驾驶在线理解
- RIVER|Code:实时交互、记忆、感知与预判
主动响应与响应时机
- OmniMMI|Code & Data:流式理解、告警、轮次切换与动作规划
- ViSpeak|Code & Data:视觉唤醒、打断与反馈
- PROASSIST|Code & Data:第一视角任务指导与响应时机
- ProactiveVideoQA|Code & Data:Web、Ego、剧集与异常场景
- ESTP-Bench / Eyes Wide Open|Code:Just-in-Time 响应与主动请求高清帧
- Proact-VL Live Gaming Benchmark:实时游戏解说、协同解说和用户指导
视频推理综合评测
- Video-MME|Code:短、中、长视频综合理解
- MVBench|Code:多任务时空理解
- VideoVista|Code:视频理解与推理
- VideoReasonBench|Code:视觉中心复杂推理
- Video-Holmes|Code:复杂长视频推理
- VCRBench|Code:长视频因果推理
五、Dataset
Streaming Caption 与 Narration
- Live-CC-5M:大规模流式 ASR 视频预训练数据
- Live-WhisperX-526K:密集实时解说与指令微调
- OmniStar-RNG:实时 narration、dense caption 和视频文本对齐
- MMDuetIT:多答案 grounded QA、主动响应与时间定位
Streaming QA 与交互
数据设计时需要显式保存:video/chunk、时间戳、历史对话、事件区间、响应内容以及 silence/respond 标签,避免训练阶段意外读取未来信息。
六、Project
- NVIDIA Live VLM WebUI|Docs:摄像头实时 VLM WebUI
- VideoLLM-online:Streaming EOS 基础实现
- LiveCC:实时视频 commentary
- StreamBridge:将离线 Video-LLM 改造成主动 Streaming Assistant
- StreamingVLM:无限流、固定显存与 KV Cache 管理
- SimpleStream:固定滑动窗口 baseline,适合首先复现
- StreamMind:高帧率事件门控方案
- Proact-VL:实时 AI companion 与游戏场景
- OneVision-Encoder Models:Codec-aligned Vision Encoder
七、Survey
- Towards Online Interactors: A Comprehensive Survey on Streaming Video Understanding:围绕主动触发、长期记忆、稀疏计算和评测整理 Streaming Video Understanding
- A Survey on Generative AI and LLM for Video Generation, Understanding, and Streaming:视频生成、理解与流式处理综述
- The Landscape of Video Reasoning: Tasks, Paradigms and Benchmarks:CoT、CoF、Interleaved 与 Streaming Video Reasoning
八、Blog
Vision Transformer
- The Illustrated Vision Transformer
- An Image is Worth 16x16 Words
- Hugging Face Vision Transformer Explained
Video 与 Codec
- FFmpeg Documentation
- A Beginner's Guide for FFMPEG
- Video Coding Concepts:帧率、I/P/B 帧、压缩与码率
推理与 KV Cache
- vLLM: Easy, Fast, and Cheap LLM Serving
- PagedAttention Paper
- Hugging Face KV Cache Strategies
- FlashAttention: Fast and Memory-Efficient Exact Attention
九、Book
- Dive into Deep Learning:深度学习、Transformer 与计算机视觉入门
- Deep Learning for Vision Systems:视觉任务工程实践
- Computer Vision: Algorithms and Applications:经典计算机视觉理论
- Natural Language Processing with Transformers:Transformers 与 Hugging Face 实践
- Designing Machine Learning Systems:数据、训练、部署和监控
十、路线
Stage 1:VLM 基础
- 学习 PyTorch Tensor、Module、Dataset 和 GPU 推理
- 理解 ViT、Patch Embedding、Attention 和 RoPE
- 阅读 CLIP、BLIP-2、LLaVA、Qwen2-VL
- 跑通单图 caption 与 VQA
Stage 2:Video-LLM
- 使用 FFmpeg / Decord 解码视频并均匀抽帧
- 理解
[T,C,H,W] → visual tokens → LLM数据流 - 跑通 Video-MME 或 MVBench 的小规模评测
- 比较帧数、分辨率、视觉 token 数与显存、延迟的关系
Stage 3:Streaming Baseline
- 将视频切成严格因果的 chunk,禁止使用未来帧
- 实现固定长度滑动窗口
- 在每个 chunk 输出 caption、answer 或 silence
- 记录 TTFT、P95、RTF、显存和 model call ratio
Stage 4:主动触发与长期记忆
- 对比固定周期、帧差、codec residual 和轻量分类 Head
- 加入
<silence>/<response>或独立 response head - 实现短期滑窗 + 长期文本/事件/KV 记忆
- 在 OVO-Bench、SVBench、RTV-Bench 上做消融
Stage 5:高帧率与 VLA
- 使用 lightweight gate 持续感知,重模型按事件调用
- 将输出从 caption 扩展为离散 action token
- 测量 action latency、decision FPS、return 和 model call ratio
- 研究 codec motion vector / residual 引导的区域级 patch selection
text
SimpleStream(baseline)
→ VideoLLM-online(EOS / silence)
→ StreamBridge(独立触发器)
→ StreamMind(高帧率稀疏调用)
→ StreamingVLM / HERMES(KV Cache 与长期记忆)
→ CodecSight / OneVision-Encoder(Codec-aware 推理)
Resources
- sotayang/Awesome-Streaming-Video-Understanding
- ydyhello/Awesome-VLM-Streaming-Video
- LJungang/Awesome-Video-Reasoning-Landscape
- Video-Reason/Awesome-Video-Reasoning
- yunlong10/Awesome-LLMs-for-Video-Understanding
- yunlong10/Awesome-Video-LMM-Post-Training
- zhengxuJosh/Awesome-Multimodal-Spatial-Reasoning
资料更新较快,论文发表状态、代码和模型权重以原项目页面为准。欢迎提交 PR 补充课程、论文复现、实验记录和中文笔记。