Verta
Latest
Search
K

Make models immutable with lock feature

One of the common requests from our enterprise users is to guarantee immutability of registered models. The primary drivers for model immutability are:
  • Ensure compliance and security
  • Put controls in place to avoid any unintended changes to already deployed or release ready models
  • Minimize risks of introducing breaking changes to a model prior to release
Hence, we have introduced a lock functionality for registered models.

Lock levels

For any registered model, there are 3 lock levels available:
  • Open (default option)- Anyone with write permssion can update the registered model
  • Redact - Only Org admins can make updates
  • Closed - No one can make updates once a model is registered. A new model version needs to be registered if you want to make any updates
Anyone with write permission can increase the security level (e.g. move from redact to close). Only Org admins can reduce the security level (e.g. move from Redact to Open).
Note that the model immutability is applicable to all the key ingredients logged e.g. artifacts, model packages, environment variables, data and code versions etc. Users with write permissions can still update descriptions, tags, readme doc, change stage etc.

How to assign and update lock level ?

  1. 1.
    If you are using Verta's Experiment Management system to log registered models, you can configure either redact or closed lock level as the default option for all registered models. Please note that open is the default option offered.
  2. 2.
    Let the users, assign lock level when a model is being registered.
  3. 3.
    Change the lock level after a model is registered (reducing the lock level can only be done by Org-admins).

Assign and update lock level via client

Here is an example of how to assign lock level via client:
from verta.registry.lock import (
Open, Redact, Closed,
open, redact, closed,
)
from verta import Client
HOST = "XXX.XXXX.verta.ai"
client = Client(HOST)
#default option is Open
#model_version = client.create_registered_model().create_version()
#register at a lock_level in Redact mode so only org admins can make updates
model_version = client.create_registered_model().create_version(lock_level=Redact())
#register at a lock_level in Closed mode so no one can make updates
#model_version = client.create_registered_model().create_version(Closed())
Here is an example of how to update lock level via client:
model_version.set_lock_level(Closed())

Assign and update lock level via webapp

Here is the example of how to assign lock level in Web UI:
Here is the example of how to update lock level in Web UI: