CoolFace
Modelpublic

anonymousML123/factorjepa-pretrain-vjepa21-vitg-5ep

sourceHugging Faceapache-2.0updated 5mo agoView on Hugging Face
0likes
Model Card

factorjepa-pretrain-vjepa21-vitg-5ep

FactorJEPA β€” V-JEPA 2.1 ViT-G continual-pretrained on Indian-context urban driving / walking / monument clips.

This is a `pretrain` checkpoint from the FactorJEPA pipeline, a sequential SSL composition that aims to prove vjepa_surgery >> vjepa_pretrain >> vjepa_frozen on motion / temporal features for Indian urban video.

🎯 Training summary

FieldValue
Base model`facebook/v-jepa-2-vitg`
Stagepretrain
ArchitectureV-JEPA 2.1 ViT-G (1664-dim, 48 layers, dense predictive L1 loss)
Training data9,297 Indian-context clips (data/eval_10k_local)
Epochs5.0
Steps1010
Clips seen32,320
Batch size32
Final LR1e-05
Final val JEPA loss0.4717116095125675
Best probe top-10.808
Drift control Ξ»0.0
Final encoder drift β€–Ξ”β€–/β€–initβ€–reported in training log (e.g., 2.46 % for the iter13 5-epoch run)

πŸ“ˆ Training trajectory (initial β†’ final, from probe_history.jsonl)

MetricDescriptionInitialFinalΞ”
probe_top1motion-flow 16-class probe top-10.4390.808+84.1% πŸ“ˆ
motion_cosintra-vs-inter motion cosine0.04610.2672+479.7% πŸ“ˆ
val_jepa_lossvalidation JEPA loss (L1)0.47260.4584-3.0% πŸ“‰
future_l1future-frame L1 (per clip)0.53580.5592+4.4% πŸ“ˆ
block_drift_meanmean per-block weight drift0.004320.01601+270.6% πŸ“ˆ

(10 checkpoints across training.)

πŸš€ Usage

Download the encoder weights

python
from huggingface_hub import hf_hub_download
ckpt_path = hf_hub_download(
    repo_id="anonymousML123/factorjepa-pretrain-vjepa21-vitg-5ep",
    filename="student_encoder.pt",
)
print("Downloaded to:", ckpt_path)

Load weights into V-JEPA 2.1 ViT-G

python
import torch
from utils.vjepa2_imports import get_vit_by_arch

state = torch.load(ckpt_path, map_location="cpu", weights_only=False)
encoder = get_vit_by_arch("vit_giant_xformers_rope")
encoder.load_state_dict(state, strict=False)
encoder.eval().to("cuda")

Use as init for downstream surgery / probe training

bash
python -u src/m09c_surgery.py --FULL \
    --train-config configs/train/surgery_3stage_DI_iter14.yaml \
    --init-from-ckpt $(python -c "from huggingface_hub import hf_hub_download; print(hf_hub_download('anonymousML123/factorjepa-pretrain-vjepa21-vitg-5ep', 'student_encoder.pt'))") \
    --no-wandb

πŸ“¦ Files in this repo

FileSizePurpose
student_encoder.pt~7 GBInference-ready ViT-G encoder weights β€” use for surgery init / m09c `--init-from-ckpt`
m09a_ckpt_best.pt~14 GBBest-val ckpt w/ optimizer + predictor β€” required for `probe_eval.sh` Stage 8 `future_mse`
motion_aux_head.pt~2 MBMotion auxiliary head (paired with student_encoder)
training_summary.json~2 KBFinal-step metrics
probe_history.jsonl~few KB/stepPer-checkpoint probe + drift metrics
loss_log.{jsonl,csv}~several KBPer-step JEPA loss trajectory
*.png / *.pdf~few MBTraining trajectory plots (loss, drift, probe trio)

πŸ§ͺ Reproducibility

This checkpoint was produced by:

bash
CACHE_POLICY_ALL=2 ./scripts/run_probe_train.sh pretrain --FULL \
    2>&1 | tee logs/pretrain_full.log

Pipeline source: iter/iter14_surgery_on_pretrain/plan_HIGH_LEVEL.md

πŸ“ Citation

bibtex
@misc{factorjepa2026,
  title  = {FactorJEPA: Factor-disentangled SSL for Indian-context urban video},
  author = {Wanaskar, Kapil and others},
  year   = {2026},
  note   = {HF model card auto-generated by src/utils/hf_finetuned_push.py}
}

Model card auto-generated by `src/utils/hf_finetuned_push.py` at 2026-05-07T20:12:52+00:00.