Update card to iter-5800 (2xH100 DDP resume) + refreshed eval
Browse files
README.md
CHANGED
|
@@ -11,8 +11,8 @@ tags:
|
|
| 11 |
# CAC β from-scratch V-JEPA 2-AC predictor
|
| 12 |
|
| 13 |
A from-scratch reproduction of Meta's V-JEPA 2-AC action-conditioned predictor,
|
| 14 |
-
trained on
|
| 15 |
-
|
| 16 |
(torch.hub) for the encoder.
|
| 17 |
|
| 18 |
## Architecture
|
|
@@ -24,14 +24,17 @@ action + state token conditioning (7-dim each). Identical to the shipped AC.
|
|
| 24 |
|
| 25 |
## Training (this snapshot)
|
| 26 |
|
| 27 |
-
- **
|
| 28 |
-
|
| 29 |
-
bf16, `torch.compile`.
|
| 30 |
- Loss: L1 teacher-forcing + 2-step autoregressive rollout (faithful port of
|
| 31 |
Meta's `app/vjepa_droid/train.py`).
|
| 32 |
- Data: ~51,000 DROID left-cam episodes (~58 h footage β essentially the full
|
| 33 |
DROID 1.0.1 raw corpus), 8 frames @ 4 fps, 256 px; first 240 held out for eval.
|
| 34 |
-
- Hardware: 1Γ H100 80GB
|
|
|
|
|
|
|
|
|
|
| 35 |
|
| 36 |
## Evaluation (240 held-out DROID episodes, frozen ViT-g)
|
| 37 |
|
|
@@ -39,18 +42,19 @@ Two metrics, vs Meta's shipped V-JEPA 2-AC on the same set:
|
|
| 39 |
|
| 40 |
| metric | CAC (this) | V-JEPA 2-AC |
|
| 41 |
|---|---|---|
|
| 42 |
-
| prediction cosine | **0.
|
| 43 |
-
| CEM plan L2 β true action | 0.
|
| 44 |
-
| cos(plan, true action) | +0.
|
| 45 |
-
| CEM beats random |
|
| 46 |
|
| 47 |
CAC **beats** AC on prediction cosine (the encoder-dominated metric, where the
|
| 48 |
-
~51k-episode data scale helps).
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
|
|
|
| 54 |
|
| 55 |
## File
|
| 56 |
|
|
|
|
| 11 |
# CAC β from-scratch V-JEPA 2-AC predictor
|
| 12 |
|
| 13 |
A from-scratch reproduction of Meta's V-JEPA 2-AC action-conditioned predictor,
|
| 14 |
+
trained on H100s. This repo holds only the trained **predictor**; the frozen
|
| 15 |
+
V-JEPA 2 ViT-g encoder is not included β use Meta's `vjepa2_ac_vit_giant`
|
| 16 |
(torch.hub) for the encoder.
|
| 17 |
|
| 18 |
## Architecture
|
|
|
|
| 24 |
|
| 25 |
## Training (this snapshot)
|
| 26 |
|
| 27 |
+
- **5,800 iterations** (toward Meta's 94,500-iter recipe; a training snapshot,
|
| 28 |
+
not the finished run), effective batch 256, LR 7.5e-5 β 4.25e-4 β 0 (WSD,
|
| 29 |
+
scheduled over the full 94.5k horizon), AdamW wd 0.04, bf16, `torch.compile`.
|
| 30 |
- Loss: L1 teacher-forcing + 2-step autoregressive rollout (faithful port of
|
| 31 |
Meta's `app/vjepa_droid/train.py`).
|
| 32 |
- Data: ~51,000 DROID left-cam episodes (~58 h footage β essentially the full
|
| 33 |
DROID 1.0.1 raw corpus), 8 frames @ 4 fps, 256 px; first 240 held out for eval.
|
| 34 |
+
- Hardware: 1Γ H100 80GB to iter 2,800, then resumed 2,800 β 5,800 on **2Γ H100
|
| 35 |
+
DDP** (5.82 s/iter, 1.98Γ single-GPU β near-linear over NVLink). Resume was
|
| 36 |
+
seamless: no loss spike across the boundary, the WSD LR schedule continued on
|
| 37 |
+
the 94.5k horizon, and val cosine ticked 0.818 β 0.823.
|
| 38 |
|
| 39 |
## Evaluation (240 held-out DROID episodes, frozen ViT-g)
|
| 40 |
|
|
|
|
| 42 |
|
| 43 |
| metric | CAC (this) | V-JEPA 2-AC |
|
| 44 |
|---|---|---|
|
| 45 |
+
| prediction cosine | **0.789** | 0.766 |
|
| 46 |
+
| CEM plan L2 β true action | 0.048 | **0.043** |
|
| 47 |
+
| cos(plan, true action) | +0.54 | **+0.66** |
|
| 48 |
+
| CEM beats random | 85% | **94%** |
|
| 49 |
|
| 50 |
CAC **beats** AC on prediction cosine (the encoder-dominated metric, where the
|
| 51 |
+
~51k-episode data scale helps). On planning, CAC's plan L2 (0.048) is now **on
|
| 52 |
+
par** with AC (0.043); direction still lags (+0.54 vs +0.66) β the axis bound by
|
| 53 |
+
iter count, and Meta trained ~16Γ longer. Open-loop L1 prediction now **beats a
|
| 54 |
+
static baseline at every horizon** (the undertrained iter-2,750 snapshot could
|
| 55 |
+
not), CAC points the right direction on 82% of episodes, and its CEM plan beats
|
| 56 |
+
a random action on 85%. Prediction cosine is a lenient metric; planning quality
|
| 57 |
+
is the real test.
|
| 58 |
|
| 59 |
## File
|
| 60 |
|