The machine in three parts
Lesson 1 made the case for predicting representations. Now open the machine. A JEPA has three components, and their asymmetry is the whole design.
- The context encoder. Takes the visible part of the input (the unmasked patches) and produces embeddings. This is the network you actually care about, the one you keep and use for downstream tasks.
- The target encoder. Takes the full input and produces embeddings for the masked regions. These are the prediction targets. Crucially, it is not trained by gradient descent.
- The predictor. A smaller network that takes the context embedding plus a specification of where the target sits (positional information about the masked region) and outputs a guess at the target's embedding.
The loss is simple: the distance (typically L2) between the predictor's output and the target encoder's output, computed in embedding space, not pixel space. There is no decoder anywhere.
That positional conditioning matters. The predictor is not asked "what is somewhere in this image?" but "what is at this specific location?" Without it, the task would be ill-posed, and the model could not learn spatial structure. It is what turns the objective into a genuine prediction problem about a particular region rather than vague summarization.

