Model reference · open weights

LeVJEPA-VideoMix-Large

Embeddings galilai-group Image embed 1 build Non-commercial 915 dl/mo

LeVJEPA-VideoMix-Large is an open-weight embedding model from galilai-group. LeVJEPA-VideoMix-Large (FP32) weighs 606 MB; the smallest configuration that runs it is RTX 3060 12 GB.

For self-hosting, compare this build's requirements below with the GPU you plan to rent.

  • LeVJEPA-VideoMix-Large is a 303M parameter ViT-L/16 video encoder developed by galilai-group for image and video feature extraction.
  • It was trained self-supervised on the VideoMix dataset using a multi-crop prediction objective combined with SIGReg, without any labels.
  • The model processes 16-frame clips at 224 pixels and is released under the cc-by-nc-4.0 license.

Summary of the galilai-group/LeVJEPA-VideoMix-Large model card, 2026-10-01

What it is

Released bygalilai-group
Released2026-08-27
Parameters303M
VRAM606 MB for the weights

What it runs on

Memory and cards for LeVJEPA-VideoMix-Large (FP32)

606 MBweights, file size
1.1 GBruntime overhead
CardRunsMemory
RTX 3060 12 GBfits11.6 GB
RTX 4060 Ti 16 GBfits15.4 GB
RTX 3090 24 GBfits23.4 GB
RTX 4090 24 GBfits23.4 GB
RTX 5090 32 GBfits31.0 GB
L40S 48 GBfits44.0 GB
A100 80 GBfits78.2 GB
H100 80 GBfits78.1 GB
RTX PRO 6000 Blackwell 96 GBfits93.8 GB
DGX Spark (GB10) 128 GB unifiedfits107 GB
H200 141 GBfits138 GB
B200 180 GBfits176 GB

From the model card

What galilai-group says about LeVJEPA-VideoMix-Large

Read the model card

A ViT-L/16 video encoder trained with LeV-JEPA, a self-supervised objective combining a multi-crop prediction loss with SIGReg. No labels are used at any point.

  • 303.1M parameters, 224px, patch 16, 16 frames, tubelet 1 (one token per frame per patch)
  • RoPE position encoding, block-causal attention
  • Trained on VideoMix: 1,806,869 clips from Kinetics-710, Something-Something v2, Walking Tours and PE-Video

Usage

import torch
from transformers import AutoModel

model = AutoModel.from_pretrained(
    "galilai-group/LeVJEPA-VideoMix-Large", trust_remote_code=True
).eval()

# (B, C, T, H, W), ImageNet-normalised
video = torch.randn(1, 3, 16, 224, 224)

with torch.no_grad():
    out = model(pixel_values=video)

out.last_hidden_state   # (1, 3137, 1024) -- CLS + 16*14*14 patch tokens
out["pooler_output"]    # (1, 1024)       -- the CLS token

trust_remote_code=True is required: this is a custom architecture (RoPE + block-causal attention) rather than a stock transformers model, so the modeling code ships with the weights.

Preprocessing

Normalise with the ImageNet statistics used in training — mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225] — and resize/crop to 224. Frames are sampled at roughly 7.5 fps in training, so a 16-frame clip covers about two seconds.

For a single image, repeat it along the temporal axis:

image = torch.randn(1, 3, 224, 224)
video = image.unsqueeze(2).repeat(1, 1, 16, 1, 1)

Attention mode

The weights were trained with block-causal attention: bidirectional within a temporal slot, causal across slots, with CLS as a read-only sink that sees the whole clip while no patch attends to it. config.attn_mode defaults to "block_causal" for this reason.

Running these weights under full attention will not raise an error — it will quietly return worse features. Leave attn_mode alone unless you know why you are changing it. An explicit attention mask also disqualifies SDPA's flash kernel, so expect higher memory than a full-attention ViT-L at the same batch size.

Weights

The released tensors are the EMA copy of the encoder (decay=0.9999, update_every=32), which is what we evaluate. There is no separate LR-decay artifact to apply — the cosine leg is already baked into these weights.

Training details

Objectivemulti-crop prediction + SIGReg (weight 0.02)
Crops1 global + 10 local
Token drop95%, random, applied inside the encoder forward (training only)
OptimizerAdamW, lr 4e-4 flat then 1-sqrt → 0, weight decay 0.04
Batch3072 global
Precisionbf16-mixed

Token dropping is a training-time regulariser and is inert under eval(), so the released model returns all 3137 tokens.

Intended use

Frozen feature extraction for video and image understanding — attentive or linear probing, retrieval, and as a backbone for downstream heads. It is a self-supervised encoder with no classification head.

Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.

© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms