Small-scale MLOps library#

Cascade is a lightweight and modular MLOps library with the aim to make ML development more efficient targeted at small teams or individuals.

pip install cascade-ml

Who could find it useful#

The slope of adopting MLOps platforms can sometimes be too steep for small-scale teams. However, they can still benefit from some MLOps practices integrated into the workflow.

MLOps for everyone#

Cascade offers the solution that enables these features for small projects while demanding little. There is usually no need for the full MLOps setups in most of the small-scale ML-projects. Taking this in mind, Cascade is built modular to enable users to tailor the solution to their specific needs by using different parts of the library without the need to bring everything at once.

Pipeline building

Build traceable data transformations from modular blocks

Experiment management

Write your parameters and metrics in a structured way

Artifact and file storage

Store your models and files locally

Data validation

Be sure that your data is clean

Advanced features#

Web-UI

Just do cascade ui to get a nice dashboard for your experiments

CLI

Comment, tag and write experiment descriptions from command line

Query results

Use CLI to access your experiments (if you have too many of them)

Experiment management#

Here is a simple example of how you can use Cascade to track an sklearn classifier.

1. Define a Model#

from sklearn.linear_model import LogisticRegression
from cascade.utils.sklearn import SkModel

model = SkModel(
    blocks = [
        LogisticRegression()
    ]
)

2. Save it in Line#

from cascade.lines import ModelLine

line = ModelLine("line", model_cls=SkModel)
line.save(model)

3. Get rich metadata#

[
    {
        "name": "cascade.utils.sklearn.sk_model.SkModel",
        "description": None,
        "tags": [],
        "comments": [],
        "links": [],
        "type": "model",
        "created_at": "2024-09-03T19:36:49.346994+00:00",
        "metrics": [],
        "params": {},
        "pipeline": "Pipeline(steps=[('0', LogisticRegression())])",
        "path": "/home/ilia/local/cascade_proj/cascade_repo/cascade/docs/line/00000",
        "slug": "kickass_mayfly_of_pleasure",
        "saved_at": "2024-09-03T19:37:17.143040+00:00",
        "python_version": "3.11.0rc1 (main, Aug 12 2022, 10:02:14) [GCC 11.2.0]",
        "user": "ilia",
        "host": "my-pc-name",
        "cwd": "/home/ilia/local/cascade_proj/cascade_repo/cascade/docs",
        "git_commit": "07188653071cb73f8ede52ca09eea423b3ff2c0f",
        "git_uncommitted_changes": [
            "M cascade/docs/source/index.rst",
            "M cascade/docs/source/tutorials/tutorials.rst\n?? cascade/docs/line/"
        ]
    }
]

Documentation#

Tutorial

Learn how you can use Cascade in your ML workflows step-by-step

How-to guides

Recipes for specific use-cases

Explanations

Theoretical basis of Cascade

Reference

Cascade API Reference

Key Principles#

  • Elegancy - ML code should be about ML with minimum meta-code

  • Agility - it should be easy to build prototypes and integrate existing project with Cascade

  • Reusability - code should have an ability to be reused in similar projects

  • Traceability - everything should have meta data

If you have any questions#

Any contributions are welcome!

Write an issue

Join GitHub discussions

Cascade on X