Welcome to Cascade!#

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

tutorials/tutorials.html#pipelines-basics
Experiment management

Write your parameters and metrics in a structured way

tutorials/tutorials.html#experiments-basics
Artifact and file storage

Store your models and files locally

tutorials/tutorials.html#artifacts-and-files
Data validation

Be sure that your data is clean

tutorials/tutorials.html#data-validation

Advanced features#

CLI

Comment, tag and write experiment descriptions from command line

tutorials/tutorials.html#cli
Dash-based visualizations

See plots and tables in dash-based web interface

tutorials/tutorials.html#viewers
Web-UI

Coming soon!

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

Tutorial
How-to guides

Recipes for specific use-cases

How-to guides
Explanations

Theoretical basis of Cascade

Explanations
Reference

Cascade API Reference

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