Feast is an open-source feature store designed for machine learning workflows. It provides a centralized platform for defining, managing, and serving features - the input variables used by machine learning models - across both training and online inference. By standardizing feature storage and access, Feast aims to reduce the operational overhead of feature engineering and ensure consistency between the features used during model training and those served in production.
Feast was initially developed by Gojek and first released as an open-source project in 2019. It later became a project under the Linux Foundation's AI & Data umbrella, with contributions from companies such as Tecton, which was co-founded by Feast's original creators. The project's name is an acronym for "Feature Store," reflecting its core purpose.
Core Concepts
Feast organizes machine learning features into a structured framework. The primary entities include:
- Feature Views: A logical grouping of features that share a common data source and time window. Each feature view defines the schema, source data, and transformations applied to generate features.
- Entities: The keys that identify the subjects of features, such as a user ID or a transaction ID. Entities link features to specific data points.
- Feature Services: A collection of feature views that can be used together to serve features for a particular model or application.
- Data Sources: The underlying storage systems, such as BigQuery, Redshift, or Kafka, from which raw data is read to compute features.
Architecture and Components
Feast's architecture is composed of several key components that work together to manage the feature lifecycle:
- Feast Core: The central registry that stores metadata about feature views, entities, and data sources. It acts as the system of record for feature definitions.
- Feast Serving: The service that provides low-latency access to features for online inference. It retrieves features from online stores and returns them to model serving systems.
- Feast Job Service: A component that manages the computation of features from batch and streaming data sources, populating both offline and online stores.
- Offline Store: A storage system for historical feature data, typically used for training datasets. It supports point-in-time correct joins to avoid data leakage.
- Online Store: A fast-access storage system, such as Redis or DynamoDB, that serves features in real-time for online predictions.
Usage and Workflow
Feast is typically used in the following workflow:
- Define Features: Data scientists or engineers define feature views and entities using Python or YAML configuration files.
- Apply: The definitions are applied to the Feast registry, which updates the metadata.
- Materialize: Feast computes feature values from data sources and stores them in the offline and online stores.
- Train: Historical features are retrieved from the offline store to create training datasets.
- Serve: During inference, the model serving system queries the online store via Feast Serving to get up-to-date feature values.
This workflow enables teams to reuse features across multiple models and ensures that the same feature definitions are used in both training and production.
Ecosystem and Integration
Feast integrates with a variety of data and machine learning tools. It supports cloud data warehouses like Google Cloud BigQuery, Amazon Web Services Redshift, and Microsoft Azure Synapse as offline stores. For online serving, it can use Redis, DynamoDB, or Firestore. Feast also works with popular machine learning frameworks such as TensorFlow and PyTorch, and can be deployed on Kubernetes for scalability.
Feast is often compared to other feature stores like Tecton and Hopsworks, but it distinguishes itself by being open-source and vendor-neutral. This makes it a popular choice for organizations that want to avoid lock-in and have full control over their feature infrastructure.
Community and Adoption
Feast has gained significant adoption in the machine learning community. It is used by companies such as Gojek, Walmart, and Deliveroo to power their recommendation and personalization systems. The project has an active community on GitHub, with regular releases and contributions from a wide range of developers. Feast's documentation and tutorials are widely referenced in the machine learning community as a standard approach to feature management.
As of 2024, Feast continues to evolve with new features and improvements, including better support for streaming features and enhanced integration with large language model workflows. Its role in the artificial intelligence ecosystem is expected to grow as more organizations adopt feature stores to streamline their ML operations.