/machine-learning-api

Hopsworks Machine Learning Api 🚀 Model management with a model registry and model serving

Primary LanguagePythonApache License 2.0Apache-2.0

Hopsworks Model Management

Hopsworks Community Hopsworks Model Management Documentation python PyPiStatus Scala/Java Artifacts Downloads Ruff License

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.

Getting Started On Hopsworks

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)

Tutorials

You can find more examples on how to use the library in our tutorials.

Documentation

Documentation is available at Hopsworks Model Management Documentation.

Issues

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.

Contributing

If you would like to contribute to this library, please see the Contribution Guidelines.