Step By Step Guide To Building ML Model Registry
Model Registry in MLOps offers a collaborative hub to work together on various stages of the ML lifecycle including managing multiple model artefacts, tracking and governing models. Additionally, it is a place to find, publish, and use ML models. With a centralized tracking system for trained ML models, the registry stores model lineage, versioning, and additional configuration information. Model registry key features: Central Repository: It allows the user to manage all their models in one place and share the information with team members.Model Versioning: Helps in automatically keeping track of the versions, including data usage, hyperparameters, or the user’s created model. The registry notifies the user for every event in the ML lifecycle. Source: neptune.ai User-friendly model registry platforms Microsoft’s Azure and MLFlow are user friendly tools for model registry. Here’s a step-by-step guide on how to create a model registry on these platforms. Azure machine learning model Microsoft’s Azure ML is a cloud-based platform for training, deploying, automating, managing, and monitoring ML experiments. Its reusable pipelines allow for easy model training, data preparation, and deployment of the ML models. It also stores the metadata associated with the model- factors including model description, tags, framework, where it is being deployed and if the deployments are healthy etc. For instance, tags allow the user to categorise the models and apply filters while listing them. The Azure ML Workflow: Register the model For starters, two components are required:- resources representing the model being deployed and a code running in the service & executing the model on a given input. The service works by uploading the registered model to the cloud and mounting it to the running web service. There are two ways to register the model. Register the model from a local site: !wget https://aka.ms/bidaf-9-model -o model.onnx !az ml model register -n bidaf_onnx -p ./model.onnx Register the model from ML training run: az ml model register -n bidaf_onnx –asset-path outputs/model.onnx –experiment-name myexperiment –run-id myrunid –tag area=qna 2. Preparing an entry sheet The entry script receives the data submitted to the web service, passes it to the model, and then returns the model’s response to the client. This script is written explicitly for the specific model and should thus understand the data the model expects. For instance, it includes loading the model (using a function called init ()) and running the model on input data (using a function called run()). 3. Prepare an inference configuration. A deployment configuration specifying the memory and cores to reserve for the web service is required to run the service’s details. For instance, the user needs 2 GB of memory, 2 CPU cores and the ability to autoscale. An example of this, { “computeType”: “local”, “port”: 32267 } 4. Deploy the model After this step, the model is ready to be deployed. !az ml model deploy -n myservice -m bidaf_onnx:1 –overwrite –ic dummyinferenceconfig.json –dc deploymentconfig.json !az ml service get-logs -n myservice To call in the model and check that it is deployed successfully, the user can opt for a liveness request at !curl -v http://localhost:32267 !curl -v -X POST -H “content-type:application/json” -d ‘{“query”: “What color is the fox”, “context”: “The quick brown fox jumped over the lazy dog.”}’’ http://localhost:32267/score 5. Define the entry script actually to load the model. Modify the entry script and then deploy it again. Deploy the service again: !az ml model deploy -n myservice -m bidaf_onnx:1 –overwrite –ic inferenceconfig.json –dc deploymentconfig.json !az ml service get-logs -n myservice 6. Choose a compute target Choose a computer target from which to host the model. 7. Re-deploy the model to cloud Once the service has been tested locally, choose a remote computer target and deploy the model to the cloud. Its reusable pipelines allow for easy model training, data preparation, and deployment of the ML models. The model can also be deployed as a webservice in Azure Container Instance. To know more, click here. II. MLFlow MLFlow is an open-source platform that centralizes model stores to manage the MLops Lifecycle. It includes model lineage, model versioning, production to deployment transitions, and annotations. Model Registry Database SQLite is a C library that includes a disk-based database without a separate server process and allows access to the database using a nonstandard variant of the SQL query language. The user can prototype an application on SQLite and port the code to a more extensive database. The MLFlow Workflow consists of two types- UI and API workflow. UI Workflow Register model on the Artifacts page in the MLFlow section.Add a new model in the ‘‘Model name’’ field- the user can either choose from the existing models or provide a new name. Once named, the Registered model section will show the model details. All the versions of the models will be shown in their detailed sections. The model stage can be changed from staging to production from the drop-down menu. API Workflow To design API, the operations need to be defined in terms of: Publish newly trained models.Publish a new version of a model.Update the deployment stage of a published model.Get metadata associated with a productionized model. There are three programmatic ways to add a model to the registry. Using the mlflow.<model_flavor>.log_model() method. from random import random, randint from sklearn.ensemble import RandomForestRegressor import mlflow import mlflow.sklearn with mlflow.start_run(run_name=”YOUR_RUN_NAME”) as run: params = {“n_estimators”: 5, “random_state”: 42} sk_learn_rfr = RandomForestRegressor(**params) # Log parameters and metrics using the MLflow APIs mlflow.log_params(params) mlflow.log_param(“param_1”, randint(0, 100)) mlflow.log_metrics({“metric_1”: random(), “metric_2”: random() + 1}) # Log the sklearn model and register as version 1 mlflow.sklearn.log_model( sk_model=sk_learn_rfr, artifact_path=”sklearn-model”, registered_model_name=”sk-learn-random-forest-reg-model” 2. The mlflow.register_model() method result = mlflow.register_model( “runs:/d16076a3ec534311817565e6527539c0/sklearn-model”, “sk-learn-random-forest-reg” 3.  create_registered_model() from mlflow.tracking import MlflowClient client = MlflowClient() client.create_registered_model(“sk-learn-random-forest-reg-model”)
Model Registry in MLOps offers a collaborative hub to work together on various stages of the ML lifecycle.
Model Registry in MLOps offers a collaborative hub to work together on various stages of the ML lifecycle.
["database key terms", "Guide", "python database gui"]
["database key terms", "machine learning", "TPU", "AI", "Azure", "R", "ML", "MLOps", "model registry", "MLflow", "python database gui", "Azure ML", "Guide"]
["AI", "machine learning", "ML", "MLOps", "MLflow", "Azure ML", "model registry", "Azure", "TPU", "R"]
Avi Gopani is a technology journalist that seeks to analyse industry trends and developments from an interdisciplinary perspective at Analytics India Magazine. Her articles chronicle cultural, political and social stories that are curated with a focus on the evolving technologies of artificial intelligence and data analytics.