An open-source ML pipeline development platform

The open-source Continuous Machine Learning Platform
Build ML pipelines with only Python, run on your laptop, or in the cloud.

Sematic is an open-source ML development platform. It lets ML Engineers and Data Scientists write arbitrarily complex end-to-end pipelines with simple Python and execute them on their local machine, in a cloud VM, or on a Kubernetes cluster to leverage cloud resources.
Sematic is based on learnings gathered at top self-driving car companies. It enables chaining data processing jobs (e.g. Apache Spark) with model training (e.g. PyTorch, Tensorflow), or any other arbitrary Python business logic into type-safe, traceable, reproducible end-to-end pipelines that can be monitored and visualized in a modern web dashboard.
Read our documentation and join our Discord channel.
Why Sematic
- Easy onboarding โ no deployment or infrastructure needed to get started,
- Local-to-cloud parity โ run the same code on your local laptop and on your
- End-to-end traceability โ all pipeline artifacts are persisted, tracked,
- Access heterogeneous compute โ customize required resources for each
- Reproducibility โ rerun your pipelines from the UI with guaranteed
Getting Started
To get started locally, simply install Sematic in your Python environment:
$ pip install sematic
Start the local web dashboard:
$ sematic start
Run an example pipeline:
$ sematic run examples/mnist/pytorch
Create a new boilerplate project:
$ sematic new mynewproject
Or from an existing example:
$ sematic new mynewproject --from examples/mnist/pytorch
Then run it with:
$ python3 -m mynewproject
To deploy Sematic to Kubernetes and leverage cloud resources, see our documentation.
Features
- Lightweight Python SDK โ define arbitrarily complex end-to-end pipelines
- Pipeline nesting โ arbitrarily nest pipelines into larger pipelines
- Dynamic graphs โ Python-defined graphs allow for iterations, conditional
- Lineage tracking โ all inputs and outputs of all steps are persisted and
- Runtime type-checking โ fail early with run-time type checking
- Web dashboard โ Monitor, track, and visualize pipelines in a modern web UI
- Artifact visualization โ visualize all inputs and outputs of all steps in
- Local execution โ run pipelines on your local machine without any
- Cloud orchestration โ run pipelines on Kubernetes to access GPUs and other
- Heterogeneous compute resources โ run different steps on different
- Helm chart deployment โ install Sematic on your Kubernetes cluster
- Pipeline reruns โ rerun pipelines from the UI from an arbitrary point in
- Step caching โ cache expensive pipeline steps for faster iteration
- Step retry โ recover from transient failures with step retries
- Metadata and collaboration โ Tags, source code visualization, docstrings,
- Numerous integrations โ See below
Integrations
- Apache Spark โ on-demand in-cluster Spark cluster
- Ray โ on-demand Ray in-cluster Ray resources
- Snowflake โ easily query your data warehouse (other warehouses supported
- Plotly, Matplotlib โ visualize plot artifacts in the web dashboard
- Pandas โ visualize dataframe artifacts in the dashboard
- Grafana โ embed Grafana panels in the web dashboard
- Bazel โ integrate with your Bazel build system
- Helm chart โ deploy to Kubernetes with our Helm chart
- Git โ track git information in the web dashboard
Community and resources
Learn more about Sematic and get in touch with the following resources:
Contribute!
To contribute to Sematic, check out open issues tagged "good first issue", and get in touch with us on Discord. You can find instructions on how to get your development environment set up in our developer docs. If you'd like to add an example, you may also find this guide helpful.
