Replace the 14 subpackages with 13 flat modules (6.7k -> 2.7k lines),
the Hydra config groups with typed dataclasses and one self-contained
YAML file per experiment (configs/), and the docs with docs/usage.md and
docs/design.md. All capabilities stay: GamGam, ttH CP, Delphes, binary
and multiclass tasks, transformer, fine-tuning from Pretrained_GNN, DDP,
torch.compile/CUDA graphs/bfloat16, predict and ONNX export.
Behavior: prepared caches, pretrained-model logits and two CPU training
epochs are bit-identical to the previous code on the fixtures and a 60k
event GamGam subset. Energies are now computed with one vectorized cosh
(<= 2.4e-7 relative difference on 969 of the full GamGam objects). The
ttH and Delphes configs now use Number % 10 as the fold (the raw event
index selected only the first 10 events), and use the paper recipe
(64/4/4, Adam 1e-4, decay 0.99). The ROOT score writer handles jagged
trees. Prediction files store source file and entry instead of sample
ids, and checkpo…
feat: add the ATLAS Open Data GamGam 5-class task and faster training
Add the Higgs production multiclass task of Ho et al. (2026), Table 3:
ttH, ggF, VBF, WH, ZH from the ATLAS Open Data 13 TeV GamGam MC, pinned to
a Hugging Face dataset revision.
Data:
- derived branches split ``lep_*`` into electrons and muons and apply the
MV2c10 70% working point, so the pretraining node schema applies
- ``fold_modulus`` derives folds from event numbers in exact integers
- 64-event fixtures of the five samples and an end-to-end workflow test
Training:
- paper recipe (Adam 1e-4, 0.99 decay, stop after 5 epochs without
training-loss improvement) and ``best.pt`` selection by validation AUC
- checkpoint save_every_epochs/save_best/save_last are now honored;
per-epoch history.jsonl; evaluate can write metrics JSON
- macro precision/recall/F1 for multiclass tasks
- O(n log n) weighted ROC AUC on the metric device (was O(P*N) pairs)
Speed (A100, GamGam, batch 1024): about 56 s -> 35 s per epoch by default,
18 s with the opt-in paper_fast preset:
- loader worker pr…
2 days ago
feat: replace DGL with shared packed events and native PyTorch graphs