Course progress Course outline 34 of 34 lessons available
Part 0 — Get the map
Part 1 — Why a small objective can learn to see
- 05 Chapter 4 — Video can set its own homework available now
- 06 Chapter 5 — Keep the meaning; do not repaint every pixel available now
- 07 Chapter 6 — Match the cards, but do not leave every card blank available now
- 08 Chapter 7 — SIGReg checks a cloud by looking at its shadows available now
- 09 Chapter 8 — The whole LeVJEPA objective on one line available now
Part 2 — Send a video through one encoder
- 10 Chapter 9 — How global and local views are paired available now
- 11 Chapter 10 — Cut a video into space-time tiles available now
- 12 Chapter 11 — One encoder, one projector, one summary card available now
- 13 Chapter 12 — One complete trip through the model Current lesson
- 14 Chapter 13 — Why throwing away 95% can help available now
- 15 Chapter 14 — Same-frame teamwork, no peeking into tomorrow available now
- 16 Chapter 15 — RoPE, single-frame tubelets, and unexpectedly useful patch features available now
Part 3 — Read the experiments, not just the headline
- 17 Chapter 16 — What the four ablation ladders actually test available now
- 18 Chapter 17 — Equal epochs are not equal bills available now
- 19 Chapter 18 — What ImageNet, K400, and SSv2 are really asking available now
- 20 Chapter 19 — Keep the paper’s results in a ledger available now
- 21 Chapter 20 — Claims the evidence does not yet earn available now
Part 4 — From the official repository to your own experiment
- 22 Chapter 21 — A map of the official repository available now
- 23 Chapter 22 — Ten long walks become a training set available now
- 24 Chapter 23 — Read the defaults, then start training available now
- 25 Chapter 24 — Run a smoke test that cannot flatter you available now
- 26 Chapter 25 — Skip training: extract features from the public checkpoint available now
- 27 Chapter 26 — Freeze the encoder and test your own videos available now
Part 5 — Put the representation back on the world-model road
Appendices — A backpack for the trail
Follow one batch all the way around
- Many windows1 global + V local
- Keep 5%sample sparse clues
- Encode togetherread `[CLS]`
- Score twicematch + spread
- Update both sidesgradients everywhere
A camera crew films one match as a wide shot and several close-ups. The machine samples a handful of visual scraps from each, then writes a summary. One marker checks that all summaries describe the same match. Another checks that summaries across many matches do not repeat one sentence. Both sets of corrections travel backward—even the wide card can change. Nothing carries a “do not edit” stamp.
Station-by-station ledger
Here is the paper architecture in the order the official code runs it. Always state V: controlled paper settings commonly use V=4; the public Walking Tours default uses V=10.
| Station | Global view | Each local view | Note |
|---|---|---|---|
| Input | 16×224×224 | 16×96×96 | same time interval |
| Patch tokens before dropping | 3136 | 576 | 16×14×14; 16×6×6 |
| After 95% dropping | 157 | 29 | code keeps round(N×0.05) |
After [CLS] | 158 | 30 | [CLS] is never dropped |
| Encoder summary | [B,1,d] | combined as [B,V,d] | local views are folded into the batch |
| Projector output | [B,V+1,256] | same tensor | summaries concatenate before projection |
The code broadcasts the global embedding against all V+1 embeddings and averages squared error; the global-against-itself term is zero. SIGReg rearranges the tensor to [view, batch, 256] and examines the batch distribution one view at a time. The objective is MSE + 0.02 × SIGReg. Both global and local gradients update the shared encoder and projector.
That ends the training graph. There is no training target encoder, masked-query predictor, or stop-gradient.
Separately, the implementation maintains Polyak weights with decay 0.9999, updated every 32 optimizer steps, and saves them for evaluation. This copy makes no forward pass and no target. After pretraining, the projector is removed; reported evaluation and released weights use the encoder’s EMA copy.
Sanity-check a tiny batch
Let B=2 and V=4. There are 2×5=10 view summaries; projection yields [2,5,256]. At optimizer step 31, the every-32-step EMA has not reached its next update point. Draw no arrow from EMA into either loss.
Forward-pass records
- LeVJEPA v1: Figure 1 and objective
- Appendix B: EMA used only for evaluation checkpoints
- Pinned complete multiview forward pass
- Pinned config: views, projector, EMA, and loss
The trip in three lines
- After 95% dropping, global/local views retain 157/29 patch tokens, then each receives
[CLS]. - Invariance and SIGReg share
[B,V+1,256]; gradients reach global and local paths. - The
0.9999, every-32-step EMA is only for evaluation, never a target encoder.
Trace test
- How many patch tokens does the 224 global view have before dropping?
- Is the global summary stopped?
- Does the EMA copy participate in a training forward pass?
Answers
- 3136, or
16 × 14 × 14. - No. Gradients flow through both sides.
- No. Its weights are periodically averaged and saved for evaluation.