Skip to content

redis-applied-ai/redis-model-store

Repository files navigation

🧠 Redis Model Store

License: MIT Language Code style: black GitHub last commit pypi

Store, version, and manage your ML models in Redis with ease. redis-model-store provides a simple yet powerful interface for handling machine learning model artifacts in Redis.

✨ Features

  • 🔄 Automatic Versioning: Track and manage multiple versions of your models
  • 📦 Smart Storage: Large models are automatically sharded for optimal storage
  • 🔌 Pluggable Serialization: Works with any Python object (NumPy, PyTorch, TensorFlow, etc.)
  • 🏃‍♂️ High Performance: Efficient storage and retrieval using Redis pipelining
  • 🛡️ Safe Operations: Atomic operations with automatic cleanup on failures

🚀 Quick Start

Installation

# Using pip
pip install redis-model-store

# Or using poetry
poetry add redis-model-store

Basic Usage

Here's a simple example using scikit-learn:

from redis import Redis
from redis_model_store import ModelStore
from sklearn.ensemble import RandomForestClassifier

# Connect to Redis and initialize store
redis = Redis(host="localhost", port=6379)
store = ModelStore(redis)

# Train your model
model = RandomForestClassifier()
model.fit(X_train, y_train)

# Save model with version tracking
version = store.save_model(
    model,
    name="my-classifier",
    description="Random forest trained on dataset v1"
)

# List available models
models = store.list_models()
print(f"Available models: {models}")

# Load latest version
model = store.load_model("my-classifier")

# Load specific version
model = store.load_model("my-classifier", version=version)

# View all versions
versions = store.get_all_versions("my-classifier")
for v in versions:
    print(f"Version: {v.version}, Created: {v.created_at}")

🛠️ Contributing

We welcome contributions! Here's how to get started:

Development Setup

  1. Clone the repository:
git clone https://github.com/redis-applied-ai/redis-model-store.git
cd redis-model-store
  1. Install poetry if you haven't:
curl -sSL https://install.python-poetry.org | python3 -
  1. Install dependencies:
poetry install --all-extras

Linting and Tests

poetry run format
poetry run check-mypy
poetry run test
poetry run test-verbose

Making Changes

  1. Create a new branch:
git checkout -b feat/your-feature-name
  1. Make your changes and ensure:

    • All tests pass (covering new functionality)
    • Code is formatted
    • Type hints are valid
    • Examples/docs added as notebooks to the docs/ directory.
  2. Push changes and open a PR

📚 Documentation

For more usage examples check out tbhis Example Notebook.