Model versioning allows you to create multiple versions of the same model. With model versioning, you can organize your models in a way that helps you navigate and understand which changes had what effect on the models.
Model versioning is tightly coupled with the features and API provided by Vertex AI Model Registry, which we cover briefly before discussing model and data versioning.
With Vertex AI Model Registry (MR) you can view your models and all of their versions, aliases and labels in a single view.
Figure 1: Different model versions in Vertex AI Model Registry. The version ID is just an automatically assigned ascending integer, while the model labels can be used to specify the related resources and state, such as train pipeline ID, source code version and deployment environment.
On Vertex AI's Model Registry Capabilities:
It is possible to version a model in vertex AI, through providing the following:
False and "default" is provided in version_aliases, it will be overridden by the version_aliases, as if set to True).Model.list() method has a filter argument that enables filtering by the display name or labels.Figure 2: Uploading a model to Vertex AI Model Registry. When a new version of an existing model is uploaded, the parent model should be specified. If the model is new, the display name should be specified. Specifying a display name for an existing model will just be ignored by MR.
Through model versioning we can keep track of stable versions, identify versions that are deployed to production, as well as share models with other teams. Furthermore, versioning ensures reproducibility and the idempotency of predictions.
The version ID provided by MR is just an automatically assigned ascending integer. If same model is consumed from the MR by multiple teams (e.g. for running batch predictions or deploying endpoints), we recommend to apply semantic versioning to more easily communicate major changes in the model API. The alias feature of the MR is well suited for distinguishing semantic versions. Alternatively, the semantic versioning can be implemented at the application code layer, if models are not directly shared from the MR.
When a model is generated as a result of training it depends on: