-
Notifications
You must be signed in to change notification settings - Fork 2
feat: Integrate MLflow for metrics and artifacts #229
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
base: main
Are you sure you want to change the base?
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #229 +/- ##
==========================================
- Coverage 75.98% 66.82% -9.16%
==========================================
Files 28 28
Lines 3110 3171 +61
Branches 489 510 +21
==========================================
- Hits 2363 2119 -244
- Misses 529 857 +328
+ Partials 218 195 -23 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
very nice! how is this exposed for tesseract use via |
We log metrics to an MLflow server outside of tesseract-core, so that's where you can view metrics (added a HOW TO section above). |
Hmm, one more thing. I run a self-hosted mlflow server that I would like to push to rather than to a new one and then figure out how to export/import. Can we read in a |
Good point! As it stands, you can't set |
Relevant issue or PR
N/A
Description of changes
mlflow.log_metric
and friends in their codetesseract serve
spins up an MLflow server, ensures all tesseracts are on the same network (shared network only existed within each individual docker compose file before), and ensures all tesseracts find the MLflow servertesseract run
(and custom docker client under the hood) now passes through env. variables and network. This can be used to point a tesseract to an external MLflow server, e.g. in P4D.HOW TO
Option A: Serve tesseract
Serving a tesseract as always via
automatically spins up an MLflow server (shared among all served tesseracts), which you can access at
http://localhost:5000
in order to view metrics.After requesting an apply (or jacobian, ...) from the tesseract, a new entry will show up in the MLflow server.
Option B: Single tesseract execution
In this case, we can't spin up an MLflow server. Instead, you'll have to point the tesseract to an existing one (e.g. one running on your host system).
If you don't specify
MLFLOW_TRACKING_URI
, the Mlflow client falls back to logging locally within the tesseract, making logged metrics nearly inaccessible.TODO
helloworld
example (now logs a metric in MLflow; should probably be removed later)MLFLOW_TRACKING_URI
intesseract serve
Testing done
Local testing for calling via
tesseract run
and viatesseract serve
.