Reproduce TS-JEPA (Ennadir et al., 2025) on the paper's own benchmark dataset. This is the first task of Phase 0 — a technical feasibility check before any FX-specific work.
Why this is an issue, not just a task
If reproduction takes > 2 weeks, we need to decide: contact authors, pivot to MTS-JEPA, or implement JEPA masking from scratch using V-JEPA codebase. That is a tracked decision, not a silent implementation detail.
Acceptance criteria
TS-JEPA code located and reviewed (GitHub link recorded in comment)
Paper's benchmark result reproduced within ±10% of reported metric
Python environment documented in model/requirements.txt
Reproduction run recorded in experiments/ with git tag exp/YYYYMMDD-tsjepa-paper-reproduction
Time-box
2 weeks from start. If not achieved:
Comment here with what was attempted and where it failed
Contact TS-JEPA / MTS-JEPA authors (preprint authors are typically responsive)
If still blocked after 3 weeks: open separate issue to evaluate V-JEPA adaptation fallback
Related
specs/phase-0-ssl-feasibility.md — Risks section
DECISIONS.md — "Architecture: TS-JEPA as starting implementation"
## What
Reproduce TS-JEPA (Ennadir et al., 2025) on the paper's own benchmark dataset. This is the first task of Phase 0 — a technical feasibility check before any FX-specific work.
## Why this is an issue, not just a task
If reproduction takes > 2 weeks, we need to decide: contact authors, pivot to MTS-JEPA, or implement JEPA masking from scratch using V-JEPA codebase. That is a tracked decision, not a silent implementation detail.
## Acceptance criteria
- [ ] TS-JEPA code located and reviewed (GitHub link recorded in comment)
- [ ] Paper's benchmark result reproduced within ±10% of reported metric
- [ ] Python environment documented in `model/requirements.txt`
- [ ] Reproduction run recorded in `experiments/` with git tag `exp/YYYYMMDD-tsjepa-paper-reproduction`
## Time-box
**2 weeks from start.** If not achieved:
1. Comment here with what was attempted and where it failed
2. Contact TS-JEPA / MTS-JEPA authors (preprint authors are typically responsive)
3. If still blocked after 3 weeks: open separate issue to evaluate V-JEPA adaptation fallback
## Related
- `specs/phase-0-ssl-feasibility.md` — Risks section
- `DECISIONS.md` — "Architecture: TS-JEPA as starting implementation"
No official code repo found — paper is Sep 2025, authors appear not to have released code yet. TejeshwiniRS/TS-JEPA on GitHub is an ECG adaptation (ECG-JEPA, Kim 2026), not the Ennadir benchmark impl.
Consequence for #3: Cannot reproduce the paper's own benchmark numbers from the authors' code. Two paths forward:
Implement from paper — the architecture is described clearly (Transformer encoder, masking, JEPA predictive loss). Combine with LeJEPA's SIGReg objective (code is public: rbalestr-lab/lejepa, ~130 lines total, SIGReg module clearly documented). This is also closer to what our train.py needs (SIGReg not TS-JEPA's original loss).
Contact authors — Ennadir/Golkar/Sarra are on HuggingFace; preprint authors are typically responsive.
Code is public: rbalestr-lab/lejepa. SIGReg module is ~15 lines. No teacher-student, no stop-gradient, single λ hyperparameter. This is the objective half of our backbone.
HEPA (arXiv:2605.11130, Jun 2026) — NEW
A JEPA variant specifically for critical events in multivariate time series including volatility regimes. Benchmarks include 14 domains, beats PatchTST/iTransformer/MAE/Chronos-2 on 10/14. Highly relevant to rq-04 (regime-conditioned tail risk). Worth tracking as a potential backbone alternative — see issue #14.
Implement TS-JEPA Transformer encoder (from paper description) + swap in SIGReg objective from rbalestr-lab/lejepa.
Validate on one of the paper's standard datasets (ETTh1 or UEA archive classification task) within ±10% of reported val_vol_r2-equivalent metric.
If blocked after 1 week: contact Ennadir (HuggingFace handle: sofiane-ennadir? — to verify), or pivot to HEPA backbone (Jun 2026, code may be available).
## Code location findings (2026-06-24)
### TS-JEPA (Ennadir et al., arXiv:2509.25449)
No official code repo found — paper is Sep 2025, authors appear not to have released code yet. `TejeshwiniRS/TS-JEPA` on GitHub is an ECG adaptation (ECG-JEPA, Kim 2026), not the Ennadir benchmark impl.
**Consequence for #3:** Cannot reproduce the paper's own benchmark numbers from the authors' code. Two paths forward:
1. **Implement from paper** — the architecture is described clearly (Transformer encoder, masking, JEPA predictive loss). Combine with LeJEPA's SIGReg objective (code is public: `rbalestr-lab/lejepa`, ~130 lines total, `SIGReg` module clearly documented). This is also closer to what our `train.py` needs (SIGReg not TS-JEPA's original loss).
2. **Contact authors** — Ennadir/Golkar/Sarra are on HuggingFace; preprint authors are typically responsive.
### LeJEPA + SIGReg (Balestriero & LeCun, arXiv:2511.08544)
**Code is public**: `rbalestr-lab/lejepa`. `SIGReg` module is ~15 lines. No teacher-student, no stop-gradient, single λ hyperparameter. This is the objective half of our backbone.
### HEPA (arXiv:2605.11130, Jun 2026) — NEW
A JEPA variant specifically for **critical events in multivariate time series** including *volatility regimes*. Benchmarks include 14 domains, beats PatchTST/iTransformer/MAE/Chronos-2 on 10/14. Highly relevant to rq-04 (regime-conditioned tail risk). Worth tracking as a potential backbone alternative — see issue #14.
## Revised plan for #3
Replace "reproduce TS-JEPA paper benchmark" with:
1. Implement TS-JEPA Transformer encoder (from paper description) + swap in SIGReg objective from `rbalestr-lab/lejepa`.
2. Validate on one of the paper's standard datasets (ETTh1 or UEA archive classification task) within ±10% of reported val_vol_r2-equivalent metric.
3. If blocked after 1 week: contact Ennadir (HuggingFace handle: `sofiane-ennadir`? — to verify), or pivot to HEPA backbone (Jun 2026, code may be available).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What
Reproduce TS-JEPA (Ennadir et al., 2025) on the paper's own benchmark dataset. This is the first task of Phase 0 — a technical feasibility check before any FX-specific work.
Why this is an issue, not just a task
If reproduction takes > 2 weeks, we need to decide: contact authors, pivot to MTS-JEPA, or implement JEPA masking from scratch using V-JEPA codebase. That is a tracked decision, not a silent implementation detail.
Acceptance criteria
model/requirements.txtexperiments/with git tagexp/YYYYMMDD-tsjepa-paper-reproductionTime-box
2 weeks from start. If not achieved:
Related
specs/phase-0-ssl-feasibility.md— Risks sectionDECISIONS.md— "Architecture: TS-JEPA as starting implementation"Code location findings (2026-06-24)
TS-JEPA (Ennadir et al., arXiv:2509.25449)
No official code repo found — paper is Sep 2025, authors appear not to have released code yet.
TejeshwiniRS/TS-JEPAon GitHub is an ECG adaptation (ECG-JEPA, Kim 2026), not the Ennadir benchmark impl.Consequence for #3: Cannot reproduce the paper's own benchmark numbers from the authors' code. Two paths forward:
rbalestr-lab/lejepa, ~130 lines total,SIGRegmodule clearly documented). This is also closer to what ourtrain.pyneeds (SIGReg not TS-JEPA's original loss).LeJEPA + SIGReg (Balestriero & LeCun, arXiv:2511.08544)
Code is public:
rbalestr-lab/lejepa.SIGRegmodule is ~15 lines. No teacher-student, no stop-gradient, single λ hyperparameter. This is the objective half of our backbone.HEPA (arXiv:2605.11130, Jun 2026) — NEW
A JEPA variant specifically for critical events in multivariate time series including volatility regimes. Benchmarks include 14 domains, beats PatchTST/iTransformer/MAE/Chronos-2 on 10/14. Highly relevant to rq-04 (regime-conditioned tail risk). Worth tracking as a potential backbone alternative — see issue #14.
Revised plan for #3
Replace "reproduce TS-JEPA paper benchmark" with:
rbalestr-lab/lejepa.sofiane-ennadir? — to verify), or pivot to HEPA backbone (Jun 2026, code may be available).