Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add checkpoint artifact path prefix to MLflow logger #20538

Merged

Conversation

benglewis
Copy link
Contributor

@benglewis benglewis commented Jan 8, 2025

What does this PR do?

Introduces a new checkpoint_path_prefix argument to MLFlowLogger which customizes the prefix for the model artifacts.

Fixes #20540

Before submitting
  • Was this discussed/agreed via a GitHub issue? (not for typos and docs)
  • Did you read the contributor guideline, Pull Request section?
  • Did you make sure your PR does only one thing, instead of bundling different changes together?
  • Did you make sure to update the documentation with your changes? (if necessary)
  • Did you write any new necessary tests? (not for typos and docs)
  • Did you verify new and existing tests pass locally with your changes?
  • Did you list all the breaking changes introduced by this pull request?
  • Did you update the CHANGELOG? (not for typos, docs, test updates, or minor internal changes/refactors)

PR review

Anyone in the community is welcome to review the PR.
Before you start reviewing, make sure you have read the review guidelines. In short, see the following bullet-list:

Reviewer checklist
  • Is this pull request ready for review? (if not, please submit in draft mode)
  • Check that all items from Before submitting are resolved
  • Make sure the title is self-explanatory and the description concisely explains the PR
  • Add labels and milestones (and optionally projects) to the PR so it can be classified

Add a new checkpoint_path_prefix parameter to the MLflow logger.

  • Modify src/lightning/pytorch/loggers/mlflow.py to include the new parameter in the MLFlowLogger class constructor and use it in the after_save_checkpoint method.
  • Update the documentation in docs/source-pytorch/visualize/loggers.rst to include the new checkpoint_path_prefix parameter.
  • Add a new test in tests/tests_pytorch/loggers/test_mlflow.py to verify the functionality of the checkpoint_path_prefix parameter and ensure it is used in the artifact path.

For more details, open the Copilot Workspace session.


📚 Documentation preview 📚: https://pytorch-lightning--20538.org.readthedocs.build/en/20538/

Add a new `checkpoint_artifact_path_prefix` parameter to the MLflow logger.

* Modify `src/lightning/pytorch/loggers/mlflow.py` to include the new parameter in the `MLFlowLogger` class constructor and use it in the `after_save_checkpoint` method.
* Update the documentation in `docs/source-pytorch/visualize/loggers.rst` to include the new `checkpoint_artifact_path_prefix` parameter.
* Add a new test in `tests/tests_pytorch/loggers/test_mlflow.py` to verify the functionality of the `checkpoint_artifact_path_prefix` parameter and ensure it is used in the artifact path.

---

For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/Lightning-AI/pytorch-lightning?shareId=XXXX-XXXX-XXXX-XXXX).
@github-actions github-actions bot added docs Documentation related pl Generic label for PyTorch Lightning package labels Jan 8, 2025
Copy link
Collaborator

@lantiga lantiga left a comment

Choose a reason for hiding this comment

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

Thanks a lot of the PR, I left a couple of comments but we're good to go.

Tests need fixing, can you take that @benglewis?

@lantiga
Copy link
Collaborator

lantiga commented Jan 14, 2025

thank you @benglewis , happy to merge once tests are fixed

@benglewis
Copy link
Contributor Author

@lantiga I have commit a change that fixes the test when I ran it with pytest :)
This will be a great improvement for us in the next pytorch-lightning release

@benglewis
Copy link
Contributor Author

@lantiga Do you need any additional changes here? 🙏

@benglewis benglewis closed this Jan 29, 2025
@benglewis benglewis reopened this Jan 29, 2025
Copy link
Collaborator

@lantiga lantiga left a comment

Choose a reason for hiding this comment

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

Looks great, thanks @benglewis!

Copy link

codecov bot commented Feb 3, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 79%. Comparing base (1f5add3) to head (d892b4e).
Report is 2 commits behind head on master.

❗ There is a different number of reports uploaded between BASE (1f5add3) and HEAD (d892b4e). Click for more details.

HEAD has 2689 uploads less than BASE
Flag BASE (1f5add3) HEAD (d892b4e)
gpu 2 0
pytest 314 0
lightning 468 18
cpu 623 24
python3.9 156 6
lightning_fabric 79 0
python3.10 78 3
python3.11 155 6
python3.12.7 234 9
pytorch2.1 117 9
pytest-full 311 24
pytorch_lightning 78 6
pytorch2.3 38 3
pytorch2.2.2 39 3
pytorch2.4.1 39 3
pytorch2.5.1 78 6
Additional details and impacted files
@@            Coverage Diff            @@
##           master   #20538     +/-   ##
=========================================
- Coverage      88%      79%     -9%     
=========================================
  Files         267      264      -3     
  Lines       23366    23312     -54     
=========================================
- Hits        20475    18365   -2110     
- Misses       2891     4947   +2056     
🚀 New features to boost your workflow:
  • Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@benglewis
Copy link
Contributor Author

@lantiga I just updated the stale documentation as per @joncarter1 's comment. It should be ready for merge now 🙏

@benglewis
Copy link
Contributor Author

benglewis commented Feb 10, 2025

@lantiga Do I need to do something to run the check/schema and required-jobs checks?

@Borda Borda added logger Related to the Loggers 3rd party Related to a 3rd-party community This PR is from the community labels Feb 14, 2025
@benglewis
Copy link
Contributor Author

@Borda @ethanwharris @tchaton @justusschock @lantiga Is there anything in particular holding this up?

@benglewis
Copy link
Contributor Author

@Borda Is there anything that I need to change to get this PR merged?

@benglewis
Copy link
Contributor Author

@Borda @ethanwharris @tchaton @justusschock @lantiga
I don't like "nagging" and such on GitHub PRs, and I understand and image that you are all extremely busy at PyTorch Lightning, I was just wondering what is preventing this PR from being merged :/

@Borda Borda merged commit 87108d8 into Lightning-AI:master Mar 10, 2025
77 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3rd party Related to a 3rd-party community This PR is from the community docs Documentation related logger Related to the Loggers pl Generic label for PyTorch Lightning package
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add new checkpoint_artifact_path_prefix argument MLFlowLogger to customize artifact path for model checkpoints
4 participants