2

I have an EC2 instance running a mlflow server using the following command:

mlflow server -h 0.0.0.0 --default-artifact-root s3://xxxx

After running multiple experiments, I was trying to register the best one. However, when trying to register or accessing the tab "Models", I get the following error:

INVALID_PARAMETER_VALUE: Model registry functionality is unavailable; got unsupported URI './mlruns' for model registry data storage. Supported URI schemes are: ['postgresql', 'mysql', 'sqlite', 'mssql']. See https://www.mlflow.org/docs/latest/tracking.html#storage for how to run an MLflow server against one of the supported backend storage locations.

This SO answer suggested adding a backend-store-uri:

mlflow server -h 0.0.0.0 --default-artifact-root --backend-store-uri sqlite:///mlflow.db

That solved the above issue, however, now all experiments are gone. The Experiments tab is blank. Is there a way to add a backend-store-uri after running multiple experiments while keeping all of them?

Fernando Wittmann
  • 1,991
  • 20
  • 16

1 Answers1

0

By default MLFlow uses the local file system to store your experiment, if you switch later on to a DB-based solution like you did, the database will be empty, as a result you won't see your past experiments (from the documentation):

--backend-store-uri URI to which to persist experiment and run data. Acceptable URIs are SQLAlchemy-compatible database connection strings (e.g. ‘sqlite:///path/to/file.db’) or local filesystem URIs (e.g. ‘file:///absolute/path/to/directory’). By default, data will be logged to the ./mlruns directory.

I can't seem to find a reference right now, but I have read that data won't be migrated upon switching --backend-store-uri, so what you are seeing it expected unfortunately, I am not aware of any easy way to export and re-import data.

Alessandro S.
  • 875
  • 12
  • 24