Configuration¶
Maturity: verified
RFFM separates authoring fragments, the resolved application recipe, code-owned component dispatch, and provider launch policy. Those four values answer different questions and are stored separately.
Composition and validation¶
configs/config.yaml is the Hydra root. The caller explicitly selects one file
from configs/experiment/. That preset chooses dataset, dataloader,
normalization, patching, model, objective, optimizer, training, and checkpoint
groups. Hydra resolves defaults and interpolations; Pydantic then validates the
complete mapping with unknown fields forbidden.
This process finishes before data, models, artifacts, or cloud resources are created.
Component selection¶
Model, objective, and optimizer groups each contain:
implementation: readable_registry_key
parameters: {}
The application catalog maps the key to a concrete parameter validator and builder. The shipped keys are:
model:
tiny_causal_iq;objective:
next_patch_prediction;optimizer:
adamw.
Each registration rejects parameters it does not own. These are code-owned definition IDs, not user-maintained compatibility versions.
Identities¶
The application computes two SHA-256 identities:
resolved-config hash: every field in the complete application recipe;
training-contract hash: the subset that must match across bounded resume, excluding output location, maximum step, and checkpoint location.
Logical run identity is validated separately. A content hash does not replace a run ID, attempt ID, component definition ID, dataset snapshot ID, or checkpoint content hash.
Provider configuration¶
configs/launch/vertex_ai_l4.yaml is not a Hydra group and is never merged into
the application recipe. It selects the Google Cloud project, region, service
account, machine, accelerator, and replica count for the submission adapter.