Feast (Feature Store) is a tool for managing and serving machine learning features. Feast is the bridge between models and data.
Feast aims to:
- Provide a unified means of managing feature data from a single person to large enterprises.
- Provide scalable and performant access to feature data when training and serving models.
- Provide consistent and point-in-time correct access to feature data.
- Enable discovery, documentation, and insights into your features.
Feast decouples feature engineering from feature usage, allowing independent development of features and consumption of features. Features that are added to Feast become available immediately for training and serving. Models can retrieve the same features used in training from a low latency online store in production. This means that new ML projects start with a process of feature selection from a catalog instead of having to do feature engineering from scratch.
# Setting things up
fs = feast.Client('feast.example.com')
customer_features = ['CreditScore', 'Balance', 'Age', 'NumOfProducts', 'IsActive']
# Training your model (typically from a notebook or pipeline)
data = fs.get_historical_features(customer_features, customer_entities)
my_model = ml.fit(data)
# Serving predictions (when serving the model in production)
prediction = my_model.predict(fs.get_online_features(customer_features, customer_entities))
Clone the latest stable version of the Feast repository and navigate to the infra/docker-compose
sub-directory:
git clone --depth 1 --branch v0.6.2 https://github.com/feast-dev/feast.git
cd feast/infra/docker-compose
cp .env.sample .env
The .env
should be configured based on your environment. A GCP service account can be added if BigQuery will be used for historical serving (storing and retrieving training data).
Bring up Feast:
docker-compose up -d
The command above will bring up a complete Feast deployment with a Jupyter Notebook containing example notebooks.
Please refer to the official documentation at https://docs.feast.dev
Feast is a community project and is still under active development. Your feedback and contributions are important to us. Please have a look at our contributing guide for details.