多模态模型
本文介绍大模型从文本扩展到图像、音频、视频等模态的技术路线。
快速开始¶
多模态模型的目标是让模型同时理解和生成多种模态的信息。它不是简单把图片传给语言模型,而是要解决表示对齐、跨模态融合、指令跟随和生成控制等问题。
典型演化路线是:
专业理解多模态模型时,要区分两个问题:理解和生成。视觉语言模型 (Vision-Language Model, VLM) 主要解决图像、视频等输入如何接入语言模型;扩散模型和 flow model 主要解决图像、视频等连续信号如何生成。视频是多模态模型中最容易触发 token 爆炸的输入类型,需要同时处理空间细节、时间顺序、事件边界和长上下文压缩。
多模态任务分类¶
| 任务 | 输入 | 输出 | 关键能力 |
|---|---|---|---|
| Image-Text Retrieval | 图像或文本 | 匹配文本或图像 | 表示对齐 |
| Image Captioning | 图像 | 描述文本 | 视觉理解和语言生成 |
| Visual Question Answering | 图像 + 问题 | 答案 | 视觉问答 |
| OCR | 图像 | 文本 | 字符识别和版面理解 |
| Grounding | 文本 + 图像 | 区域或坐标 | 对象定位 |
| Chart Understanding | 图表 | 结论或数据 | 结构化视觉理解 |
| Video QA | 视频 + 问题 | 答案 | 视觉细节和时序推理 |
| Video Captioning | 视频 | 摘要或描述 | 事件抽象和语言生成 |
| Temporal Grounding | 视频 + 文本 | 时间段 | 文本事件对齐 |
| Long Video Understanding | 长视频 + 问题 | 答案或时间戳证据 | 检索、摘要和长上下文压缩 |
| Audio Understanding | 音频 + 指令 | 文本或动作 | 声学和语义融合 |
| Text-to-Video | 文本 | 视频 | 文本对齐和运动合理性 |
| Image-to-Video | 图像 + 文本 | 视频 | 主体一致和运动生成 |
| Multimodal Generation | 文本/图像/音频 | 图像、视频、音频 | 条件生成 |
不同任务对模型结构要求不同。OCR 和 grounding 更重视局部细节,视频理解更重视时序压缩,生成任务更重视高维连续信号建模。
图文对齐¶
CLIP 使用大量图文对训练图像编码器和文本编码器,让匹配的图片和文本在同一向量空间中靠近,不匹配的样本远离。
CLIP 的对比学习目标可简化理解为:提高匹配图文对的相似度,降低不匹配图文对的相似度。
其中 \(I_i\) 是图像表示,\(T_i\) 是文本表示,\(\tau\) 是温度参数。实际训练通常同时使用 image-to-text 和 text-to-image 两个方向:
这种对称目标让图像检索文本和文本检索图像都能工作。
这种对比学习方式让模型获得开放词表图像理解能力。它的意义在于把视觉表示和语言表示对齐,为后续图文检索、图像分类、文生图和视觉语言模型打下基础。
文本到图像生成¶
DALL-E、Imagen、Stable Diffusion 等模型让文本描述可以控制图像生成。
其中扩散模型路线逐渐成为主流。文本编码器负责理解提示词,扩散模型负责逐步生成图像。更完整的扩散过程见 扩散模型。
视觉 token 接入 LLM¶
视觉语言模型通常把图像编码成视觉 token,再与文本 token 一起送入语言模型或跨模态模块。
常见结构包括:
- vision encoder:使用 ViT、CNN 或其他视觉骨干提取图像特征;
- projector:把视觉特征映射到语言模型隐藏维度;
- resampler:压缩大量视觉 patch,减少 token 数;
- cross attention:让语言模型通过注意力读取视觉特征;
- early fusion:视觉 token 和文本 token 早期融合;
- late fusion:视觉和文本先独立编码,再在后续融合。
flowchart LR
A[Image] --> B[Vision Encoder]
B --> C[Projector / Resampler]
C --> D[Visual Tokens]
E[Text Tokens] --> F[LLM]
D --> F
F --> G[Text Answer]
LLaVA 类模型常采用视觉编码器 + projector + LLM 的结构。Flamingo 使用跨注意力连接视觉特征和语言模型。BLIP-2 使用 Q-Former 在冻结图像编码器和语言模型之间建立桥梁。
VLM 训练阶段¶
视觉语言模型通常经历多个训练阶段:
| 阶段 | 目标 | 数据 |
|---|---|---|
| Vision-language pre-training | 学习图文对齐和基础描述 | 图文对、caption 数据 |
| Alignment pre-training | 把视觉 token 对齐到 LLM 表示空间 | 图像-文本说明数据 |
| Multimodal instruction tuning | 学会按用户指令回答视觉问题 | 图像问答、多轮对话、OCR、图表数据 |
| Preference optimization | 改善回答质量和安全性 | 偏好数据、红队数据 |
多模态指令微调解决的是可交互性问题。一个只会图文匹配的模型不一定会回答用户问题,多模态指令微调让模型以助手形式使用视觉能力。
高分辨率和长视频问题¶
图像和视频会带来 token 爆炸。假设图像被切成 patch,分辨率越高,patch 数越多;视频还要乘以帧数。
视频 token 数可以粗略估算为:
其中 \(T\) 是帧数,\(H,W\) 是分辨率,\(p_h,p_w\) 是 patch 大小。若 \(224\times224\) 图像使用 \(14\times14\) patch,每帧有 \(256\) 个 patch;输入 \(32\) 帧时,不做压缩就会得到 \(8192\) 个视觉 token。
常见处理方式包括:
- image tiling:把高分辨率图像切块处理;
- dynamic resolution:根据图像内容动态分配 token;
- frame sampling:抽取关键帧;
- temporal pooling:压缩时间维度;
- hierarchical encoding:先局部编码,再全局聚合。
这些方法都在压缩信息和保留细节之间做取舍。OCR、图表理解、小目标识别通常需要更多视觉 token,而普通场景描述可以更激进压缩。
原生多模态模型¶
原生多模态模型希望在训练阶段就统一处理文本、图像、音频、视频等模态,而不是把视觉模块后接到已有语言模型上。
关键问题包括:
- 不同模态如何 token 化;
- 不同模态的序列长度差异如何处理;
- 训练数据如何混合;
- 模态之间如何共享表示;
- 生成任务和理解任务如何统一。
原生路线的优势是模态融合更彻底,代价是训练数据、模型结构和评测都更复杂。外接视觉编码器路线更容易复用现有 LLM,但跨模态表达可能受接口限制。
多模态与工具使用¶
多模态模型不只用于看图问答。它还可以和 OCR、目标检测、浏览器、代码执行、机器人控制等工具结合,形成更复杂的智能体系统。
不过在模型原理层面,核心仍然是跨模态表示、融合和生成。具体工具编排应放到下游应用章节中理解。
失败模式与安全问题¶
多模态模型面临的难点包括:
- 视觉细节容易丢失;
- OCR、计数、空间关系仍可能出错;
- 图表和表格需要结构化理解;
- 视频和长音频带来更长上下文压力;
- 多模态数据质量和版权更复杂;
- 视觉提示注入可能通过图片文字影响模型行为;
- 模型可能对不存在的视觉细节产生幻觉。
未来发展方向是更统一的模态表示、更强的视频理解、更精细的空间推理,以及和外部工具的结合。
代表路线¶
| 路线 | 代表模型 | 核心贡献 |
|---|---|---|
| 图文对齐 | CLIP | 对比学习统一图像和文本表示 |
| 文生图 | DALL-E、Imagen、Stable Diffusion | 文本条件图像生成 |
| 跨注意力 VLM | Flamingo | 少样本视觉语言学习 |
| 桥接模块 | BLIP-2 | Q-Former 连接视觉编码器和 LLM |
| 指令微调 VLM | LLaVA | 视觉指令跟随 |
| 通用 VLM | Qwen-VL、InternVL 等 | 多任务、多分辨率、多语言视觉理解 |
| 视频语言模型 | Video-LLaVA、VideoChat、Qwen-VL 类视频能力 | 把视频 token 接入 LLM,支持视频问答和摘要 |
| 视频生成 | Video Diffusion、Stable Video Diffusion、VideoPoet、Sora 类系统 | 从图像生成扩展到时空一致的视频生成 |
常见误区¶
| 误区 | 更准确的理解 |
|---|---|
| 多模态就是图像分类加聊天 | 还包括 OCR、grounding、图表、视频、生成和工具操作 |
| 图像编码器越强就一定越好 | 还要看视觉 token 如何对齐和接入 LLM |
| VLM 能看到图就一定可靠 | 视觉细节、计数、空间关系和幻觉仍是难点 |
| 文生图和 VLM 是同一类模型 | 前者偏生成连续信号,后者偏理解和语言交互 |
参考资料¶
- Learning Transferable Visual Models From Natural Language Supervision
- Flamingo: a Visual Language Model for Few-Shot Learning
- BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models
- Visual Instruction Tuning
- LLaVA-NeXT: Improved reasoning, OCR, and world knowledge
Video¶
本节面向大模型体系下的视频理解、视频生成和视频多模态面试准备。
快速开始¶
视频不是“多张图片拼接”。图像主要建模空间结构,视频还需要建模时间顺序、运动、事件边界、主体一致性和长程依赖。一个人在视频中转身、遮挡、离开又出现,这些都要求模型理解跨帧状态,而不是只识别单帧内容。
视频模型可以分成两条主线:
- 视频理解:看懂发生了什么,回答问题、定位事件、总结长视频。
- 视频生成:合成连续且可控的时空信号,保证文本对齐、主体一致和运动合理。
典型技术链如下:
flowchart TD
A[Video] --> B[Frame Sampling]
B --> C[Patch / Tubelet Tokenization]
C --> D[Spatial Encoder]
D --> E[Temporal Modeling]
E --> F[Video Tokens]
G[Text Tokens] --> H[LLM or Diffusion Backbone]
F --> H
H --> I[Answer / Caption / Generated Video]
面试中要抓住三个问题:视频如何变成 token,模型如何建模时间,系统如何在 token 成本和信息保真之间取舍。
视频任务谱系¶
| 类别 | 任务 | 输入 | 输出 | 关键难点 |
|---|---|---|---|---|
| 视频理解 | Action Recognition | 视频 | 类别 | 短时动作特征 |
| 视频理解 | Temporal Action Detection | 长视频 | 起止时间 + 类别 | 动作边界定位 |
| 视频理解 | Video Captioning | 视频 | 描述文本 | 事件摘要和时序表达 |
| 视频理解 | Video QA | 视频 + 问题 | 答案 | 视觉细节 + 时序推理 |
| 视频理解 | Video Grounding | 视频 + 文本 | 时间段或区域 | 文本事件对齐 |
| 视频理解 | Long Video Understanding | 长视频 | 摘要、检索、问答 | token 压缩和记忆 |
| 视频生成 | Text-to-Video | 文本 | 视频 | 文本对齐和运动合理性 |
| 视频生成 | Image-to-Video | 图像 + 文本 | 视频 | 保持主体一致性 |
| 视频生成 | Video Editing | 视频 + 指令 | 修改后视频 | 局部编辑和身份保持 |
| 视频生成 | Video Prediction | 历史帧 | 未来帧 | 物理和运动建模 |
这些任务不是孤立的。一个视频问答系统可能同时用到动作识别、OCR、ASR、事件检索和语言推理;一个视频生成系统也可能同时用到文本理解、图像条件、运动控制和安全过滤。
视频表示与 token 化¶
视频张量常写成:
其中 \(B\) 是 batch size,\(T\) 是帧数,\(C\) 是通道数,\(H,W\) 是分辨率。
Frame Sampling¶
直接输入所有帧通常不可行。常见采样方式包括:
- uniform sampling:均匀抽帧,简单稳定;
- key frame sampling:选择变化明显或信息密度高的帧;
- adaptive sampling:根据镜头、运动、问题内容动态选帧;
- shot-based sampling:先做镜头切分,再在每个镜头内抽帧。
抽帧越多,信息越完整,但 token 数、attention 成本和显存也会同步增长。
Patch Token 与 Tubelet Token¶
逐帧 patch tokenization 把每一帧切成图像 patch,再把所有帧的 patch 拼起来。tubelet tokenization 则把连续帧中的局部时空块作为 token。
视频 token 数可估算为:
其中 \(p_t,p_h,p_w\) 分别是时间、高度、宽度方向的 patch 或 tubelet 大小。
标准 self-attention 成本为:
这说明视频比图像更容易触发 token 爆炸:帧数翻倍,token 约翻倍;分辨率长宽都翻倍,空间 token 约变成 \(4\) 倍。
PyTorch: Tubelet Embedding¶
下面的简化实现用 Conv3d 把视频切成 tubelet,并投影到隐藏维度:
import torch
import torch.nn as nn
class VideoPatchEmbed(nn.Module):
def __init__(self, in_chans=3, embed_dim=768, tubelet=(2, 16, 16)):
super().__init__()
self.proj = nn.Conv3d(
in_chans,
embed_dim,
kernel_size=tubelet,
stride=tubelet,
)
def forward(self, x):
# x: [B, T, C, H, W]
x = x.permute(0, 2, 1, 3, 4) # [B, C, T, H, W]
x = self.proj(x) # [B, D, T', H', W']
x = x.flatten(2).transpose(1, 2) # [B, N, D]
return x
video = torch.randn(2, 16, 3, 224, 224)
embed = VideoPatchEmbed(tubelet=(2, 16, 16))
tokens = embed(video)
print(tokens.shape)
输出形状是 [B, N, D],其中 \(N=T'\cdot H'\cdot W'\)。真实系统还会加入位置编码、时间编码、mask、resampler 或压缩模块。
视频理解模型演化¶
视频理解模型大致经历了以下路线:
flowchart LR
A[2D CNN Frame Model] --> B[Two-Stream + Optical Flow]
B --> C[3D CNN / I3D]
C --> D[Video Transformer]
D --> E[Masked Video Pretraining]
E --> F[Video-Language Model]
F --> G[Long Video Understanding]
| 阶段 | 核心做法 | 优点 | 局限 |
|---|---|---|---|
| 2D CNN 单帧 | 对每帧做图像识别再聚合 | 复用图像模型 | 时间建模弱 |
| Two-Stream | RGB + Optical Flow | 显式建模运动 | 光流计算成本高 |
| 3D CNN / I3D | 用 3D 卷积建模局部时空 | 局部运动特征强 | 长程依赖有限 |
| Video Transformer | 用 attention 建模时空 token | 长距离建模强 | token 成本高 |
| VideoMAE | 遮蔽视频建模 | 降低标注依赖 | 预训练和下游适配复杂 |
| Video-Language Model | 视频 token 接入 LLM | 支持问答和推理 | token 压缩和对齐困难 |
视频分类可以抽象为:
其中 \(V\) 是视频,\(f_\theta\) 是视频编码器,\(W\) 是分类头。
一个极简分类头如下:
class VideoClassifier(nn.Module):
def __init__(self, encoder, hidden_dim, num_classes):
super().__init__()
self.encoder = encoder
self.head = nn.Linear(hidden_dim, num_classes)
def forward(self, x):
# x: [B, T, C, H, W]
tokens = self.encoder(x) # [B, N, D]
pooled = tokens.mean(dim=1) # [B, D]
logits = self.head(pooled) # [B, num_classes]
return logits
真实视频模型通常不会只做 mean pooling,但这个例子展示了视频理解最基本的数据流:视频 -> token -> 聚合 -> 任务头。
时序建模方法¶
视频比图像难,主要难在时间维度。常见时序建模方式包括:
| 方法 | 思路 | 适用场景 |
|---|---|---|
| Late Fusion | 逐帧编码后池化 | 粗粒度分类、低成本场景 |
| Early Fusion | 早期混合时空信息 | 短视频动作识别 |
| 3D Convolution | 局部时空卷积 | 运动模式明显的任务 |
| Divided Space-Time Attention | 先空间 attention,再时间 attention | 降低完整时空 attention 成本 |
| Factorized Attention | 分解维度或窗口 | 长视频或高分辨率视频 |
| Hierarchical Attention | 局部到全局 | 长视频摘要和检索 |
| Memory / Compression | 保留摘要或检索索引 | 长视频问答 |
分解时空 attention 可以写成两步。
空间 attention 在同一帧内建模对象关系:
时间 attention 在同一空间位置或聚合 token 上建模运动变化:
伪代码如下:
输入: video tokens X with shape [T, S, D]
for each transformer layer:
for each frame t:
X[t, :, :] = spatial_attention(X[t, :, :])
for each spatial position s:
X[:, s, :] = temporal_attention(X[:, s, :])
输出: updated video tokens
这种分解不等价于完整时空 attention,但能显著降低成本,并保留空间和时间两类关系。
视频接入 LLM¶
视频语言模型通常把视频编码成少量 video tokens,再与文本 token 一起输入 LLM。
flowchart LR
A[Video Frames] --> B[Vision Encoder]
B --> C[Temporal Encoder]
C --> D[Resampler]
D --> E[Video Tokens]
F[Question Tokens] --> G[LLM]
E --> G
H[ASR / OCR / Metadata] --> G
G --> I[Answer]
常见组件包括:
- frame encoder:逐帧提取视觉特征;
- temporal encoder:建模帧间关系;
- projector:把视觉维度映射到 LLM hidden size;
- resampler:压缩视觉 token 数;
- Q-Former / Perceiver Resampler:用少量查询 token 聚合视觉信息;
- ASR/OCR/metadata:把语音、字幕、屏幕文字、时间戳作为额外文本证据。
一个极简 projector 如下:
class MeanPoolVideoProjector(nn.Module):
def __init__(self, vision_dim, llm_dim):
super().__init__()
self.proj = nn.Linear(vision_dim, llm_dim)
def forward(self, frame_features):
# frame_features: [B, T, P, Dv]
x = frame_features.mean(dim=2) # [B, T, Dv]
x = self.proj(x) # [B, T, D_llm]
return x
这个例子非常简化。真实模型通常会保留更细粒度的空间 token,并用 resampler 控制 token budget。
视频问答的基本伪代码是:
输入: video, question
frames = sample_frames(video)
visual_tokens = vision_encoder(frames)
video_tokens = temporal_resampler(visual_tokens)
answer = llm.generate([video_tokens, question])
输出: answer
视频生成的基本问题¶
视频生成要同时满足文本对齐、画面质量、运动合理性和帧间一致性。
| 任务 | 条件 | 核心约束 |
|---|---|---|
| Text-to-Video | 文本 | 文本对齐、运动合理性 |
| Image-to-Video | 首帧或参考图 | 主体身份和风格保持 |
| Video-to-Video | 原视频 + 指令 | 局部编辑和时序一致 |
| Motion Transfer | 动作或姿态 | 运动迁移和形变控制 |
| Long Video Generation | 长文本或脚本 | 多镜头、剧情和长期一致性 |
视频 latent 比图像 latent 多一个时间维度:
主流视频生成系统通常在压缩潜空间中联合建模空间和时间,再通过 3D U-Net、时间注意力或 Video DiT 完成去噪。扩散目标、Classifier-Free Guidance (CFG)、DiT 和 Flow Matching 的具体机制见 扩散模型。
在多模态系统中,更需要关注不同条件如何约束视频:文本控制语义,首帧和参考图保持主体与风格,深度、姿态、相机轨迹等信号控制运动。与图像生成相比,视频生成还必须处理闪烁、身份漂移、物体持续性和长期时序一致性;CFG 过强也可能放大过饱和和运动不自然。
数据、训练和评测¶
视频模型难训练,原因不只是数据大。
| 问题 | 具体表现 |
|---|---|
| 文本标注弱 | caption 常描述静态场景,不描述细粒度运动 |
| 多事件 | 长视频包含多个镜头和事件,单句 caption 不够 |
| 数据异质 | 分辨率、帧率、压缩质量差异大 |
| 成本高 | token 数巨大,batch size 受限 |
| 安全风险 | 肖像、隐私、版权、暴力和伪造风险更高 |
| 评测困难 | 自动指标难覆盖真实观感和时序一致性 |
评测方式包括:
| 方向 | 指标或方法 | 关注点 |
|---|---|---|
| 视频理解 | accuracy、mAP、tIoU、QA accuracy | 分类、定位、问答 |
| 视频生成 | FVD、CLIPScore、human preference | 质量和文本相关性 |
| 一致性 | temporal consistency、identity consistency | 抖动和身份漂移 |
| 安全 | red teaming、watermark、policy eval | 滥用风险 |
FVD 的直觉是在视频特征空间比较真实视频和生成视频分布的距离。它有参考价值,但不能替代人工偏好评测。
长视频理解¶
长视频不能直接把所有帧丢进模型。更常见的做法是检索、摘要和分层记忆。
flowchart TD
A[Long Video] --> B[Shot Segmentation]
B --> C[Key Frame Sampling]
B --> D[ASR / OCR]
C --> E[Visual Embedding Index]
D --> F[Text Index]
G[User Question] --> H[Retriever]
E --> H
F --> H
H --> I[Selected Evidence]
I --> J[LLM Reasoning]
J --> K[Answer with Timestamp]
长视频问答伪代码:
输入: long_video, question
shots = segment_video(long_video)
keyframes = sample_keyframes(shots)
visual_index = build_visual_index(keyframes)
text_index = build_text_index(asr_and_ocr(long_video))
evidence = retrieve(question, visual_index, text_index)
answer = llm.reason(question, evidence)
输出: answer with timestamps
面试中如果被要求设计长视频问答系统,应强调:先检索证据,再让 LLM 推理;不要直接把所有帧送入上下文。
视频面试高频问题¶
| 问题 | 回答要点 |
|---|---|
| 视频理解和图像理解最大的区别是什么? | 视频多了时间维度,需要建模运动、事件顺序、状态变化和长期一致性。图像模型可以只看空间结构,视频模型还要判断“何时发生”和“如何变化”。 |
| 为什么视频 token 容易爆炸? | token 数随帧数和空间 patch 数共同增长,\(N=\frac{T}{p_t}\frac{H}{p_h}\frac{W}{p_w}\)。标准 attention 又是 \(O(N^2)\),所以帧数和分辨率都会迅速放大成本。 |
| 3D CNN 和 Video Transformer 的区别是什么? | 3D CNN 用局部时空卷积捕获短期运动,归纳偏置强但长程依赖弱。Video Transformer 用 attention 建模全局关系,扩展性强但 token 成本更高。 |
| TimeSformer 的 divided attention 为什么能降成本? | 它把完整时空 attention 分解为空间 attention 和时间 attention,避免所有时空 token 两两交互,在保留主要关系的同时降低复杂度。 |
| 视频接入 LLM 常见结构是什么? | 常见结构是 frame/video encoder 提取视觉特征,projector 或 resampler 压缩并映射到 LLM 维度,再和问题 token 一起输入 LLM。ASR、OCR、字幕也常作为文本证据加入。 |
| 长视频问答为什么不能直接把所有帧输入模型? | 帧数太多会导致 token 和 KV Cache 成本爆炸,而且很多帧和问题无关。更合理的方案是镜头切分、关键帧抽取、ASR/OCR 建索引,再检索相关证据。 |
| 视频生成为什么容易出现闪烁? | 模型如果逐帧或弱时序建模,邻近帧可能在纹理、身份、光照上不一致。需要 temporal attention、3D U-Net、视频 latent 或一致性约束改善。 |
| Text-to-Video 和 Image-to-Video 的约束有什么不同? | Text-to-Video 主要受文本语义约束,生成空间更大;Image-to-Video 有首帧或参考图约束,需要保持主体身份、风格和场景一致。 |
| Video Diffusion 和 Image Diffusion 的核心差异是什么? | Video Diffusion 的 latent 多了时间维度,去噪网络要同时建模空间和时间,还要保持帧间一致性和运动合理性。 |
| Video DiT 相比 3D U-Net 的优势和代价是什么? | Video DiT 更接近 Transformer scaling 路线,适合大规模 token 建模;代价是 attention 成本高,对数据、算力和训练稳定性要求更高。 |
| CFG 在视频生成中有什么副作用? | guidance scale 过大可能提升文本相关性,但会降低多样性,放大过饱和、闪烁、运动僵硬和身份漂移。 |
| 如何评价一个视频生成模型? | 需要同时看视觉质量、文本对齐、运动合理性、时序一致性、主体保持和安全性。FVD、CLIPScore 有用,但人类偏好和任务评测不可替代。 |
| 视频数据清洗要注意什么? | 要处理低清晰度、重复视频、弱 caption、镜头切换、版权、人物隐私、暴力和评测污染。对生成模型还要关注运动描述是否足够细。 |
| 视频模型有哪些安全风险? | 包括深度伪造、肖像滥用、隐私泄露、版权侵权、暴力色情内容生成,以及图片或视频中的视觉提示注入。 |
| 如何设计一个视频问答系统? | 先抽帧和切镜头,再提取视觉、ASR、OCR、字幕特征,建立检索索引;查询时召回相关片段,带时间戳交给 LLM 推理,并输出证据位置。 |
常见误区¶
| 误区 | 更准确的理解 |
|---|---|
| 视频就是多帧图像 | 视频还需要运动、事件、时间顺序和长期一致性 |
| 抽更多帧一定更好 | 帧数增加会造成 token 和 attention 成本暴涨 |
| 图像 VLM 加帧采样就是视频模型 | 还需要时序建模、时间对齐和长视频压缩 |
| 视频生成只要每帧好看就行 | 帧间一致性、运动合理性和主体保持同样重要 |
| FVD 低就代表模型一定好 | 自动指标不能完全替代人工偏好和任务评测 |
与其他章节的关系¶
视频是多模态模型的重要分支。视频生成通常依赖 扩散模型、DiT 或 Flow Matching。视频 token 建模和长上下文成本与 Transformer 模型 和高效架构紧密相关。
传统视频理解基础可参考 视频理解。
参考资料¶
- Two-Stream Convolutional Networks for Action Recognition in Videos
- Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset
- Is Space-Time Attention All You Need for Video Understanding?
- ViViT: A Video Vision Transformer
- VideoMAE: Masked Autoencoders are Data-Efficient Learners for Self-Supervised Video Pre-Training
- Video-LLaVA: Learning United Visual Representation by Alignment Before Projection
- Video Diffusion Models
- Stable Video Diffusion
- VideoPoet: A Large Language Model for Zero-Shot Video Generation
- Scalable Diffusion Models with Transformers