Task metadata
| Field |
Value |
| Task ID |
M10 |
| Category |
Model |
| Priority |
High |
| Complexity |
Medium |
| Est. days |
3 |
| Blocks |
#64, #65, #66, #67, #68 |
| Blocked by |
nothing — see #71 |
| Should inherit |
#69 pooling decisions |
Features / method
Retrain all four probes on the synchronized EchoJEPA + HuBERT manifest and produce a canonical checkpoint set.
Description
PR #61 landed a validated 1,208-row paired manifest (829/131/248 train/val/test, 702/100/201 subjects, zero subject leakage). No probe has been trained on it yet. Every number currently in the README comes from an earlier cohort build with n=245 test, so nothing reported today is reproducible against the manifest that is actually in the repo.
This does not need a GPU reservation. Extraction is already done and the probes are small heads over cached vectors — see #71. It can start now.
Retrain all four probes from src/primed_ai/probes/ against data/processed/echo_hubert_manifest.parquet via the loader in src/primed_ai/data/echo_hubert_dataset.py. Train the unimodal probes too, not just the fused one — the in-cohort ECG-only and echo-only numbers are what E10 needs to tell a cohort problem apart from a fusion problem.
Steps:
- Wire the four probe training paths to the manifest loader rather than the old cohort files.
- Train ECG-only (M06), echo-only (M07), concat-MLP (M08), and cross-attention fused (M09) on the same splits and seed.
- Record val MAE and EF<=40% AUROC per probe; select the fused checkpoint on val, not test.
- Persist checkpoints plus a run manifest (
utils/run_manifest.py) capturing seed, embedding source, dims, and hyperparameters.
- Confirm EF<=40% prevalence is reportable on all three splits (
scripts/check_ef40_prevalence.py) before locking anything.
Acceptance criteria:
- Four checkpoints trained on the 1,208-row manifest, each with a run manifest recording its inputs.
- Val and test MAE + AUROC logged for all four probes in one table.
- Fused checkpoint selected on val and marked as the canonical one for E07-E09.
--embed-dim, --echo-dim, --ecg-dim recorded so downstream state_dict loads do not fail on shape.
Task metadata
M10Features / method
Retrain all four probes on the synchronized EchoJEPA + HuBERT manifest and produce a canonical checkpoint set.
Description
PR #61 landed a validated 1,208-row paired manifest (829/131/248 train/val/test, 702/100/201 subjects, zero subject leakage). No probe has been trained on it yet. Every number currently in the README comes from an earlier cohort build with n=245 test, so nothing reported today is reproducible against the manifest that is actually in the repo.
This does not need a GPU reservation. Extraction is already done and the probes are small heads over cached vectors — see #71. It can start now.
Retrain all four probes from
src/primed_ai/probes/againstdata/processed/echo_hubert_manifest.parquetvia the loader insrc/primed_ai/data/echo_hubert_dataset.py. Train the unimodal probes too, not just the fused one — the in-cohort ECG-only and echo-only numbers are what E10 needs to tell a cohort problem apart from a fusion problem.Steps:
utils/run_manifest.py) capturing seed, embedding source, dims, and hyperparameters.scripts/check_ef40_prevalence.py) before locking anything.Acceptance criteria:
--embed-dim,--echo-dim,--ecg-dimrecorded so downstreamstate_dictloads do not fail on shape.