Joint Embedding Predictive Architecture (JEPA)
联合嵌入预测架构(JEPA)通过根据图像或视频的可见部分,预测隐藏部分的嵌入来进行学习。
联合嵌入预测架构(JEPA)是一种自监督学习设计,其中网络通过根据输入中可见部分预测隐藏部分的抽象表示来学习。给定一张部分区域被遮蔽的图像,JEPA 会预测这些区域的嵌入,而不是重建其像素,因此训练信号集中在物体形状和布局等可预测的语义内容上,并跳过叶片纹理或传感器噪声等不可预测的细节。Yann LeCun 在 2022 年的立场论文 A Path Towards Autonomous Machine Intelligence 中提出该架构,作为世界模型的构建模块;Meta 的 I-JEPA 和 V-JEPA 模型则将其应用于图像和视频。
JEPA 的工作原理#
JEPA 包含三个网络。上下文编码器通常是视觉 Transformer(ViT),用于嵌入可见图像块。目标编码器会嵌入完整输入,其在隐藏位置上的嵌入将用作目标。预测器是一个更窄的 Transformer,它接收上下文嵌入和标记各个目标位置的掩码 token,并输出对目标嵌入的估计。损失函数是预测目标嵌入与实际目标嵌入之间的平均 L2 距离,只有上下文编码器和预测器会接收梯度。在 I-JEPA 中,每张训练图像会产生四个目标块,每个目标块覆盖图像的 15–20%,以及一个覆盖 85–100% 图像的上下文块;与目标块重叠的部分会被移除,因此模型必须根据稀疏上下文推断大块语义区域。
避免表示坍塌#
预测嵌入提供了一条捷径:如果两个编码器对每个输入都输出同一个常量向量,预测就会完美且损失为零;这种失效称为表征坍塌。I-JEPA 和 V-JEPA 通过非对称设计来避免这种情况。梯度不会流入目标编码器;相反,目标编码器的权重会跟踪上下文编码器权重的指数移动平均(EMA),在 I-JEPA 训练期间,动量从 0.996 开始线性升至 1.0。同样的 EMA 更新也使 YOLO26 在 Ultralytics 中的训练更加平稳;训练器会以逐步升至 0.9999 的衰减系数维护模型权重的移动平均,并将这个平均后的副本保存为检查点。LeJEPA,由 Randall Balestriero 和 LeCun 于 2025 年发表,以名为 SIGReg 的正则化器取代 EMA 教师和停止梯度操作;SIGReg 会推动嵌入趋向各向同性高斯分布。
下面的 PyTorch 循环会在合成向量上训练一个小型 JEPA,其中上下文视图和目标视图共享一个隐藏的 8 维成因。
import copy
import torch
from torch import nn
torch.manual_seed(0)
latent = torch.randn(512, 8) # hidden cause shared by both views
x, y = latent @ torch.randn(8, 64), latent @ torch.randn(8, 64) # context view x, target view y
encoder = nn.Sequential(nn.Linear(64, 128), nn.ReLU(), nn.Linear(128, 32))
target_encoder = copy.deepcopy(encoder).requires_grad_(False) # updated only by EMA
predictor = nn.Linear(32, 32)
optimizer = torch.optim.Adam([*encoder.parameters(), *predictor.parameters()], lr=1e-3)
for step in range(1, 501):
# Predict the target embedding from the context embedding; raw inputs are never reconstructed
loss = nn.functional.mse_loss(predictor(encoder(x)), target_encoder(y))
optimizer.zero_grad()
loss.backward()
optimizer.step()
with torch.no_grad(): # EMA update of the target encoder with momentum 0.996
for target_param, param in zip(target_encoder.parameters(), encoder.parameters()):
target_param.lerp_(param, 0.004)
if step in {1, 500}:
print(f"step {step}: latent loss {loss.item():.4f}, target embedding std {target_encoder(y).std(0).mean():.3f}")它会输出 step 1: latent loss 0.5372, target embedding std 0.547 和 step 500: latent loss 0.0060, target embedding std 0.595。嵌入空间中的预测误差下降了约 90 倍,而目标嵌入的离散程度保持稳定,因此损失降低了,嵌入并没有坍塌成常量。
JEPA 与相关方法#
- 掩码自编码器(MAE): 以相同方式遮蔽图像块并重建缺失像素,因此会将模型容量用于低级细节。JEPA 则在表示空间中预测缺失内容。
- 对比学习: 将同一图像的两个增强视图的嵌入拉近,并推远其他图像的嵌入,因此需要负样本以及裁剪、颜色抖动等人工设计的数据增强。I-JEPA 两者都不需要。
- 自蒸馏方法(例如 DINO): 同样会训练学生模型来匹配 EMA 教师的输出,使同一图像不同增强裁剪视图的嵌入保持一致。JEPA 则根据一个区域预测另一个区域的嵌入,从而学习空间和时间结构。
- 生成式世界模型: 像视频生成器那样,在像素空间中预测未来帧。JEPA 世界模型会预测未来嵌入,并能直接在潜在空间中规划。
JEPA 模型#
- I-JEPA(2023): 该图像模型使用 16 张 A100 GPU,在不到 72 小时内以 ImageNet 数据训练了 ViT-Huge/14;其特征无需人工设计的数据增强,即可迁移到线性分类、物体计数和深度预测任务。
- V-JEPA(2024): 该模型使用 200 万个视频训练,唯一目标是特征预测。其最大模型 ViT-H/16 在保持冻结的情况下,在 Kinetics-400 上达到 81.9%,在 Something-Something v2 上达到 72.2%,在 ImageNet-1k 上达到 77.9%。
- V-JEPA 2(2025): 该模型使用超过 100 万小时的互联网视频进行预训练,在 Something-Something v2 上达到 77.3% 的 top-1 准确率,在 Epic-Kitchens-100 动作预测任务上达到 39.7 的 recall-at-5。其动作条件变体 V-JEPA 2-AC 使用 DROID 数据集中的不到 62 小时无标注机器人视频进行后训练,随后通过朝图像目标规划,在两个实验室中用 Franka 机械臂以零样本方式拾取和放置物体。










