How to Get Started with Feast: The Open Source Feature Store

Dec 18, 2020 | Data Science

Feast, short for Feature Store, is an open-source solution designed to aid machine learning teams in managing and serving features with speed and efficiency. This guide will walk you through the essentials of getting started with Feast, including installation, setting up your feature store, and utilizing it for training machine learning models.

Why Use Feast?

  • Manage offline and online features seamlessly.
  • Prevent data leakage during model training.
  • Decouple machine learning workflows from data infrastructure.

Getting Started with Feast

Here are the key steps to get started with Feast:

1. Install Feast

To install Feast, use the following command:

pip install feast

2. Create a Feature Repository

Initialize your feature repository by running:

feast init my_feature_repo
cd my_feature_repo

3. Register Feature Definitions and Set Up Your Feature Store

To register your feature definitions, execute the following command:

feast apply

4. Explore Your Data in the Web UI (Experimental)

Access the web UI by executing:

feast ui

5. Build a Training Dataset

Use the following Python code to build your training dataset:

from feast import FeatureStore
import pandas as pd
from datetime import datetime

entity_df = pd.DataFrame.from_dict(
    {
        "driver_id": [1001, 1002, 1003, 1004],
        "event_timestamp": [
            datetime(2021, 4, 12, 10, 59, 42),
            datetime(2021, 4, 12, 8, 12, 10),
            datetime(2021, 4, 12, 16, 40, 26),
            datetime(2021, 4, 12, 15, 1, 12),
        ],
    }
)

store = FeatureStore(repo_path='.')
training_df = store.get_historical_features(
    entity_df=entity_df,
    features=[
        "driver_hourly_stats:conv_rate",
        "driver_hourly_stats:acc_rate",
        "driver_hourly_stats:avg_daily_trips",
    ],
).to_df()

print(training_df.head())
# Train model
# model = ml.fit(training_df)

Analogy: Think of Feast as a library for your machine learning models. Each book (feature) is categorized into sections (offline and online stores), ensuring you can find what you need easily, without having to dig through unrelated books (data leakage). You can check books out (get features) at different times (for model training or prediction) without worrying about mixing them up or losing them.

6. Load Feature Values into Your Online Store

Materialize your feature views using the command:

CURRENT_TIME=$(date -u +%Y-%m-%dT%H:%M:%S)
feast materialize-incremental $CURRENT_TIME

7. Read Online Features at Low Latency

Use the following code to read online features:

from pprint import pprint
from feast import FeatureStore

store = FeatureStore(repo_path='.')
feature_vector = store.get_online_features(
    features=[
        "driver_hourly_stats:conv_rate",
        "driver_hourly_stats:acc_rate",
        "driver_hourly_stats:avg_daily_trips",
    ],
    entity_rows=[{"driver_id": 1001}],
).to_dict()

pprint(feature_vector)
# Make prediction
# model.predict(feature_vector)

Troubleshooting

While setting up and using Feast, here are a few common issues and their solutions:

  • Installation Issues: Ensure that you have pip updated to the latest version. Try running pip install --upgrade pip before re-installing Feast.
  • Feature Not Found: Check whether you’ve correctly registered your features and applied the configuration.
  • UI Startup Failure: Ensure that there are no conflicting services running on the port that Feast UI is trying to use. You might want to try a different port.

For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.

Conclusion

At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.

Stay Informed with the Newest F(x) Insights and Blogs

Tech News and Blog Highlights, Straight to Your Inbox