Skip to main content

whisk: The easy-bake ML project structure

pypi PyPI - Python Version docs

whisk is an open-source ML project framework that makes collaboration, reproducibility, and deployment "just work". It combines a suite of lightweight tools with a logical and flexible project structure. Release your model to the world without a software engineer.

Whisk doesn't lock you into a particular ML framework or require you to learn yet another ML packaging API. Instead, it lets you leverage the large Python ecosystem by structuring your ML project in a Pythonic-way. Whisk does the structuring while you focus on the data science.

Read more about our beliefs.

Getting Started

Start by creating a project. Begin a terminal session and run the commands below. Note: We use demo as the project name in the examples below. If you use a different project name, be sure to replace demo with the name of your project.

$ pip install whisk
$ whisk create demo
$ cd demo
$ source venv/bin/activate

The commands above do the following:

To try out all of the features, continue the quick tour of whisk →.

Examples

The whisk-ml GitHub org contains example whisk projects. Check out these examples and clone them locally. Since whisk makes reproducibility "just work", in most cases you simply need to run whisk setup to use the models generated by the projects. Here are few examples to start with:

Beliefs

  • A Reproducible, collaborative project is a solved problem for classical software - We don't need to re-invent the wheel for machine learning projects. Instead, we need guide rails to help data scientists structure projects without forcing them to also become software engineers.
  • A notebook is great for exploring, but not for production - A data science notebook is where experimentation starts, but you can't create a reproducible, collaborative ML project with just a *.ipynb file.
  • Python already has a good package manager - We don't need overly abstracted solutions to package a trained ML model. A properly structured ML project makes it easy to use pip for packaging a model, making it easy for anyone to benefit from your work.
  • Version control is a requirement - You can't have a reproducible project if the code and training data isn't in version control.
  • Docker and Kubernetes are usually not needed - when we explicitly declare and isolate dependencies, we don't need to rely on the implicit existence of packages installed in a Docker container. Docker also creates a slow development flow: repeatedly restarting Docker containers is far slower than doing the same in pure Python. Python already has solid native tools for this problem.
  • Optimize for debugging - 90% of writing software is fixing bugs. It should be easy to debug your model logic locally. You should be able to search your error and find results, not sift through custom package source code.

Contributing

Want to help build whisk? Check out our contributing documentation.

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template. The project template is heavily inspired by Cookiecutter Data Science.

Release files for whisk 0.1.32

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for whisk 0.1.32
File Size Uploaded
whisk-0.1.32.tar.gz 79.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for whisk 0.1.32
File Interpreter ABI Platform
whisk-0.1.32-py3-none-any.whl Python 3 none any Details

Total release size: 129.3 kB

Release files / whisk-0.1.32.tar.gz

Download URL whisk-0.1.32.tar.gz
Size 79.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d8419c5a4005e8748e2e27ba2f382a33599c39ffd3fddfc5ec09deba7ab709a8
BLAKE2b-256 checksum
How to use checksums
9a761c994327523a2e9e6517142409238cdf8750d62d72eaf643eb9c33f250ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.14.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.5

Release files / whisk-0.1.32-py3-none-any.whl

Download URL whisk-0.1.32-py3-none-any.whl
Size 49.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9d2dc3478d3fd3fcca851571d4aeda9d695ffefaddb7cb3ec34a85042cb5266f
BLAKE2b-256 checksum
How to use checksums
621b8549210e43495e29494578beae17305ead298883e3fb1e6f0f45a4897cba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.14.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.5

Release history Release notifications | RSS feed

This release

0.1.32 This release

2 release files

0.1.31

2 release files

0.1.30

2 release files

0.1.29

2 release files

0.1.28

2 release files

0.1.27

2 release files

0.1.26

2 release files

0.1.25

2 release files

0.1.24

2 release files

0.1.22

2 release files

0.1.21

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.9

2 release files

0.1.8

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page