Serve your features in production
Feast is an open-source feature store. It is the fastest path to operationalizing analytic data for model training and online inference.
Feast in four steps
Step 1
Set up a feature store
$ pip install feast
$ feast init
$ feast apply
Step 2
Generate point-in-time correct training datasets from your offline features
store = FeatureStore()
order_df = pd.from_csv('orders_df');
training_data = store.get_historical_features(
entity_df = orders_df,
feature_refs = [
"driver_stats:conv_rate",
"driver_stats:avg_daily_trips",
"customer_profile:current_balance",
"customer_profile:avg_passenger_count",
"customer_profile:lifetime_trip_count",
],
)
model.fit(training_data)
Step 3
Load your features into an online store
$ feast materialize-incremental
Step 4
Read your features at low latency
features = store.get_online_features(
feature_refs = [
"driver_stats:conv_rate",
"driver_stats:avg_daily_trips",
"customer_profile:current_balance",
"customer_profile:avg_passenger_count",
"customer_profile:lifetime_trip_count",
],
entity_rows = [{
"driver_id" : "MvIDnSG3",
"customer_id" : "yQlM1SRs"
}],
)
model.predict(features)
Operationalize your analytics data
Feast operationalizes your offline data so it’s available for real-time predictions, without building custom pipelines.
Ensure consistency across training and serving
Feast guarantees you’re serving the same data to models during training and inference, eliminating training-serving skew.
Reuse your current infrastructure
Feast doesn’t require the deployment and ongoing management of dedicated infrastructure.
It runs on top of cloud managed services; reusing your existing infrastructure and spinning up new resources when needed.
Standardize your data workflows across teams
Feast brings standardization and consistency to your data engineering workflows across models and teams. Many teams use Feast as the foundation of their internal ML platforms.
Stand up a feature store in 5 minutes
FAQ
Is Feast a feature computation system?
No. Even though some feature stores include transformations, Feast purely manages retrieval. Feast is used alongside a separate system that computes feature values. Most often, these are pipelines written in SQL or a Python Dataframe library and scheduled to run periodically.
If you need a managed feature store that provides feature computation, check out Tecton.
Is Feast a database?
No. Feast is a tool that manages data stored in other systems, (e.g. BigQuery or Cloud Firestore.) It is not a database, but it helps manage data stored in other systems.
How do I install and run Feast?
Feast is a Python library + optional CLI. You can install it using pip.
You might want to periodically run certain Feast commands (e.g. `feast materialize-incremental`, which updates the online store.) We recommend using schedulers such as Airflow or Cloud Composer for this.
Feast also supports optional deployment configurations that target Kubernetes. This deployment model works wherever Kubernetes can be run, like on-prem, and includes a job scheduler.
What clouds does Feast work on?
Feast is available today natively on GCP, and you can run Feast on Kubernetes on AWS. The next release of Feast aims to bring Feast to AWS.
Additionally, Feast supports optional deployment configurations that target Kubernetes. This deployment model works wherever Kubernetes can be run, like on-prem.
What data stores does Feast support?
Feast supports Google BigQuery, and Google Cloud Firestore as an online store. The next release of Feast aims to add support for Google BigTable as an online store.
Do I have to use Kubernetes, Spark, or Terraform?
Not by default. Feast does support optional deployment configurations that include Kubernetes, Spark, and Terraform. See Feast on Kubernetes for more details.
Does Feast support streaming data?
Not by default. Optional components that are deployed on Kubernetes can handle the ingestion of streaming data. See Feast on Kubernetes for more details.