MLflow 1.9.0
1.9.0 (2020-06-19)
MLflow 1.9.0 includes numerous major features and improvements, and a breaking change to
experimental APIs:
Breaking Changes:
- The
new_name
argument toMlflowClient.update_registered_model
has been removed. CallMlflowClient.rename_registered_model
instead. (#2946, @mparkhe) - The
stage
argument toMlflowClient.update_model_version
has been removed. CallMlflowClient.transition_model_version_stage
instead. (#2946, @mparkhe)
Features (MLflow Models and Flavors)
log_model
andsave_model
APIs now support saving model signatures (the model's input and output schema)
and example input along with the model itself (#2698, #2775, @tomasatdatabricks). Model signatures are used
to reorder and validate input fields when scoring/serving models using the pyfunc flavor,mlflow models
CLI commands, ormlflow.pyfunc.spark_udf
(#2920, @tomasatdatabricks and @aarondav)- Introduce fastai model persistence and autologging APIs under
mlflow.fastai
(#2619, #2689 @antoniomdk) - Add pluggable
mlflow.deployments
API and CLI for deploying models to custom serving tools, e.g. RedisAI
(#2327, @hhsecond) - Enables loading and scoring models whose conda environments include dependencies in conda-forge (#2797, @dbczumar)
- Add support for scoring ONNX-persisted models that return Python lists (#2742, @andychow-db)
Features (MLflow Projects)
- Add plugin interface for executing MLflow projects against custom backends (#2566, @jdlesage)
- Add ability to specify additional cluster-wide Python and Java libraries when executing
MLflow projects remotely on Databricks (#2845, @pogil) - Allow running MLflow projects against remote artifacts stored in any location with a corresponding
ArtifactRepository implementation (Azure Blob Storage, GCS, etc) (#2774, @trangevi) - Allow MLflow projects running on Kubernetes to specify a different tracking server to log to via the
KUBE_MLFLOW_TRACKING_URI
for passing a different tracking server to the kubernetes job (#2874, @catapulta)
Features (UI)
- Significant performance and scalability improvements to metric comparison and scatter plots in
the UI (#2447, @mjlbach) - The main MLflow experiment list UI now includes a link to the model registry UI (#2805, @zhidongqu-db),
- Enable viewing PDFs logged as artifacts from the runs UI (#2859, @ankmathur96)
- UI accessibility improvements: better color contrast (#2872, @Zangr), add child roles to DOM elements (#2871, @Zangr)
Features (Tracking Client and Server)
- Adds ability to pass client certs as part of REST API requests when using the tracking or model
registry APIs. (#2843, @PhilipMay) - New community plugin: support for storing artifacts in Aliyun (Alibaba Cloud) (#2917, @SeaOfOcean)
- Infer and set content type and encoding of objects when logging models and artifacts to S3 (#2881, @hajapy)
- Adds support for logging artifacts to HDFS Federation ViewFs (#2782, @fhoering)
- Add healthcheck endpoint to the MLflow server at
/health
(#2725, @crflynn) - Improves performance of default file-based tracking storage backend by using LibYAML (if installed)
to read experiment and run metadata (#2707, @Higgcz)
Bug fixes and documentation updates:
- Several UI fixes: remove margins around icon buttons (#2827, @harupy),
fix alignment issues in metric view (#2811, @zhidongqu-db), add handling ofNaN
values in metrics plot (#2773, @dbczumar), truncate run ID in the run name when
comparing multiple runs (#2508, @harupy) - Database engine URLs are no longer logged when running
mlflow db upgrade
(#2849, @hajapy) - Updates
log_artifact
,log_model
APIs to consistently use posix paths, rather than OS-dependent
paths, when computing artifact subpaths. (#2784, @mikeoconnor0308) - Fix
ValueError
when scoringtf.keras
1.X models usingmlflow.pyfunc.predict
(#2762, @juntai-zheng) - Fixes conda environment activation bug when running MLflow projects on Windows (#2731, @MynherVanKoek)
mlflow.end_run
will now clear the active run even if the run cannot be marked as
terminated (e.g. because it's been deleted), (#2693, @ahmed-shariff)- Add missing documentation for
mlflow.spacy
APIs (#2771, @harupy)
Small bug fixes and doc updates (#2919, @willzhan-db; #2940, #2942, #2941, #2943, #2927, #2929, #2926, #2914, #2928, #2913, #2852, #2876, #2808, #2810, #2442, #2780, #2758, #2732, #2734, #2431, #2733, #2716, @harupy; #2915, #2897, @jwgwalton; #2856, @jkthompson; #2962, @hhsecond; #2873, #2829, #2582, @dmatrix; #2908, #2865, #2880, #2866, #2833, #2785, #2723, @smurching; #2906, @dependabot[bot]; #2724, @aarondav; #2896, @ezeeetm; #2741, #2721, @mlflow-automation; #2864, @tallen94; #2726, @crflynn; #2710, #2951 @mparkhe; #2935, #2921, @ankitmathur-db; #2963, #2739, @dbczumar; #2853, @stat4jason; #2709, #2792, @juntai-zheng @juntai-zheng; #2749, @HiromuHota; #2957, #2911, #2718, @arjundc-db; #2885, @willzhan-db; #2803, #2761, @pogil; #2392, @jnmclarty; #2794, @Zethson; #2766, #2916 @shubham769)