Workshop: Learning Feast
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.
What is Feast?
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).
Why Feast?
Feast solves several common challenges teams face:
- Lack of feature reuse across teams
- Complex point-in-time-correct data joins for generating training data
- Difficulty operationalizing features for online inference while minimizing training / serving skew
Pre-requisites
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+
- Java 11 (for Spark, e.g.
brew install java11
) - pip
- Docker & Docker Compose (e.g.
brew install docker docker-compose
) - Terraform (docs)
- AWS CLI
- An AWS account setup with credentials via
aws configure
(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 has only been tested with WSL. You will need to follow this guide to have Docker play nicely.
Modules
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 |