This workshop aims to teach users about Feast, an open-source feature store.
We explain concepts & best practices by example, and also showcase how to address common use cases.
Feast is an operational system for managing and serving machine learning features to models in production. It can serve features from a low-latency online store (for real-time prediction) or from an offline store (for batch scoring).
Feast solves several common challenges teams face:
- Lack of feature reuse across teams
- Training-serving skew and complex point-in-time-correct data joins
- Difficulty operationalizing features for online inference
This workshop assumes you have the following installed:
- A local development environment that supports running Jupyter notebooks (e.g. VSCode with Jupyter plugin)
- Python 3.7+
- pip
- Docker & Docker Compose (e.g.
brew install docker docker-compose) - Terraform (docs)
- An AWS account setup with credentials(e.g see AWS credentials quickstart)
Since we'll be learning how to leverage Feast in CI/CD, you'll also need to fork this workshop repository.
Caveats
- M1 Macbook development is untested with this flow. See also How to run / develop for Feast on M1 Macs.
- Windows development is untested with this flow.
See also: Feast quickstart, Feast x Great Expectations tutorial
These are meant mostly to be done in order, with examples building on previous concepts.
| Time (min) | Description | Module |
|---|---|---|
| 30-45 | Setting up Feast projects & CI/CD + powering batch predictions | Module 0 |
| 15-20 | Streaming ingestion & online feature retrieval with Kafka, Spark, Redis | Module 1 |
| 10-15 | Real-time feature engineering with on demand transformations | Module 2 |
| TBD | Feature server deployment (embed, as a service, AWS Lambda) | TBD |
| TBD | Versioning features / models in Feast | TBD |
| TBD | Data quality monitoring in Feast | TBD |
| TBD | Batch transformations | TBD |
| TBD | Stream transformations | TBD |
