The MLflow Model Registry component is a centralized model store, set of APIs, and UI, to collaboratively manage the full lifecycle of an MLflow Model. It provides model lineage (which MLflow experiment and run produced the model), model versioning, stage transitions (for example from staging to production), and annotations.
The MLflow Model Registry is a standalone component that introduces several concepts that describe the full lifecycle of an MLflow Model.
An MLflow Model logged with one of the model flavor’s
- Registered Model
An MLflow Model registered with the MLflow Model Registry. A registered model has a unique name, contains versions, and other metadata.
- Model Version
Each registered model can have one or many versions. When a new model is added to the Model Registry, it is added as version 1. Each new model registered to the same model name increments the version number.
- Model Stage
Each model version can be assigned one or many stages. MLflow provides predefined stages for common use-cases such as Staging and Production.
Before a model can be added to the Model Registry you must log it using the
of the corresponding model flavors. Once a model has been logged, you can add it to the Model Registry through the UI or the API.
From the MLflow Runs detail page, select a logged MLflow Model in the Artifacts section.
Click the Register Model button.
In the Model Name field, if you are adding a new model, specify a unique name to identify the model. If you are registering a new version to an existing model, pick the existing model name from the dropdown.
Once the model is added to the Model Registry you can:
Navigate to the Registered Models page and view the model properties.
Go to the Artifacts section of the run detail page, click the model, and then click the model version at the top right to view the version you just created.
Each model has an overview page that shows the active versions.
Click a version to navigate to the version detail page.
On the version detail page you can see model version details and the current stage of the model version. Click the Stage drop-down at the top right, to transition the model version to one of the other valid stages.
You can register a model using two APIs:
If the model has already been logged, you can add it to the registry with the
register_model API, referencing the model by its URI.
If the model has not been logged, pass
log_model to log the model under the specified registered model.
mlflow.tensorflow.log_model(tf_saved_model_dir=saved_estimator_path, tf_meta_graph_tags=[tag_constants.SERVING], tf_signature_def_key="predict", artifact_path="model", registered_model_name="EmailMarketingCampaign")
If the registered model does not already exist, the registry will create one before creating a new model version.
To confirm that the model has successfully been registered, call the
client = mlflow.tracking.MlflowClient() client.get_model_version_details(name = "EmailMarketingCampaign", version = 12)
You can query for the latest version of each registered model by stage using the
client.get_latest_versions(name = "EmailMarketingCampaign", stages = ["Staging"])
Newly-registered model versions are added to the registry with stage None. To update the stage, call the
client.update_model_version(name = "EmailMarketingCampaign", version = 12 stage = "Production")