Action-conditioned JEPA future predictor (optional action_dim) - #195
Action-conditioned JEPA future predictor (optional action_dim)#195ShauryaVM wants to merge 2 commits into
Conversation
Zero-init Delta-JEPA style: when action_dim is set, actions modulate the future feature forecast; at init the residual is a no-op so history-only behaviour is unchanged. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Under the contribution standard proposed in #198, I consider this PR AI slop in its current form. It adds an architecture and API without wiring them into the training loop or reporting any trained JEPA result or model-performance evaluation. This is not ready for review; please provide the required real-world validation before resubmitting. |
AutoE2E teacher-forces trajectory_target into predict_future when action_dim is set; train_il grows an opt-in flag. The A/B JSON reports containment at init and a trained residual, not an API-only smoke. Co-authored-by: Cursor <cursoragent@cursor.com>
|
The action residual is now in the training loop, not just the WAM API.
A/B on a Combined mock batch, 12 AdamW steps, CPU (JSON:
Containment holds: at init, matched vs shuffled actions are byte-identical (pred L1 = 0, JEPA 0.0982 both). After those 12 steps I am not claiming a KITScenes JEPA win — future frames in this batch are random, so shuffled actions barely change reconstruction. The number that matters for landing the wiring is: the residual is a no-op until trained, then the train loop actually uses the plan. Same CLI on a packed partition: How I tested: |
Small wedge toward an action-sensitive world model.
FutureFeatureMapPredictor/WorldActionModelnow take an optionalaction_dim. When set, actions are projected into the same seed space as the history and added as a residual (Delta-JEPA style). The action projection is zero-initialised, so at init the forecast matches the history-only path for any action — same containment idea as the reasoning coupling gate.Default construction is unchanged (
action_dim=None). Opt in viaworld_model_kwargs={"action_dim": 2}(or whatever control dim you use) and passactions=intopredict_future/forward.How I tested
pytest Model/tests/test_world_action_model.py(23 passed), including zero-init no-op and post-open sensitivity checksMade with Cursor