Skip to content

design(v2.10+): freeze immutable experiment bundle identity for reproducible training, evaluation, ablation, and promotion evidence #718

Description

@dmidlo

Parents: #605 #698 #714 #716 #717
Related: #637#646 #681 #689 #693 #697 #699 #709 #710 #712 #713

Problem

The roadmap now governs datasets, feature schemas, preprocessing, models, decision policies, evaluation, deployment, rollback and retraining. Those components are individually versioned, but there is still no single canonical experiment envelope binding the exact combination used for a scientific result.

Without one immutable experiment identity, a reported metric such as Sharpe, calibration error, domain distance, or challenger delta can become unreproducible because the dataset version, split policy, preprocessing artifact, feature projection, model weights, decision policy, execution assumptions, environment or code revision changed independently.

Issue comments and ad hoc filenames are not sufficient provenance for a scientific experiment.

Canonical ExperimentBundleV1

Define an immutable, content-addressed ExperimentBundleV1 that binds at least:

The canonical bundle hash must be a deterministic function of canonical scientific inputs, not mutable labels such as branch name or human display title.

Identity math

Let the canonical ordered scientific component identities be

C = (d, s, f, p, y, u, m, c, q, e, v)

for dataset, split, feature schema, preprocessing, label, uncertainty/scenario policy, model, calibration, decision policy, execution/risk policy, and environment/code identity.

Define

experiment_id = SHA256(canonical(C, metric_registry, hypothesis_id, fit_policy)).

If any scientifically material component changes, the experiment identity must change.

Changing only non-scientific display metadata must not change the scientific experiment identity.

Result identity

For result artifact R produced by experiment E, bind

result_id = SHA256(experiment_id || canonical(metric_id, stratum_id, output_payload_hash)).

A metric value without its experiment/result identity is not sufficient release evidence.

Comparison / ablation contract

An ablation comparing experiment A and B must explicitly state the controlled-difference set

Delta(A,B) = {component fields whose identities differ}.

For a valid one-factor ablation, require the declared manipulated factor(s) to equal the observed component identity differences. Unexpected differences invalidate the causal attribution.

Examples:

Container/reference fixture

Reference canonicalization fixture should prove:

  1. same scientific components with dictionary/key insertion order changed => identical experiment hash;
  2. one changed decision threshold/policy hash => different experiment hash;
  3. changed display title only => unchanged scientific hash;
  4. exact retry under same stochastic semantic namespace and deterministic replay class => same scientific identity, while separate run-attempt/receipt IDs may differ.

Run attempts versus experiment identity

Separate the scientific experiment from execution attempts.

Define ExperimentAttemptV1 with:

  • experiment ID;
  • attempt ID;
  • start/end times;
  • runtime/worker identities;
  • logs/checkpoints;
  • resource envelope;
  • failure/retry reason;
  • produced artifact hashes.

Retries do not automatically create a new scientific experiment if every scientific input remains identical. A retry that changes batch size in a numerically material way, code, environment, seed namespace, preprocessing or any scientific component creates a successor experiment identity.

Metric registry

Every durable evaluation metric must have a stable semantic identity including:

  • formula/version;
  • directionality;
  • units;
  • weighting/evidence-mass treatment;
  • missing/censored handling;
  • aggregation across pairs/regimes/members;
  • confidence/uncertainty method where applicable.

Do not reuse sharpe, accuracy, drawdown, brier, domain_distance, etc. for materially different formulas under one metric identity.

Protected evaluation and search lineage

#698 search-budget governance must attach every explored candidate to an experiment identity, including failed/unfavorable candidates. A promoted/champion result must resolve to the complete ancestor search graph.

A protected holdout that was inspected and then used to redesign any component creates a successor research cycle; the original experiment receipt remains immutable.

Reproducible report generation

Human reports, tables and plots must be generated from the experiment/result registry rather than manually copied metric values. A report manifest must enumerate the exact result IDs it cites.

Thus a statement such as 'challenger improves post-cost utility by 1.4%' can be traced to:

  • the two experiment IDs;
  • metric identity;
  • evaluation stratum;
  • component difference set;
  • exact result artifacts.

Deployment linkage

#716 promotion receipts must reference the exact qualifying experiment bundle(s). A live deployment cannot cite a generic model file as qualification evidence without the experiment/split/metric context that justified promotion.

#717 challenger comparisons must themselves be immutable comparison artifacts referencing champion/challenger experiment IDs.

Invalidated / superseded experiments

If a later audit discovers leakage, schema corruption, incorrect units, bad source provenance, or another scientific defect, mark the experiment invalidated with reason and successor link. Do not delete or rewrite the original result.

Downstream reports/deployments that depend on an invalidated experiment must become discoverable through reverse lineage.

Negative controls

Certification must detect:

  • same experiment ID after dataset/split/feature/preprocessing/model/decision-policy change;
  • different experiment ID caused only by JSON key order or display title;
  • manually reported metric not tied to a result artifact;
  • ablation whose supposedly controlled components differ unexpectedly;
  • protected holdout reused for tuning without successor research-cycle identity;
  • failed search candidates omitted from search-budget lineage;
  • deployment references model hash but no qualifying experiment;
  • retry changes scientific configuration but is logged as same attempt/experiment;
  • old result silently overwritten after bug fix;
  • metric semantic formula changes under same metric ID.

Acceptance

Metadata

Metadata

Assignees

No one assigned

    Labels

    data-qualityData quality assessment checks, reports, and validation workflowsscientific-validationFalsifiability, calibration, leakage, reproducibility, and scientific acceptance gatessynthetic-dataSynthetic data generation, constraints, and validation workflows

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions