Reproduce the 2.3.0 model training

Use a clean source checkout, explicit input snapshots and the recorded recipe. The final-2.3.0-candidate-v2 identifier names the frozen settings used for 2.3.0; see Release training recipe for the component definitions.

The published weights retain their original training commit ac253f8c859dc687f7fbce9f4840fb55d5acf2c5 in their provenance. The commands below run the recipe with the stable 2.3.0 code. That code corrects streaming pretraining validation of inequality bounds, so a new fit need not reproduce the original training trajectory. The released selected weights are unchanged by that correction.

Launch on Modal

The maintained launcher uses runplz and a persistent Modal volume. Substitute a new run directory and workflow identifier for each independent experiment:

MHCFLURRY_RELEASE_RECIPE=final-2.3.0-candidate-v2 \
MHCFLURRY_RELEASE_DATA_VINTAGE=current \
RUNPLZ_OUTPUT_VOLUME=mhcflurry-model-training \
MHCFLURRY_RELEASE_OUT=/out/runs/mhcflurry-2.3.0 \
RUNPLZ_TIMEOUT_SECONDS=86400 \
MHCFLURRY_RELEASE_VERSION=2.3.0 \
MHCFLURRY_RELEASE_GIT_COMMIT="$(git rev-parse HEAD)" \
MHCFLURRY_RELEASE_WORKFLOW_ID=mhcflurry-2.3.0 \
RELEASE_RANDOM_SEED=42 \
RUN_RELEASE_EVAL=1 RUN_RELEASE_PLOTS=1 \
runplz modal scripts/training/launch_pan_allele_training_remote.py --detach

For detached launches, use MHCFLURRY_RELEASE_OUT; runplz owns RUNPLZ_OUT. The receipt’s mhcflurry_release_out.txt records the durable volume path. One Modal invocation is limited to 24 hours. Resume only after verifying that the previous worker has exited, using the same source, configuration and run path. A failed evaluation is not a reason to retrain completed fits.

Processing preparation verifies cached input and score hashes before reusing completed samples. Training resumes from saved manifests. Do not modify hyperparameters, input tables or seeds within an existing run directory.

Collect and verify

Create the local destination parent before modal volume get; the CLI recreates the remote directory basename beneath it. Check the downloaded manifests and checksums rather than treating a successful copy command as proof of completeness.

Keep the source commit, architecture decision JSON, data hashes, training and selection records, fitted presentation coefficients, calibration, and final row-level evaluation scores together. The training software version remains part of model provenance even when the weights are distributed in a later or differently numbered download release.

A completed run can be archived with:

mhcflurry train snapshot-experiment \
  --source-dir /path/to/collected-run \
  --name mhcflurry-2.3.0 \
  --source-commit TRAINING_COMMIT

Use Evaluating trained models for independent comparisons. Keep the test rows fixed across predictors, audit overlap against all compared MHCflurry training sources, and record missing external-model training provenance explicitly.