Repository navigation
Make checkpoint upload to MLflow opt-in and non-fatal - #10
Merged
leifdenby merged 1 commit intoOct 19, 2026
Merged
Conversation
Uploading every checkpoint (log_model='all', added in #6) crashed a continuation of the DMI ConvGRU run at its first validation: mlflow.dmidev.org cut the connection on the ~770 MB upload (SSLEOFError, 7 retries over ~9 min) and Lightning's MLFlowLogger let the error stop training. - use_mlflow_logger(upload_checkpoints=False): upload is now opt-in. - ResilientMLFlowLogger turns a failed checkpoint upload into a warning and marks the checkpoint as handled so later saves don't retry it. Used by use_mlflow_logger, and resume_training switches configs saved with plain MLFlowLogger (e.g. log_model='all' from #6-era runs) over to it. - resume_training no longer forces log_model='all'. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The continuation run
intrigued-sow-455-from-step83299crashed at its first validation (step 88,299, ~40 min in):Cause: #6 turned on
log_model="all", so every ~770 MB checkpoint is uploaded inside the training loop. mlflow.dmidev.org (or its proxy) cuts the connection on uploads that size (none of the run's checkpoint uploads succeeded; large PNGs were already getting 413s), and Lightning'sMLFlowLoggerlets the error stop training. My end-to-end test used a local file store, which has no size limit.Fix
use_mlflow_logger(upload_checkpoints=False): upload is opt-in again.ResilientMLFlowLogger(new,src/mlcast/loggers.py): a failed checkpoint upload is logged as a warning, and the checkpoints it covered are marked as handled so later saves don't retry them (each attempt blocks training for minutes of HTTP retries). The file is already on local disk.resume_trainingno longer forces upload on, and switches the logger of any config (including ones saved by Resume training from a checkpoint or an MLflow run #6-era runs with plainMLFlowLoggerandlog_model="all") toResilientMLFlowLogger.<experiment_id>/<run_id>/checkpointsfallback (same machine).Testing
log_artifact, old configs get the resilient logger with their upload setting kept. Full suite: 180 passed, 5 skipped.To make cross-machine resume possible with this server, the upload size limit on mlflow.dmidev.org would need raising.
🤖 Generated with Claude Code