Repository navigation
feat: add experiment store with registration and Confluence publishing - #255
Conversation
aba03d8 to
6909b07
Compare
6909b07 to
9a6d662
Compare
|
What is the state of this PR? It would be nice to be able to use it from main. |
|
@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>
|
@Louis-Frey with your approval, I think we could merge this. |
|
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. |
There was a problem hiding this comment.
🟡 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
Keep legacy inference config keys for pinned checkpoints · New Serialize duplicate registrations across different names · New Prevent rebuild from discarding concurrent registration events · New Resolve dangling symlink targets relative to the source directory · New Archive the explicitly selected config.yaml · New Prevent stale inventory snapshots from overwriting newer catalogues · New
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
lclanzi
left a comment
There was a problem hiding this comment.
Very useful feature, thanks!


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-ridgeevalml register|unregister|list|publishmanage the store, the model-store cross-links, and the Experiments Confluence pageDetails 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.