HSML is the library to interact with the Hopsworks Model Registry and Model Serving. The library makes it easy to export, manage and deploy models.
However, to connect from an external Python environment additional connection information, such as host and port, is required.
Get started easily by registering an account on Hopsworks Serverless. Create your project and a new Api key. In a new python environment with Python 3.8 or higher, install the client library using pip:
# Get all Hopsworks SDKs: Feature Store, Model Serving and Platform SDK
pip install hopsworks
# or just the Model Registry and Model Serving SDK
pip install hsml
You can start a notebook and instantiate a connection and get the project feature store handler.
import hopsworks
project = hopsworks.login() # you will be prompted for your api key
mr = project.get_model_registry()
# or
ms = project.get_model_serving()
or using hsml
directly:
import hsml
connection = hsml.connection(
host="c.app.hopsworks.ai", #
project="your-project",
api_key_value="your-api-key",
)
mr = connection.get_model_registry()
# or
ms = connection.get_model_serving()
Create a new model
model = mr.tensorflow.create_model(name="mnist",
version=1,
metrics={"accuracy": 0.94},
description="mnist model description")
model.save("/tmp/model_directory") # or /tmp/model_file
Download a model
model = mr.get_model("mnist", version=1)
model_path = model.download()
Delete a model
model.delete()
Get best performing model
best_model = mr.get_best_model('mnist', 'accuracy', 'max')
Deploy a model
deployment = model.deploy()
Start a deployment
deployment.start()
Make predictions with a deployed model
data = { "instances": [ model.input_example ] }
predictions = deployment.predict(data)
You can find more examples on how to use the library in our tutorials.
Documentation is available at Hopsworks Model Management Documentation.
For general questions about the usage of Hopsworks Machine Learning please open a topic on Hopsworks Community. Please report any issue using Github issue tracking.
If you would like to contribute to this library, please see the Contribution Guidelines.