一句话定位
V-JEPA(Video Joint-Embedding Predictive Architecture)是 Meta FAIR 把 i-jepa 的「在特征空间预测被 mask 区域」范式从图像扩展到视频的标志性自监督工作:一个 ViT 编码器 + 一个窄 predictor,被训练成「从可见时空区域 $x$ 的表征去预测被遮挡区域 $y$ 的表征」,没有像素解码器、没有文本、没有负样本、没有预训练图像编码器、没有像素重建,靠 EMA target encoder + stop-gradient + L1 回归防坍缩。仅用 200 万条公开视频(VideoMix2M)、9 万步训练,冻结主干 + 轻量 attentive probe 就能在动作 / 运动 / 检测 / 图像分类上全面超越同期视频自监督方法——最大的 ViT-H/16₃₈₄ 在 Kinetics-400 拿 81.9%、Something-Something-v2 拿 72.2%、ImageNet-1K 拿 77.9%(论文摘要口径),且样本效率比像素方法高一个数量级、比 OpenCLIP 高两个数量级。Meta 把它定位为「一个早期的物理世界模型」,通往 LeCun 的 AMI 路线。
背景与定位
自监督表征学习长期存在两条路线:像素重建(masked autoencoding,如 MAE / VideoMAE / OmniMAE / Hiera)与特征预测 / 联合嵌入(BYOL / data2vec / i-jepa)。前者要花大量容量去重建低层像素细节,后者可以在 latent 空间「丢弃不可预测 / 无关的像素细节」(论文引 Vondrick 2016)。JEPA(Joint-Embedding Predictive Architecture,LeCun 2022)把「siamese 编码器 + predictor」组合,先在音频(data2vec)、图像(i-jepa、DINOv2 谱系)成功,V-JEPA 是把它系统性地搬到视频、并用一整套现代工具(ViT、masked modeling、cross-attention 池化、更大数据)重做的答卷。
论文提出一个简单问题:「用现代工具,特征预测作为独立的视频无监督学习目标到底有多有效?」 与像素预测(VideoMAE 系)相比,V-JEPA 想证明的是:不重建像素也能学到既懂外观(Kinetics-400,很多类别看物体就能猜)又懂运动(Something-Something-v2,类别与物体外观解耦、必须理解时序)的通用表征,而且训练更快、更省标注。它是 dino-wm 等「拿冻结视觉特征做 latent world model / 规划」路线的直接上游之一。官方博客把 predictor 明确称作「一个早期的 physical world model」,下一步指向规划与决策。
范式命名:video feature-prediction / non-generative latent-space masked modeling(JEPA)。发布 = 2024-02-15 博客 + CC BY-NC 权重开源;论文 arXiv:2404.08471。
模型架构
三个组件(Figure 2/3):x-encoder(context encoder)$E_\theta$、predictor $P_\phi$、y-encoder(target encoder)$\bar E_\theta$(是 x-encoder 的 EMA 副本,不回传梯度)。
- Backbone:标准 ViT(无 [cls] token)。训练三种编码器:ViT-L/16₂₂₄(200M 参数)、ViT-H/16₂₂₄(630M)、ViT-H/16₃₈₄(630M,输入分辨率 384)。predictor 对三者统一是窄 ViT:12 层、embed dim 384,self-attention head 数与对应 backbone 保持一致。
- Tokenizer(3D patchify):输入 clip 16 帧、temporal stride 4(跨约 64 帧,论文称平均约 3 秒),resize 到 16×224×224×3。用一个 3D 卷积($d$ 个 2×16×16 的 filter,temporal stride 2、spatial stride 16)→ 8×14×14×$d$ → 加 绝对 3D sin-cos 位置编码 → flatten 成长度 L=1568 的 token 序列。即每个 token = 一个 16×16 像素块 × 2 帧的时空 patch(tubelet size 2)。
- Action / 条件:V-JEPA 是纯观测自监督,无动作条件;predictor 唯一的”条件变量 $z$“是被 mask 区域的 3D 时空位置——mask token = 一个共享可学习向量 + 该位置的 3D sin-cos 位置编码,告诉 predictor「要预测视频里哪个时空坐标」。
- Memory / consistency(防坍缩):目标由 y-encoder 给出并做 stop-gradient,y-encoder 权重 = x-encoder 的 EMA(Polyak 平均,momentum 0.998→1.0)。这是 BYOL 式的 EMA+stop-grad+predictor 三件套。论文给了一个简单的理论说明:在 L1 下最优 predictor 输出条件中位数,编码器梯度正比于 MAD(中位绝对偏差),要最小化就必须让编码器尽量多地捕获视频信息,从而避免常数坍缩。
- Loss:$\text{Loss}=\frac1M\sum_{k}\lVert \hat s_k - s_k\rVert_1$,即 predictor 对每个被 mask patch 的输出与 y-encoder 目标之间的平均 L1 距离。论文特别指出把 i-jepa 的 L2 换成 L1 更稳定。
- Masked targets 的”上下文化”:mask 施加在 x-encoder 的输入端(丢 token),但 y-encoder 处理完整未 mask clip、再在输出端取被 mask 位置的表征作为目标(contextualized targets,承 data2vec)。
数据
-
VideoMix2M ≈ 200 万条视频,全部来自公开数据集:HowTo100M (HT) + Kinetics-400/600/700 (合称 K710) + Something-Something-v2 (SSv2),并移除与 K400/600/700 及 SSv2 验证集的重叠。纯无监督——预训练代码忽略任何类别标签。
-
数据配比 / 规模消融(Table 2,ViT-L/16,90K 步、bs 3072、冻结 attentive probe 单中心视图):跨任务平均随数据量单调上升,但单任务最优要各自挑数据源——
数据 样本 K400 SSv2 IN1K Avg K710 700K 75.8 63.2 73.7 70.9 K710+SSv2 900K 72.9 67.4 72.8 71.0 K710+HT 1900K 74.5 64.2 74.8 71.1 VideoMix2M 2000K 73.7 66.2 74.8 71.5 L/16 的 K400 最优其实在纯 K710、SSv2 最优在 K710+SSv2、IN1K 最优在 K710+HT;平均最优才是全量 VideoMix2M。ViT-H/16 同样:K710+SSv2 的 K400 更高(75.7 vs 74.0),但平均最优在 VideoMix2M(72.8)。
-
样本效率(Table 16):V-JEPA ViT-H/16₃₈₄ 全程只「看过」2.1 亿(210M)样本,对比 OpenCLIP ViT-G/14(LAION-2B)390 亿、DINOv2 ViT-g/14(LVD-142M)19 亿、VideoMAEv2 ViT-g/14 16 亿——少一个数量级(对图像 SSL),少两个数量级(对 OpenCLIP)。ViT-L/16 在 90K 步内处理 2.7 亿 clip 样本。
-
数据增强:horizontal flip、random_resize_scale (0.3,1.0)、random_resize_aspect_ratio (0.75,1.35)。
-
无仿真数据、无动作标注、无跨具身(这是表征学习工作,不是机器人策略)。
Masking(multi-block 3D,平均遮挡率 ~90%):每个 clip 采两种 mask 并做 multi-mask 训练——
- short-range:8 个随机块的并集,每块空间尺度 0.15(各覆盖每帧 ~15%);
- long-range:2 个随机块的并集,空间尺度 0.7(各覆盖每帧 ~70%);
- 所有块 aspect ratio ∈ (0.75, 1.5),块沿整个时间维拉通(tube 状),以抑制视频时空冗余带来的信息泄漏,使预测任务更难。
- multi-mask:一个 clip 采 2 个不同 mask,x-encoder/predictor 各前向一次,但 y-representation 只算一次以摊薄目标计算成本。
训练方法
- 目标:单一特征预测目标(式 1/2),无多阶段、无 RL、无蒸馏、无判别式对比。端到端同时训练 x-encoder + predictor,y-encoder 走 EMA 更新。
- 优化器:AdamW。batch size 3072(ViT-L/16、ViT-H/16₂₂₄)/ 2400(ViT-H/16₃₈₄)。总 90,000 步。
- 学习率:前 12,000 步线性 warmup 2e-4 → 6.25e-4,之后 cosine 衰减到 1e-6。
- weight decay:线性 0.04 → 0.4。
- EMA momentum:线性 0.998 → 1.0。
- schedule 截断技巧:lr / wd / EMA 的调度都按 112,500 步(即实际训练的 1.25 倍)来计算,但只训 90,000 步——作者发现默认调度最后 25% 更新过猛,直接截断反而更好。
- 精度:bfloat16。
下游评测协议(不改主干)——attentive probing:冻结 backbone,学一个带可学习 query token 的 cross-attention 层,输出经残差连回 query → 2 层 MLP(单 GeLU)→ LayerNorm → 线性分类器。这是把非归一化的 JEPA 表征用起来的关键:Table 3 显示对 ViT-L/16,attentive pooling 相对 average pooling 在 K400 +17.3、SSv2 +16.1(K400 56.7→73.7,SSv2 50.1→66.2)。也做全量 fine-tuning 对照。
Infra(训练 / 推理工程)
- 加速器:A100 80G(论文 Table 8 仅披露卡型 + bfloat16);GPU 数量与 GPU-hours 未披露。
- 并行 / 框架:官方 PyTorch 代码,分布式用 submitit + SLURM;预训练/评测入口
app/main_distributed.py、evals/main_distributed.py,训练循环只允许出现在app/vjepa。conda py3.9。 - 训练效率对照(Figure 5):wallclock 在单卡 bs=10、按全局 bs=2400 线性外推,V-JEPA 相对大型像素预测模型约 2× 加速;博客口径「训练 / 样本效率高 1.5×–6×」(源于在 latent 空间丢弃不可预测信息)。
- 推理:作为表征模型,无 FPS / control-Hz / latency 指标;下游是「冻结主干 + 轻量 probe」,官方强调 frozen evaluation 的快与省。边缘硬件 / 实时控制指标未披露。
- 可视化管线:为「看懂 predictor 预测了什么」,冻结 encoder+predictor,另训一个条件扩散 decoder 把预测的特征映射回像素(decoder 只拿被 mask 区域的预测表征,看不到未 mask 区域)。
评测 benchmark
(frozen = 冻结主干 + attentive probe;视频任务用多空间/时间视图,K400 16×8×3、SSv2 16×2×3)
特征预测 vs 像素预测(Table 1,ViT-L/16,90K、bs 3072,单中心视图 / K400 微调):feature 全面 ≥ pixel——Frozen K400 68.6→73.7、SSv2 66.0→66.2、IN1K 73.3→74.8;Fine-tune K400 85.4→85.6。
Mask 策略消融(Table 4,ViT-L/16 on K710+SSv2,单中心):
| Masking | K400 | SSv2 | IN1K |
|---|---|---|---|
| random-tube[0.9] | 51.5 | 46.4 | 55.6 |
| causal multi-block[6] | 61.3 | 49.8 | 66.9 |
| causal multi-block[12] | 71.9 | 63.6 | 72.2 |
| multi-block | 72.9 | 67.4 | 72.8 |
随机 tube(哪怕遮 90%)配特征预测目标学到的语义很差;把大连续块沿全时间拉通的 multi-block 最好。附录另有 26 组 ViT-B/16 消融,结论:高空间+高时间遮挡率、多块优于单大块、每 clip 采 2 个 mask 优于 1 个。
对比像素预测方法(Table 5,同架构 ViT-L/16 或 Hiera-L;frozen att pooling + fine-tuning):
| 方法 | 样本 | 步数 | K400 | SSv2 | AVA | IN1K | Places | iNat | FT-K400 | FT-SSv2 |
|---|---|---|---|---|---|---|---|---|---|---|
| OmniMAE | 2400M | 1170K | 65.6 | 60.6 | 14.4 | 75.1 | 59.8 | 66.1 | 84.0 | 74.2 |
| VideoMAE | 410M | 400K | 77.8 | 65.5 | 21.6 | 71.1 | 59.3 | 64.6 | 85.4 | 74.3 |
| Hiera-L | 770M | 1500K | 75.5 | 64.2 | 15.8 | 68.9 | 58.5 | 56.9 | 87.3 | 75.1 |
| V-JEPA | 270M | 90K | 80.8 | 69.5 | 25.6 | 74.8 | 60.3 | 67.8 | 85.6 | 75.1 |
冻结评测 V-JEPA 除 ImageNet(74.8 vs OmniMAE 直接在 IN 上训的 75.1)外全胜;fine-tuning 是所有 ViT-L 里最好、SSv2 追平带层级先验的 Hiera-L——且预训练样本量最少(2.7 亿 vs 4.1亿–24亿)。
对比 SOTA(Table 6,frozen att probe):
| 方法 | 架构 | 参数 | 数据 | K400 | SSv2 | AVA | IN1K | Places | iNat |
|---|---|---|---|---|---|---|---|---|---|
| I-JEPA | ViT-H/16₅₁₂ | 630M | IN22K | 79.7 | 50.0 | 19.8 | 84.4 | 66.5 | 85.7 |
| OpenCLIP | ViT-G/14 | 1800M | LAION | 81.8 | 34.8 | 23.2 | 85.3 | 70.2 | 83.6 |
| DINOv2 | ViT-g/14 | 1100M | LVD-142M | 83.4 | 50.6 | 24.3 | 86.2 | 68.4 | 88.8 |
| VideoMAE | ViT-H/16 | 630M | K400 | 79.8 | 66.2 | 20.7 | 72.3 | 59.1 | 65.5 |
| Hiera-H | Hiera-H | 670M | K400 | 77.0 | 64.7 | 17.5 | 71.4 | 59.5 | 61.7 |
| V-JEPA | ViT-L/16 | 200M | VideoMix2M | 80.8 | 69.5 | 25.6 | 74.8 | 60.3 | 67.8 |
| V-JEPA | ViT-H/16 | 630M | VideoMix2M | 82.0 | 71.4 | 25.8 | 75.9 | 61.7 | 67.9 |
| V-JEPA | ViT-H/16₃₈₄ | 630M | VideoMix2M | 81.9 | 72.2 | 25.0 | 77.4 | 62.8 | 72.6 |
- 对视频基线:H/16 在 SSv2 至少 +5、K400 +2、AVA +5、IN1K +1、Places +2、iNat +0.2 全面领先,且约 2× wallclock 提速。
- 对图像基线:在需要运动理解的 SSv2 上 +21 分碾压 DINOv2/OpenCLIP/I-JEPA;在偏外观的 K400、ImageNet 上缩小与图像模型的差距(IN1K 单层 att probe 77.4,双层 att probe 可到 77.9)。摘要口径 = ViT-H/16 K400 81.9 / SSv2 72.2 / IN1K 77.9。
低样本标注效率(Table 7,probe 只用 5/10/50% 标注,各 3 split):
| 方法 | 架构 | K400 5/10/50% | SSv2 5/10/50% |
|---|---|---|---|
| MVD | ViT-L/16 | 62.6 / 68.3 / 77.2 | 42.9 / 49.5 / 61.0 |
| VideoMAE | ViT-H/16 | 62.3 / 68.5 / 78.2 | 41.4 / 48.1 / 60.5 |
| VideoMAEv2 | ViT-g/14 | 37.0 / 48.8 / 67.8 | 28.0 / 37.3 / 54.0 |
| V-JEPA | ViT-H/16 | 67.0 / 72.1 / 80.2 | 51.9 / 57.5 / 67.3 |
| V-JEPA | ViT-H/16₃₈₄ | 68.2 / 72.8 / 80.6 | 54.0 / 59.3 / 67.9 |
标注减少 10×(K400 从 ~287→29 例/类)时 V-JEPA 只掉 12%,而 VideoMAEv2 掉 30%、VideoMAE 掉 15.9%、MVD 掉 14.6%——越缺标注、V-JEPA 优势越大。
predictor 定性(第 6 节):扩散 decoder 可视化显示预测特征与未 mask 区域时空一致、能表达位置不确定性、并展现一定的物体恒常性(部分遮挡后物体保持一致),佐证「predictor 学到了世界模型式的语义」而非逐像素记忆。
创新点与影响
- 贡献:首次证明纯特征预测(不重建像素、不用文本/负样本/预训练图像编码器)作为独立目标能在视频上学出既懂外观又懂运动的通用表征,把 i-jepa 的 latent-masked-prediction 成功推广到时空域,并配一套「multi-block 3D 遮挡 + attentive probe + L1/EMA 防坍缩」的现代配方。
- 改变了什么:给出「视频自监督 ≠ 必须像素重建」的强证据;确立 JEPA 作为「非生成式世界模型」路线的视频里程碑(下游催生 dino-wm 等冻结特征做规划、以及后续 V-JEPA 2 的动作条件世界模型);用 2.1 亿样本 / 9 万步就打平甚至超越数十亿样本的像素/图文模型,重塑了「表征质量 vs 计算/数据」的性价比认知。首个在视频上真正擅长 frozen evaluation 的模型。CC BY-NC 开源三档权重 + attentive probe。
- 作者自陈的局限:① 预训练视频数据多样性不足(相对 internet 级图像数据),导致在 ImageNet 等纯外观任务上仍落后 DINOv2/OpenCLIP,呼吁社区建更多样的公开视频集;② 时间尺度短(几秒、最多 ~10 秒),长时程预测/规划待解;③ 仅视觉,音频等多模态是明显下一步;④ 目前是感知,把 predictor/world-model 用于规划与序贯决策仍是 future work。
原始链接
- 论文 arXiv:2404.08471:https://arxiv.org/abs/2404.08471 (官方 publication 页:https://ai.meta.com/research/publications/revisiting-feature-prediction-for-learning-visual-representations-from-video/ )
- 官方博客(2024-02-15):https://ai.meta.com/blog/v-jepa-yann-lecun-ai-model-video-joint-embedding-predictive-architecture/
- 代码(PyTorch,含 Model Zoo / 三档 checkpoint + probe):https://github.com/facebookresearch/jepa
一手源存档(sources/)
- v-jepa—blog — Meta AI 官方博客快照(sources/world-model/2024/v-jepa—blog.md)
- v-jepa—github-readme — facebookresearch/jepa README 快照,含 Model Zoo 与各 benchmark probe 精度(sources/world-model/2024/v-jepa—github-readme.md)
- 论文全文见 arXiv HTML/PDF(arXiv:2404.08471,原文不入 git)