[FR] Experiments folder structure
See original GitHub issueThank you for submitting a feature request. Before proceeding, please review MLflow’s Issue Policy for feature requests and the MLflow Contributing Guide.
Please fill in this feature request template to ensure a timely and thorough response.
Willingness to contribute
The MLflow Community encourages new feature contributions. Would you or another member of your organization be willing to contribute an implementation of this feature (either as an MLflow Plugin or an enhancement to the MLflow code base)?
- Yes. I can contribute this feature independently.
- Yes. I would be willing to contribute this feature with guidance from the MLflow community.
- No. I cannot contribute this feature at this time.
I have little experience in coding UI, though.
Proposal Summary
In the MLflow UI allow experiments to be grouped together in a folder structure, preferably multiple levels deep, which can be collapsed and expanded, so that experiments can be grouped together and sorted easily.
Preferably, sort the experiments by name as well for clarity.
Motivation
- What is the use case for this feature?
- Why is this use case valuable to support for MLflow users in general?
- Why is this use case valuable to support for your project(s) or organization?
- Why is it currently difficult to achieve this use case? (please be as specific as possible about why related MLflow features and components are insufficient)
We have so many different experiments (with many training runs in each) that it becomes difficult to manage the list and keep an overview of the experiments. Being able to sort and group them would make it much simpler to manage them.
What component(s), interfaces, languages, and integrations does this feature affect?
Components
-
area/artifacts
: Artifact stores and artifact logging -
area/build
: Build and test infrastructure for MLflow -
area/docs
: MLflow documentation pages -
area/examples
: Example code -
area/model-registry
: Model Registry service, APIs, and the fluent client calls for Model Registry -
area/models
: MLmodel format, model serialization/deserialization, flavors -
area/projects
: MLproject format, project running backends -
area/scoring
: Local serving, model deployment tools, spark UDFs -
area/server-infra
: MLflow server, JavaScript dev server -
area/tracking
: Tracking Service, tracking client APIs, autologging
Interfaces
-
area/uiux
: Front-end, user experience, JavaScript, plotting -
area/docker
: Docker use across MLflow’s components, such as MLflow Projects and MLflow Models -
area/sqlalchemy
: Use of SQLAlchemy in the Tracking Service or Model Registry -
area/windows
: Windows support
Languages
-
language/r
: R APIs and clients -
language/java
: Java APIs and clients -
language/new
: Proposals for new client languages
Integrations
-
integrations/azure
: Azure and Azure ML integrations -
integrations/sagemaker
: SageMaker integrations -
integrations/databricks
: Databricks integrations
Details
(Use this section to include any additional information about the feature. If you have a proposal for how to implement this feature, please include it here. For implementation guidelines, please refer to the Contributing Guide.)
I would like to be able to name my experiments
Project 1/model 1.2
Project 1/model 1.3
Project 2/model 2.1
Project 2/model 2.2
etc.
which would be rendered in the UI as collapsible and expandable folders:
Experiments
- Project 1
- model 1.1
- model 1.2
- model 1.3
- Project 2
- model 2.1
- model 2.2
- etc.
Multiple levels of folders would be greatly appreciated, e.g. Program X/Project 3/Component B/model 1
Issue Analytics
- State:
- Created 2 years ago
- Reactions:6
- Comments:8
I think that in https://github.com/mlflow/mlflow/blob/master/mlflow/server/js/src/experiment-tracking/components/ExperimentListView.js there should be some code to group experiment-names into folders and subfolders, which should then be visualised in separate collapsible blocks, or something like that.
I.e. before the
.map
in https://github.com/mlflow/mlflow/blob/master/mlflow/server/js/src/experiment-tracking/components/ExperimentListView.js#L156-L173 I would like to insert some sort of “group by” folder, and then create a collapsible<div>
per group (folder), in which you can list the actual experiment names.One tricky part could be to make this recursive - in the sense that you can have multiple levels of folders.
Actually it’s probably not terribly complex or tricky, but I’m just not familiar with the
js
syntax 😉Is there any estimated time or updates to this request?