Skip to content

Continue MLflow runs as new linked runs (mlflow-inplace: for the old behaviour) - #9

Merged
leifdenby merged 1 commit into
dev/dmi-convgru-trainingfrom
feat/resume-linked-run
Oct 18, 2026
Merged

leifdenby merged 1 commit into
dev/dmi-convgru-trainingfrom
feat/resume-linked-run

Conversation

@leifdenby

Copy link
Copy Markdown

Follow-up to #6. Resuming intrigued-sow-455 in place showed the limits of continuing inside the original run: MLflow rejected the changed trainer.max_time param (params are immutable), and the run's status/console log get overwritten by each continuation.

Change

  • --config mlflow:<run> now logs the continuation as a new run named <original>-from-step<N>, tagged:
    • mlflow.parentRunId = original (the UI nests it under the original)
    • mlcast.resumed_from_run = original run id
    • mlcast.resumed_from_checkpoint = checkpoint filename
  • Step numbers carry on from the checkpoint, so the runs' curves line up in the compare view.
  • --config mlflow-inplace:<run> keeps logging into the original run (previous behaviour).
  • resume_training gains inplace and run_name. For a linked run it clears any run_id, run_name and links inherited from a config saved by an earlier resume (otherwise it would log into the old run again).
  • When a run has several config files (old temp-named one + config.yaml from an in-place resume), config/config.yaml is used.

Testing

  • End to end against a local MLflow store: continuing a 40-step run created upset-calf-592-from-step40 with the three tags pointing at the original, its own config/ and logs/, checkpoints at step 60; the original run was untouched.
  • New/updated tests for the linked-run tags and name, dropping inherited ids, inplace, the mlflow-inplace: prefix, and config.yaml preference. Full suite: 177 passed, 5 skipped.

🤖 Generated with Claude Code

--config mlflow:<run> now logs the continuation as a new MLflow run named
<original>-from-step<N>, tagged mlflow.parentRunId (nested under the
original in the UI), mlcast.resumed_from_run and
mlcast.resumed_from_checkpoint. The new run can log its own params,
config and status, which MLflow doesn't allow in the original run (params
are immutable, so e.g. a longer max_time was rejected). Step numbers
carry on from the checkpoint. --config mlflow-inplace:<run> keeps the old
behaviour. The run id/name/links inherited from a config saved by an
earlier resume are dropped, and config/config.yaml is preferred over
older temp-named config files.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@leifdenby
leifdenby requested a review from arjj8 October 18, 2026 19:53
@leifdenby
leifdenby merged commit 4e558f9 into dev/dmi-convgru-training Oct 18, 2026
5 checks passed
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.

1 participant