视觉特征-自监督-掩码特征预测【2025-06】:V-JEPA-2 Stage 1【当前世界应该怎样表示?】【利用Multi-Block Mask从海量视频中学习世界表征】【训练数据:视频、图片】
第一章 从整体视角理解 V-JEPA 2 Stage 1第1节 V-JEPA 2 为什么先做 Representation LearningV-JEPA 2 的整体训练过程可以理解为两个大的阶段:Stage1:RepresentationLearning→Stage2:DynamicsLearning\boxed{\text{Stage 1:Representation Learning}\rightarrow\text{Stage 2:Dynamics Learning}}Stage1:RepresentationLearning→Stage2:DynamicsLearning​其中第一阶段训练 V-JEPA 2,第二阶段训练 V-JEPA 2-AC。第一阶段并不使用机器人动作,也不要求模型直接学会控制机器人,而是先利用互联网规模的视频和图像建立一个好的视觉表征空间(Visual Representation Space)。所谓“表征”,可以先简单理解成:把复杂的 RGB 图像或视频转换成神经网络更容易理解、比较和预测的一组数字。假设一张 RGB 图像是xtx_txt​,Encoder 是EEE,那么:zt=E(xt)z_t=E(x_t)zt​=E(xt​)其中ztz_tzt​就是这张图像在神经网络内部的潜在视觉表示(Latent Visual Representation)。因此第一阶段真正要解决的问题不是:如何精确生成下一帧RGB像素?\text{如何精确生成下一帧RGB像素?}如何精确生成下一帧RGB像素?而是:如何建立一种能够描述物体、场景、运动和时空关系的视觉表示?\boxed{\text{如何建立一种能够描述物体、场景、运动和时空关系的视觉表示?}}如何建立一种能够描述物体、场景、运动和时空关系的视觉表示?​可以用一个类比理解。高中物理在研究运动以前,需要先定义:位置;速度;时间;坐标系。如果连“状态应该怎样表示”都没有定义好,就很难进一步讨论动力学。V-JEPA 2 Stage 1 的作用类似于:先学习神经网络自己的“世界状态坐标系”。Stage 2 才会在这个坐标系里面学习:当前状态→未来状态\text{当前状态}\rightarrow\text{未来状态}当前状态→未来状态以及加入 Action 后的:当前状态+动作→未来状态\text{当前状态}+\text{动作}\rightarrow\text{未来状态}当前状态+动作→未来状态整个逻辑可以表示为:Internet Videos + ImagesStage 1V-JEPA 2 PretrainingLearned Visual RepresentationV-JEPA 2 EncoderFreeze EncoderStage 2Dynamics Learning因此,理解 V-JEPA 2 时最重要的第一句话就是:Stage1主要学习“世界应该怎样表示”,而不是直接学习机器人控制。\boxed{\text{Stage 1 主要学习“世界应该怎样表示”,而不是直接学习机器人控制。}}Stage1主要学习“世界应该怎样表示”,而不是直接学习机器人控制。​第2节 整体 Stage 1/Stage 2 与 Primary/Cooldown 不要混淆论文整体训练包含:Stage 1:V-JEPA 2 Pretraining Stage 2:V-JEPA 2-AC Post-training但是 V-JEPA 2 Stage 1 自己内部又存在两个训练时期:Stage 1:V-JEPA 2 Pretraining │ ├── Primary Phase │ └── Cooldown Phase因此不能把:Primary Phase;Cooldown Phase;V-JEPA 2-AC;理解成三个同级模型阶段。Primary 和 Cooldown 都在训练同一个 V-JEPA 2 表征模型,只是输入视频长度、空间分辨率以及学习率调度发生变化。论文主要设置可以概括为:参数Primary PhaseCooldown PhaseFrames1664FPS44Crop Size256256 / 384 / 512Global Batch Size30723072Weight Decay0.040.04EMA0.999250.99925Tubelet Size22Patch Size1616Spatial Mask Scale[0.15, 0.7][0.15, 0.7]Temporal Mask Scale[1.0, 1.0][1.0, 1.0]Mask Aspect Ratio[0.75, 1.5][0.75, 1.5]可以简单理解成:Primary Phase: 短一些的视频 + 较低空间分辨率 ↓ 先把主体能力训练出来 ↓ Cooldown Phase: 更长视频 + 可选更高空间分辨率因此本文提到的 Stage 1 始终指完整的:V-JEPA2Pretraining\boxed{\text{V-JEPA 2 Pretraining}}V-JEPA2Pretraining​第二章 Stage 1 到底使用什么训练数据第1节 论文严格条件下的 VideoMix22MV-JEPA 2 Stage 1 使用的大规模预训练集合称为VideoMix22M(VM22M)。它并不是纯视频数据,而是由四类视频数据与 ImageNet 图像混合构成。论文给出的主要构成为:数据集数量类型采样权重Something-Something v2168KEgo Video0.056Kinetics733KExo Video0.188HowTo100M1.1MExo Video0.318YT-Temporal-1B19MExo Video0.188ImageNet1MImage0.250总样本规模约为 2200 万,视频覆盖超过百万小时量级。因此严格论文 Stage 1 数据条件可以写成:Large-ScaleVideos+Images\boxed{\text{Large-Scale Videos}+\text{Images}}Large-ScaleVideos+Images​这里完全没有:Robot Action;End-Effector State;Reward;Robot Task Label。因此 Stage 1 天生属于无动作预训练(Action-Free Pretraining)。第2节 ImageNet 图片为什么也能和视频一起训练图片只有一个时间点,而 V-JEPA 2 输入通常是一段视频。论文采用一个非常简单的办法:在时间维度重复同一张 ImageNet 图片。例如一张图片xxx可以构造成:x1=x2=⋯=x16=xx_1=x_2=\cdots=x_{16}=xx1​=x2​=⋯=x16​=x因此模型看到的是:Frame 1 = Image A Frame 2 = Image A Frame 3 = Image A ... Frame 16 = Image A它虽然没有真实运动,但仍然可以提供大量:物体外观;空间结构;场景;纹理;语义;方面的信息。所以 Stage 1 是在视频运动信息和高质量静态视觉信息之间进行联合表征学习。第3节 如果自己的数据只有视频还能不能训练可以。假设自己的数据只是:video_0001.mp4 video_0002.mp4 video_0003.mp4 ...没有任何人工标签,也完全没有 Action。依然可以做:V-JEPA2Stage1Self-SupervisedPretraining\boxed{\text{V-JEPA 2 Stage 1 Self-Supervised Pretraining}}V-JEPA2Stage1Self-SupervisedPretraining​因为 Stage 1 的监督信息来自视频本身。但是需要区分两个概念:第一,算法是否成立?答案:成立\boxed{\text{成立}}成立​第二,是否严格复现论文 VM22M 数据分布?答案:不是\boxed{\text{不是}}不是​所以更准确的说法应该是:使用 V-JEPA 2 Stage 1 方法在自己的 Video-Only 数据集上进行自监督预训练。第三章 视频如何进入 V-JEPA 2第1节 为什么不能直接把每个像素作为 Transformer Token假设视频有 16 帧,每帧:256×256256\times256256×256如果每个像素都是一个 token,那么光一帧就有:256×256=65536256\times256=65536256×256=65536个位置。16 帧就会达到:16×65536=104857616\times65536=104857616×65536=1048576个位置。这对 Transformer 的 Self-Attention 来说计算量太大。所以 ViT 类方法通常先把图像切成 patch。V-JEPA 2 进一步把视频切成时空管块(Spatiotemporal Tubelet)。第2节 2×16×16Tubelet是什么意思论文使用:2×16×16\boxed{2\times16\times16}2×16×16​的 Tubelet。三个数字分别对应:Time×Height×Width\boxed{\text{Time}\times\text{Height}\times\text{Width}}Time×Height×Width​即一个 token 覆盖:连续 2 帧;高 16 pixels;宽 16 pixels。假设输入:16×256×25616\times256\times25616×256×256那么时间方向:16/2=816/2=816/2=8高度方向:256/16=16256/16=16256/16=16宽度方向:256/16=16256/16=16256/16=16所以整个视频最终得到:8×16×16=20488\times16\times16=20488×16×16=2048个时空 token。16 Frames256 × 256Tubelet Size2 × 16 × 16