Skip to content

Commit

Permalink
docs: update docs
Browse files Browse the repository at this point in the history
  • Loading branch information
antoinejeannot committed Jan 15, 2024
1 parent c1b1224 commit 7781cae
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 16 deletions.
85 changes: 69 additions & 16 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<p align="center">
<a href="https://github.com/Cornerstone-OnDemand/modelkit">
<img src="https://raw.githubusercontent.com/Cornerstone-OnDemand/modelkit/main/.github/resources/logo.svg" alt="Logo" width="80" height="80">
</a>
<a href="https://github.com/cornerstone-ondemand/modelkit">
<img src="https://raw.githubusercontent.com/cornerstone-ondemand/modelkit/main/.github/resources/logo.svg" alt="Logo" width="80" height="80">
</a>
</p>
<h1 align="center"> modelkit </h1>
<p align="center">
Expand All @@ -20,28 +20,81 @@
<a href="https://github.com/Cornerstone-OnDemand/modelkit/graphs/contributors"><img src="https://img.shields.io/github/contributors/Cornerstone-OnDemand/modelkit" /></a>
</p>

`modelkit` is a minimalist yet powerful MLOps library for Python, built for people who want to deploy ML models to production.

`modelkit` is a Python framework meant to make your ML models robust, reusable and performant in all situations you need to use them.
It packs several features which make your go-to-production journey a breeze, and ensures that the same exact code will run in production, on your machine, or on data processing pipelines.

It is meant to bridge the gap between the different uses of your algorithms. With `modelkit` you can ensure that the same exact code will run in production, on your machine, or on data processing pipelines.
## Quickstart

## Features
`modelkit` provides a straightforward and consistent way to wrap your prediction code in a `Model` class:

`modelkit`'s key features are:
```python
from modelkit import Model

- **simple** `modelkit` is just a Python library, use pip to install it and you are done.
- **custom** `modelkit` is useful whenever you need to go beyond off-the-shelf models: custom processing, heuristics, business logic, different frameworks, etc.
- **framework agnostic** you bring your own framework to the table, and you can use whatever code or library you want. Similarly, `modelkit` is not opinionated about how you build or train your models.
- **organized** `modelkit` encourages you to version and share you ML library and artifacts with others, as a Python package or as a service. Let others use and evaluate your models!
- **fast** `modelkit` add minimal overhead to prediction calls. Model predictions can be batched for speed (you define the batching logic).
- **fast to code** Models only need to define their prediction logic and that's it. No cumbersome pre or postprocessing logic, branching options, etc... The boilerplate code is minimal and extensible.
- **fast to deploy** Models can be served in a single CLI call using [fastapi](https://fastapi.tiangolo.com/)
class MyModel(Model):
def _predict(self, item):
# This is where your prediction logic goes
...
return result
```

Be sure to check out our tutorials in the [documentation](https://cornerstone-ondemand.github.io/modelkit/).

And more:
## Features

Wrapping your prediction code in `modelkit` instantly gives acces to all features:

- **fast** Model predictions can be batched for speed (you define the batching logic) with minimal overhead.
- **composable** Models can depend on other models, and evaluate them however you need to
- **extensible** Models can rely on arbitrary supporting configurations files called _assets_ hosted on local or cloud object stores
- **type-safe** Models' inputs and outputs can be validated by [pydantic](https://pydantic-docs.helpmanual.io/), you get type annotations for your predictions and can catch errors with static type analysis tools during development.
- **async** Models support async and sync prediction functions. `modelkit` supports calling async code from sync code so you don't have to suffer from partially async code.
- **testable** Models carry their own unit test cases, and unit testing fixtures are available for [pytest](https://docs.pytest.org/en/6.2.x/)
- **robust** `modelkit` helps you follow software development best practices: all configurations and artifacts are explicitly versioned and tested.
- **fast to deploy** Models can be served in a single CLI call using [fastapi](https://fastapi.tiangolo.com/)

In addition, you will find that `modelkit` is:

- **simple** Use pip to install `modelkit`, it is just a Python library.
- **robust** Follow software development best practices: version and test all your configurations and artifacts.
- **customizable** Go beyond off-the-shelf models: custom processing, heuristics, business logic, different frameworks, etc.
- **framework agnostic** Bring your own framework to the table, and use whatever code or library you want. `modelkit` is not opinionated about how you build or train your models.
- **organized** Version and share you ML library and artifacts with others, as a Python package or as a service. Let others use and evaluate your models!
- **fast to code** Just write the prediction logic and that's it. No cumbersome pre or postprocessing logic, branching options, etc... The boilerplate code is minimal and sensible.

## Installation

Install the latest stable release with `pip`:

```
pip install modelkit
```

Optional dependencies are available for remote storage providers ([see documentation](https://cornerstone-ondemand.github.io/modelkit/assets/storage_provider/#using-different-providers))

### 🚧 Beta release

`modelkit 0.1` and onwards will be shipped with `pydantic 2`, bringing significant performance improvements 🎉 ⚡

To try out the beta before it is stable:

```
pip install --pre modelkit
```

Also, you can refer to the [modelkit migration note](https://cornerstone-ondemand.github.io/modelkit/migration.md)
to ease the migration process!

## Community
Join our [community](https://discord.gg/ayj5wdAArV) on Discord to get support and leave feedback

### Local install

Contributors, if you want to install and test locally:

```
# install
make setup
# lint & test
make tests
```
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ site_description: "Library for machine learning models"

nav:
- Home: "index.md"
- Migration note: "migration.md"
- Developer guide:
- "library/overview.md"
- Models:
Expand Down

0 comments on commit 7781cae

Please sign in to comment.