Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Artifacts and directories

MLPF uses two main directory trees: a production workspace for data and an experiment directory for a model run. Paths can be changed by site and command-line configuration, so treat the resolved configuration as authoritative.

Production workspace

<workspace>/
├── gen/       detector-simulation ROOT files
├── post/      detector-specific Parquet or pickle output
├── tfds/      versioned TensorFlow Datasets
├── val/       reconstruction outputs used for validation
└── plots.../  campaign validation products

Sentinel files and generated Snakemake job directories describe workflow completion. Validation reports establish the quality of the corresponding data product. See Dataset generation.

Experiment directory

experiments/<run>/
├── checkpoints/
│   └── checkpoint-<step>.pth
├── history/
│   └── step_<step>.json
├── model_kwargs.pkl
├── hyperparameters.json
├── particleflow_spec.yaml
├── train-config.yaml or test-config.yaml
├── train.log or test.log
├── runs/
│   ├── train/
│   └── valid/
├── preds_step_<step>/
│   └── <dataset>/
└── validation/

Some entries appear only when their corresponding training, test, plotting, logging, or validation action runs.

ArtifactPurposeKeep for inference?
checkpoint-*.pthModel weights plus optimizer, scheduler, RNG, and loader stateYes
model_kwargs.pklResolved typed configuration used to instantiate the modelYes
hyperparameters.jsonHuman- and tool-readable configuration plus parameter countRecommended
saved particleflow_spec.yamlComplete recipe snapshot used by the commandRecommended
*-config.yamlResolved command configurationRecommended
history/*.jsonTraining and validation loss and selected plot metricsFor audit
logs and runs/ TensorBoard dataProgress, diagnostics, resource and loss historyFor audit
prediction Parquet and plotsHeld-out model and physics checksWith published validation

Use the name best when the bundle records the selection metric, dataset, and step. Periodic checkpoint names encode the training step; validation records describe model quality.

Minimum reproducible model bundle

Keep the checkpoint, model_kwargs.pkl, resolved YAML configuration, repository commit, dataset names/configuration partitions/versions, and a short validation record together. If the checkpoint is moved, pass --config explicitly to make configuration discovery independent of directory layout.

Dataset schema versions, Python package versions, production campaign versions, and model release labels are separate identifiers. Compatibility comes from an explicit check of each recorded identifier.