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.

See Also