Skip to content

feat: add experiment store with registration and Confluence publishing - #255

Merged
frazane merged 11 commits into
mainfrom
feat/experiment-store
Nov 6, 2026
Merged

frazane merged 11 commits into
mainfrom
feat/experiment-store

Conversation

@frazane

@frazane frazane commented Aug 25, 2026 •

Copy link
Copy Markdown
Contributor

Registered experiments live at /store_new/mch/msopr/ml/experiments, mirroring devml's model registration (immutable copies, append-only JSONL index, tombstoned names).

  • checkpoint: accepts a registered model name, e.g. amber-ridge
  • evalml register|unregister|list|publish manage the store, the model-store cross-links, and the Experiments Confluence page
  • the workflow copies the config into the results directory, so results are registerable as-is

Details in docs/experiment-store.md.

Note

This technical implementation gives us some basic elements on which we can develop our processes. It only does the bare minimum we needed (experiments tracking and cross-references with registered models) and it's a temporary solution. In the future we will adopt the anemoi-nexus.

@frazane frazane closed this Aug 25, 2026
@frazane frazane reopened this Aug 25, 2026
@frazane
frazane force-pushed the feat/experiment-store branch from aba03d8 to 6909b07 Compare August 25, 2026 14:13
@frazane
frazane force-pushed the feat/experiment-store branch from 6909b07 to 9a6d662 Compare August 25, 2026 14:24
@frazane frazane changed the title Add an experiment store with registration and Confluence publishing feat: add experiment store with registration and Confluence publishing Aug 25, 2026
@frazane
frazane marked this pull request as ready for review August 25, 2026 16:20
@Louis-Frey

Louis-Frey commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

What is the state of this PR? It would be nice to be able to use it from main.

@frazane

frazane commented Nov 5, 2026

Copy link
Copy Markdown
Contributor Author

@copilot resolve the merge conflicts in this pull request

# Conflicts:
#	src/evalml/config.py
#	workflow/rules/common.smk

Co-authored-by: frazane <62377868+frazane@users.noreply.github.com>
@frazane

frazane commented Nov 5, 2026

Copy link
Copy Markdown
Contributor Author

@Louis-Frey with your approval, I think we could merge this.

@Louis-Frey

Copy link
Copy Markdown
Contributor

I didn't have time to look at the code (and don't have now), but I used the branch twice and it seems to be doing what it's supposed to do.

Good to merge from my side.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Unresolved concurrency races can discard successful registrations, allow duplicate evaluations, and overwrite newer catalogue data, while the inference patch no longer overrides legacy checkpoints’ active input paths and metadata.

6 open issues
What changed in this PR

Adds a shared experiment archive to EvalML, connecting completed evaluations with registered models and publishing an inventory to Confluence.

Changes:

  • Adds registration, unregistration, listing, index repair, and publishing commands.
  • Supports registered model names as checkpoints and preserves experiment configs alongside results.
  • Adds store lifecycle tests, documentation, and updated example configurations.
File Description
workflow/​tools/​config.schema.json Documents registered model names as checkpoint inputs.
workflow/​Snakefile Copies the experiment config into results.
workflow/​rules/​common.smk Preserves registered model names in run identifiers.
tests/​unit/​test_store.py Tests store lifecycle, safeguards, and rendering helpers.
src/​evalml/​store.py Implements archiving, indexing, model links, and Confluence publishing.
src/​evalml/​registration.py Extracts configuration metadata and registration provenance.
src/​evalml/​config.py Resolves registered model names to checkpoint paths.
src/​evalml/​cli.py Exposes experiment-store commands.
resources/​inference/​configs/​sgm-forecaster-global-ich1.yaml Switches the inference metadata patch to the multidataset variant.
docs/​experiment-store.md Documents commands, storage guarantees, and publishing.
config/​forecasters-ich1-oper.yaml Uses the registered amber-ridge model.
config/​forecasters-ich1-oper-fixed.yaml Uses the registered amber-ridge model.
.gitignore Ignores .local and .claude paths.

Review effort: Balanced

Comment thread src/evalml/store.py Resolved
Comment thread src/evalml/store.py Resolved
Comment thread src/evalml/store.py Resolved
Comment thread src/evalml/store.py Resolved
Comment thread src/evalml/store.py Resolved

@lclanzi lclanzi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very useful feature, thanks!

@frazane
frazane merged commit ce9a989 into main Nov 6, 2026
4 checks passed
@frazane
frazane deleted the feat/experiment-store branch November 6, 2026 09:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants