Configuration reference#
pimm has two configuration systems with different responsibilities:
System |
Location |
Controls |
|---|---|---|
experiment config |
Python under |
data, transforms, model, loss, optimization, hooks, evaluation |
launch config |
YAML under |
site, resources, paths, container, naming, resume handoff |
The practical guide to inheritance, list replacement, common fields, and overrides is Configuration. This page is the catalog.
Resolution order#
experiment: base Python config(s) → child Python config → post-`--` overrides
launch: launch/defaults.yaml → site YAML → recipe YAML → CLI flags
Python dictionaries merge recursively; lists and scalars replace inherited
values. Launch YAML mappings merge recursively. A launch recipe path is passed
as --recipe launch/runs/<name>.yaml.
Find and inspect a config#
Config references omit the configs/ prefix and .py suffix:
find configs -name '*.py' -not -path '*/_base_/*' | sort
uv run pimm launch \
--train.config panda/semseg/semseg-pt-v3m2-pilarnet-ft-5cls-fft \
--resources.nproc-per-node 1 \
--dry-run
A dry run checks that inheritance resolves and the path exists, but it does not build the model or open the dataset.
Filename vocabulary#
Token |
Meaning in the committed Panda task configs |
|---|---|
|
self-supervised or reconstruction training |
|
point-wise semantic segmentation |
|
query-based particle/interaction instance task |
|
particle-instance and particle-class targets |
|
interaction-instance/vertex-oriented targets |
|
full fine-tuning of the pretrained backbone and task head |
|
decoder/head adaptation with the encoder frozen |
|
task head with the backbone frozen |
|
the corresponding full-training config intended to run without a supplied warm-start weight |
|
evaluation-oriented config intended for a named released checkpoint |
These tokens describe config intent, not a verified result. Read the resolved model, loader, weight, and hooks before using a filename in a paper.
The current scratch child files change only the W&B naming override; they do
not reject --train.weight. Confirm that the resolved weight is empty when a
from-scratch comparison matters.
Committed experiment catalog#
The paths below were checked by loading them through
fromfile() in this checkout. “Research
recipe” means committed and loadable, not benchmarked or API-stable.
First-run and recovery fixtures#
Config |
Purpose |
|---|---|
|
one-epoch semantic-segmentation recipe used by the first experiment |
|
deterministic crash/resume test recipe |
Use tiny_semseg for the quickstart;
neither fixture is a scientific benchmark.
Panda / Sonata pretraining#
Config |
Purpose |
|---|---|
|
Sonata with PT-v3m2 on PILArNet-M |
|
Sonata with the PT-v3m8 backbone variant |
|
local/Hugging Face Parquet reader variant; currently unresolved |
|
iterable Parquet reader variant; currently unresolved |
The two Parquet configs inherit
pretrain-sonata-v1m3-pilarnet-smallmask-litept-v1m2-M-observable.py, which is
not committed at this revision.
fromfile() raises FileNotFoundError.
Treat them as incomplete provenance records until the base config is restored
or they are made self-contained.
Panda semantic segmentation#
Config |
Adaptation |
|---|---|
|
full fine-tune |
|
frozen encoder / decoder adaptation |
|
frozen backbone / task-head training |
|
full config without a warm-start supplied at launch |
Panda Detector#
All paths below are under panda/panseg/.
Model |
Target |
Variants |
|---|---|---|
|
configurable v5 particle/PID detector |
|
|
configurable v5 interaction/vertex detector |
|
The table expands to eight files. The v5 -dec and -fft recipes
accept backbone-only Panda pretraining weights; -fft-detector strictly loads
the complete published task detector before further full fine-tuning. There is
also a scratch variant for each target.
PoLAr-MAE#
Config |
Purpose |
|---|---|
|
masked-autoencoder pretraining |
|
full semantic fine-tuning |
|
frozen-encoder/head-oriented parameter-efficient recipe |
|
evaluate the released fine-tuned checkpoint |
Other detector data#
Config |
Purpose |
|---|---|
|
PT-v3m2 semantic segmentation on JAXTPC; requires |
Launch profiles#
Profile |
Executor environment |
|---|---|
|
current node, no container; GPU count defaults to |
|
generic Slurm base inherited by cluster profiles |
|
S3DF bare-metal environment |
|
S3DF Singularity environment |
|
NERSC bare-metal environment prepared by |
|
NERSC Shifter environment |
Site files contain real project accounts, partitions, modules, mounts, and network settings. Fork or override them for your allocation; their presence is not authorization to use those accounts.
Adding a recipe#
Create a small child config, keep storage paths external, and add a bounded validation command. Then follow Add a model or Add a dataset as appropriate. A committed recipe should declare its data revision, target/class contract, checkpoint provenance, and status rather than relying on its filename.