|
Download README.md from dams2005/ArgusJEPA: direct link, hf CLI and curl.
- Browser
- Download file 3.41 kB
-
https://huggingface.co/dams2005/ArgusJEPA/resolve/main/README.md
- Command line
-
hf download hf://dams2005/ArgusJEPA/README.md
-
curl -L -o README.md https://huggingface.co/dams2005/ArgusJEPA/resolve/main/README.md
3.41 kB
| tags: | |
| - finance | |
| - time-series | |
| - jepa | |
| - self-supervised-learning | |
| - representation-learning | |
| library_name: pytorch | |
| # ArgusJEPA | |
| A Joint-Embedding Predictive Architecture (JEPA) that learns one dense representation | |
| per **stock-day** from point-in-time daily features. It is the first stage of a | |
| two-stage forecaster; the second stage is | |
| [CassaFormer](https://huggingface.co/dams2005/CassaFormer), a causal Transformer that | |
| reads sequences of these day vectors. Code: [github.com/daMS2005/jepa-transformer-model](https://github.com/daMS2005/jepa-transformer-model). | |
| ## How it works | |
| - **Input:** one asset-day as a 191-dimensional vector of point-in-time features, NaN | |
| where a value is unavailable on that day. | |
| - **Context encoder:** a residual MLP (`Linear → GELU → LayerNorm` blocks) over the day | |
| vector with a random half of the available feature units hidden. The 64 components of | |
| the text-description embedding are one masking unit, hidden or shown together. | |
| - **Target encoder:** an exponential moving average of the context encoder that sees the | |
| full day; its momentum ramps linearly from 0.996 to 1.0 over training, as in I-JEPA. | |
| - **Objective:** a predictor maps the masked-view representation to the target encoder's | |
| full-view representation (L1 loss in latent space). | |
| - **Use:** after training the context encoder is frozen; `encode()` maps a day to its vector. | |
| ## Checkpoints | |
| | Folder | Representation | Encoder | Parameters (full JEPA) | | |
| |---|---|---|---| | |
| | `m/` | 768 | 3 residual blocks, 768 wide | 5.0M | | |
| | `xs/` | 256 | 3 residual blocks, 256 wide | 0.6M | | |
| Each folder has `jepa.safetensors` (context encoder, target encoder and predictor) and | |
| `jepa_config.json` (architecture and training settings, input width and feature groups). | |
| Both were trained for 30 epochs. | |
| ## Inputs | |
| 191 daily channels in ten groups, in this order: | |
| | Group | Channels | | |
| |---|---| | |
| | price | 11 | | |
| | risk | 3 | | |
| | liquidity | 3 | | |
| | fundamentals | 31 | | |
| | market | 8 | | |
| | sectors | 12 | | |
| | macro | 35 | | |
| | options | 7 | | |
| | events_8k | 15 | | |
| | sec_descriptions | 66 | | |
| Channels are normalized as in the repository's data layer (training-window z-scores or | |
| same-day cross-sectional ranks, with explicit 0/1 mask channels). The individual feature | |
| definitions are not published; the repository's `configs/data/example.toml` shows the | |
| specification format. | |
| ## Training data | |
| US-listed common stocks in a point-in-time top-1000 universe (delisted names included for | |
| the days they were members), daily from 2010. Companies are split into core, extended and | |
| holdout groups; only core and extended companies through 2023 were used for training. | |
| ## Loading | |
| ```python | |
| import json, torch | |
| from safetensors.torch import load_file | |
| from jepa_transformer.models.jepa import JEPA # from the GitHub repository | |
| cfg = json.load(open("m/jepa_config.json"))["config"] | |
| jepa = JEPA(cfg["input_dim"], cfg["output_dim"], hidden_dim=cfg["hidden_dim"], depth=cfg["depth"], | |
| dropout=0.0, residual=cfg["residual"], mask_units=tuple(cfg["mask_units"])) | |
| jepa.load_state_dict(load_file("m/jepa.safetensors")) | |
| day_vectors = jepa.eval().encode(features) # features: [N, 191], NaN where unavailable | |
| ``` | |
| ## Limitations | |
| Research artifact. Representations are trained on one market and period and on a private | |
| feature pipeline; inputs must follow the same feature order and normalization. Nothing | |
| here is investment advice. | |