GitHub ↗
CHAPTER 07 OF 10
🤖

V-JEPA 2 — Scale and Action (2025)

V-JEPA 2 — 1.2B 파라미터와 로봇 제어

2025년 6월 11일 Meta가 공개. arXiv 2506.09985. 1.2B 파라미터, 100만 시간 이상의 인터넷 비디오로 사전학습. V-JEPA 2-AC 변형은 DROID 데이터 62시간 미만으로 액션 조건화, Franka 로봇 zero-shot pick-and-place 65-80%. 단순 비디오 모델에서 'World Model'로의 본격 진입.

V-JEPA 2 — Scale and Action (2025) cheatsheet
🍌 NANO BANANA CHEATSHEET · CH 07

Overview

개관

2025년 6월 11일. arXiv 2506.09985. V-JEPA 2 발표. 이 논문이 JEPA 시리즈의 가장 큰 도약이다 — "비디오 SSL 모델"에서 "실전 World Model"로의 진입.

이번 장은 V-JEPA 2의 정확한 사실(스케일·결과)과 그 의미를 본다. 특히 "zero-shot"의 정확한 의미를 두 번 강조 — Meta의 마케팅과 학술적 사실을 구분해야 한다.

🎯 Learning Goals
  • V-JEPA 2의 정확한 스케일(파라미터·데이터 시간)을 외운다
  • Action-conditioned 변형(V-JEPA 2-AC)의 학습 방법과 'zero-shot'의 정확한 의미를 안다
  • Franka 로봇 결과(65-80%)의 정확한 의미와 caveat을 안다
  • 왜 이 결과가 'World Model'의 첫 데모로 의미 있는지 이해한다
  • 벤치마크 결과(SSv2 77.3%, Epic-Kitchens R@5 39.7%)의 의미를 안다

Sections

본문

7.1 스케일 — 1.2B 파라미터 + 100만 시간 비디오

V-JEPA 2의 핵심 스케일 (검증된 사실):

- 파라미터 수: 1.2 billion - 사전학습 데이터: 100만 시간 이상의 인터넷 비디오 + 100만 장 이미지 - 데이터셋 이름: VideoMix22M

의미: - 1.2B는 GPT-2(1.5B)와 비슷한 스케일. 비디오 모델로는 매우 큼 - 100만 시간 비디오 = 약 115년치. 한 사람 평생을 훨씬 넘는 시각 경험 - 이미지 + 비디오 혼합 학습 — 정적 이미지의 풍부한 다양성과 비디오의 시간적 정보 모두 활용

왜 스케일이 결정적인가: V-JEPA(2024)는 ViT-H/16(~600M) 정도였다. V-JEPA 2는 2배. 그리고 데이터가 10배 이상. "World Model은 충분한 스케일이 있어야 의미 있다"의 첫 검증.

출처: arXiv 2506.09985, Meta AI 블로그 https://ai.meta.com/blog/v-jepa-2-world-model-benchmarks/, Meta 연구 페이지 https://ai.meta.com/research/vjepa/

7.2 V-JEPA 2-AC — 액션 조건화로 진짜 World Model

V-JEPA 2는 두 단계로 학습된다.

단계 1 — Pretraining: 1.2B 파라미터 V-JEPA를 100만 시간+ 비디오로 self-supervised로 학습. 이 단계는 "비디오 표현 학습".

단계 2 — Action-conditioned post-training: 그 위에 "액션 조건"을 추가한다. 모델 이름이 V-JEPA 2-AC(AC = action-conditioned).

Post-training의 정확한 디테일 (verified): - 데이터: DROID 데이터셋의 62시간 미만의 unlabeled 로봇 비디오만 - 추가 모듈: 300M 파라미터의 block-causal action transformer - 입력 형식: 7차원 end-effector 상태(로봇 손 위치·자세) + 4초 클립 + 256×256 해상도 @ 4fps

왜 "action-conditioned"가 큰 변화인가? V-JEPA(6장)는 "비디오의 다음 부분을 예측"만 했다. 즉 "세상이 알아서 흘러간다"는 가정. V-JEPA 2-AC는 "내가 이런 행동(action)을 하면 다음에 어떻게 될까"를 학습. 이게 진정한 World Model의 정의 — 4장에서 본 LeCun 6모듈의 World Model 모듈이 정확히 "상태 + 행동 → 다음 상태".

출처: arXiv 2506.09985, Meta 블로그 (검증됨).

7.3 Franka 로봇 zero-shot — 65-80%의 정확한 의미

V-JEPA 2의 가장 화제 된 결과: Franka Emika Panda 로봇 팔에서 zero-shot pick-and-place 65-80%. 이 결과의 정확한 의미를 풀어쓰면.

실험 설정 (verified): - 환경: 두 곳의 새로운 실험실의 Franka Emika Panda 로봇 팔. 둘 다 V-JEPA 2가 학습 중에 본 적 없는 환경. - 그 환경에서 데이터 수집·태스크별 학습·보상 없음 - 입력: image goal (도달해야 할 목표 상태의 이미지) - 태스크: pick-and-place (집어서 다른 위치에 놓기), reach (특정 위치에 손 보내기)

결과: - Reach: ~100% - Pick-and-place 컵(cup): ~80% - Pick-and-place 박스(box): ~65%

"Zero-shot"의 정확한 의미 (이 caveat이 본 코스의 가장 중요한 주의): → "새로운 환경에 환경별 데이터 없이 작동"의 의미이며, V-JEPA 2-AC 자체는 DROID 62시간으로 post-trained된 모델이다. → 즉 "DROID로 학습한 모델이 다른 실험실의 Franka에 일반화"이지, "완전히 처음 보는 로봇"이 아니다. → 65%는 "box" 객체 평균이며 "flawless"가 아니다.

이 nuance를 정확히 전달하지 않고 "V-JEPA 2가 zero-shot으로 로봇을 한다!"라고만 하면 학술적 부정확. 마케팅 프레이밍과 학술 보고는 다르다.

출처: arXiv 2506.09985, Meta 블로그 verbatim '62 hours of robot data', '65% – 80%'.

7.4 그 외 벤치마크 결과

V-JEPA 2의 다른 검증된 벤치마크 결과:

Motion understanding: - Something-Something v2: 77.3% top-1 (이전 SOTA 갱신) - 후속 V-JEPA 2.1: 77.7%로 추가 갱신

Human action anticipation: - Epic-Kitchens-100: 39.7 recall-at-5 (ViT-g384, 1B 파라미터) - "이전 태스크별 모델을 능가"

의미: - SSv2는 V-JEPA(72.2%) → V-JEPA 2(77.3%)로 5%p 향상. SSL 모델로 비디오 분류의 새 SOTA. - Epic-Kitchens R@5 39.7%는 "몇 초 뒤 사람이 어떤 행동을 할까"를 예측하는 anticipation 벤치. World Model의 핵심 능력. - 두 벤치 모두 task-specific 학습 없이 frozen evaluation으로 달성 — JEPA 표현의 일반성을 보여줌.

출처: arXiv 2506.09985 초록 verbatim.

7.5 V-JEPA 2가 의미하는 것 — 그리고 한계

의미: 1. World Model의 첫 실전 데모. 단순 비디오 분류가 아니라 로봇이 새 환경에서 실제 행동. 2. "임베딩 공간 예측"이 실제로 작동. 픽셀 안 만들고도 행동 결정 가능. 3. Scale이 의미 있음. V-JEPA(600M) → V-JEPA 2(1.2B)에서 질적 점프.

그러나 한계 — Meta 자신이 인정 (verified): - 인간이 쉽게 풀 수 있는 "물리 추론" 벤치마크(IntPhys 2, MVPBench, CausalVQA) 에서 인간 85-95%, V-JEPA 2 포함 모델들은 chance 수준에 가까움. (자세한 건 8장) - 65-80%는 "완벽"이 아님. 35%는 실패. - 환경 일반화는 "실험실 Franka 두 곳"으로 제한된 평가. 산업 환경의 robustness는 미검증.

JEPA 시리즈에서의 위치: V-JEPA 2가 "World Model이 정말 가능한가"의 첫 양성 신호. 그러나 인간 수준은 멀었고, V-JEPA 3나 후속 모델이 어디까지 갈지가 본 분야의 가장 큰 관심사. 이게 9장 "논쟁"과 10장 "다른 학파"의 컨텍스트.

💡 Analogy · 비유
운전 시뮬레이터에서 실전 운전으로

운전을 배우려는 사람이 두 단계를 거친다.

단계 1 — 시뮬레이터: 수많은 운전 영상을 보고 "길이 굽으면 차도 따라가야 한다", "앞 차가 가까우면 브레이크" 같은 일반적 "세상의 작동 방식"을 학습. 자기 행동을 시뮬레이터가 받아주진 않음. 그냥 보면서 배움.

단계 2 — 시뮬레이터 + 조작: 핸들·페달이 추가된 시뮬레이터로 "내가 핸들을 돌리면 차가 어떻게 움직이는가"를 학습.

단계 1이 V-JEPA의 학습이고, 단계 2가 V-JEPA 2-AC의 post-training. 그 다음 진짜 차를 처음 운전했는데 50미터 안에 사고 없이 출구를 빠져나간다면 — 그게 zero-shot 적용이다.

V-JEPA 2의 65-80%는 "진짜 차로 처음 운전, 65-80%의 경우 출구를 잘 빠져나갔다"는 의미. 인상적이지만 100%는 아니다. 그리고 그 시뮬레이터(DROID)에서 학습했기 때문에 100% "처음"은 아님 — 이 nuance가 중요. 그러나 단계 2까지 가능했다는 자체가 World Model이 실전에 가까워졌다는 신호다.

V-JEPA 2-AC의 핵심 아이디어 — 비디오 표현 학습 + action transformer post-training — 의 의사 코드. 실제 학습은 거대하지만 구조는 단순.

python
import torch
import torch.nn as nn

# Stage 1: V-JEPA pre-training (Chapter 6's V-JEPA, scaled up to 1.2B)
class VJEPA(nn.Module):
    def __init__(self, num_params='1.2B'):
        super().__init__()
        self.context_encoder = ViT_H_16_video()      # ~1.2B params
        self.target_encoder = ViT_H_16_video()       # EMA copy
        self.predictor = ViT_predictor()

    def pretrain(self, video_dataset):
        # 100M+ hours of internet video, spatio-temporal masking
        for video in video_dataset:
            loss = vjepa_step(video, self.context_encoder,
                              self.target_encoder, self.predictor)
            backprop(loss)

# Stage 2: V-JEPA 2-AC (Action-Conditioned)
class VJEPA2AC(nn.Module):
    def __init__(self, pretrained_vjepa):
        super().__init__()
        # Frozen pre-trained encoder
        self.encoder = pretrained_vjepa.context_encoder
        for p in self.encoder.parameters():
            p.requires_grad = False

        # 300M block-causal action transformer
        self.action_transformer = nn.Transformer(
            d_model=1024, num_heads=16, num_layers=24
        )
        # 7-D end-effector state input
        self.state_embed = nn.Linear(7, 1024)

    def predict_next(self, current_video, current_state, action):
        """Given (video, state, action) → predict embedding of next state."""
        s = self.encoder(current_video)        # frozen visual encoder
        state_token = self.state_embed(current_state)
        action_token = self.embed_action(action)
        # Block-causal: can attend to past but not future
        seq = torch.cat([s, state_token, action_token], dim=1)
        next_state_embed = self.action_transformer(seq)
        return next_state_embed

    def train_droid(self, droid_subset_62h):
        # Less than 62 hours of unlabeled robot videos from DROID
        for video, state_seq in droid_subset_62h:
            for t in range(len(state_seq) - 1):
                pred = self.predict_next(
                    video[t], state_seq[t], action=infer_action(state_seq[t], state_seq[t+1])
                )
                target = self.encoder(video[t+1]).detach()
                loss = ((pred - target) ** 2).mean()
                backprop(loss)

# Stage 3: Zero-shot deployment on a new Franka arm
def zero_shot_pick_and_place(model, current_obs, goal_image):
    goal_embed = model.encoder(goal_image)
    for step in range(MAX_STEPS):
        # Sample candidate actions, pick the one that reaches the goal
        candidates = sample_actions()
        scored = [(a, distance(
            model.predict_next(current_obs, get_state(), a), goal_embed
        )) for a in candidates]
        best = min(scored, key=lambda x: x[1])[0]
        execute(best)

세 단계가 V-JEPA 2의 흐름. (1) 비디오 100만 시간으로 일반 시각 표현 학습. (2) DROID 62시간으로 action transformer post-training — 이 단계가 '내가 행동하면 어떻게 될까'를 모형에 추가. (3) 새 Franka에서 zero-shot — goal_image로 목표 임베딩을 만들고, 후보 action을 시뮬레이션해서 "가장 goal에 가까운" action을 실행. 이게 LeCun 6모듈에서 World Model + Cost + Actor의 조합.

🏭 현업에서의 평가
V-JEPA 2의 정확한 결과·정확한 zero-shot 정의를 구분할 수 있느냐가 학술적 정직성의 기준.

✅ 시니어가 보는 것

  • 1.2B 파라미터·100만+ 시간 비디오·VideoMix22M 즉답
  • V-JEPA 2-AC의 학습 데이터(DROID 62h)와 action transformer(300M) 디테일
  • 'Zero-shot 65-80%'의 정확한 의미와 nuance
  • SSv2 77.3%, Epic-K R@5 39.7%의 의미

⚠️ 레드 플래그

  • 'V-JEPA 2는 zero-shot으로 모든 로봇을 한다'의 과장
  • DROID post-training을 모르고 "완전 zero-shot"이라고 말함
  • 65-80%를 'flawless'로 표현
  • Meta 마케팅과 학술 사실을 구분 못 함

🎤 예상 인터뷰 질문

  1. V-JEPA 2의 'zero-shot'이 정확히 무엇을 의미하는지 풀어 설명해 주세요
  2. V-JEPA 2-AC의 학습 데이터와 변형은?
  3. 65-80%의 결과를 객관적으로 평가하면?
숙달 vs 익숙함: Familiar는 'V-JEPA 2가 로봇 zero-shot을 한다'를 안다. Mastery는 1.2B 파라미터·62시간 DROID post-training·65-80%의 nuance·마케팅 vs 학술 구분을 정확히 풀어낸다.

Key Takeaways

핵심 정리

V-JEPA 2 기본정보

arXiv 2506.09985, 2025-06-11. Meta FAIR.

1.2B 파라미터

GPT-2급 스케일. 비디오 모델 최대.

100만+ 시간 비디오

VideoMix22M. 사람 평생 시각의 100배.

V-JEPA 2-AC

Action-conditioned. World Model 정의 충족.

DROID 62h post-training

이게 'zero-shot'의 nuance.

Franka 65-80%

Cup ~80%, box ~65%. Reach 100%.

SSv2 77.3% (SOTA)

후속 V-JEPA 2.1: 77.7%.

마케팅 vs 학술

'Zero-shot' 표현은 환경 기준임을 명시.