We are delighted to announce the release of Feast 0.13, which introduces:
- [Experimental] On demand feature views, which allow for consistently applied transformations in both training and online paths. This also introduces the concept of request data, which is data only available at the time of the prediction request, as potential inputs into these transformations
- [Experimental] Python feature servers, which allow you to quickly deploy a local HTTP server to serve online features. Serverless deployments and java feature servers to come soon!
- Feature views without entities, which allow you to specify features that should only be joined on event timestamps. You do not need lists of entities / entity values when defining and retrieving features from these feature views.
Experimental features are subject to API changes in the near future as we collect feedback. If you have thoughts, please don’t hesitate to reach out to the Feast team!
[Experimental] On demand feature views
On demand feature views allows users to use existing features and request data to transform and create new features. Users define Python transformation logic which is executed in both historical retrieval and online retrieval paths. This unlocks many use cases including fraud detection and recommender systems, and reduces training / serving skew by allowing for consistently applied transformations. Example features may include:
- Transactional features such as
transaction_amount_greater_than_7d_averagewhere the inputs to features are part of the transaction, booking, or order event.
- Features requiring the current location or time such as
- Feature crosses where the keyspace is too large to precompute such as
Currently, these transformations are executed locally. Future milestones include building a feature transformation server for executing transformations at higher scale.
First, we define the transformations:
Now these new features are available for retrieval at training or serving time:
See On demand feature view for detailed info on how to use this functionality.
[Experimental] Python feature server
The Python feature server provides an HTTP endpoint that serves features from the feature store. This enables users to retrieve features from Feast using any programming language that can make HTTP requests. As of now, it’s only possible to run the server locally. A remote serverless feature server is currently being developed. Additionally, a low latency java feature server is in development.
See Feature server for detailed info on how to use this functionality.
Feature views without entities
Feature views can now be defined without entities. Feature views without entities are joined on the event_timestamp column and can only take on a single value at any point in time. This can greatly simplify defining and retrieving features (e.g. global features like
We are collaborating with the community on supporting streaming sources, low latency serving, serverless deployments of feature servers, improved support for Kubernetes deployments, and more.
In addition, there is active community work on building Hive, Snowflake, Azure, Astra, Presto, and Alibaba Cloud connectors. If you have thoughts on what to build next in Feast or what should belong in a feature store, please fill out this form.
We want to extend our gratitude and acknowledgement to all Feast community contributors, @achals, @adchia, @baineng, @codyjlin, @DvirDukhan, @felixwang9817, @GregKuhlmann, @guykhazma, @hamzakpt, @judahrand, @jdamji, @LarsKlingen, @MattDelac, @mavysavydav, @mmurdoch, @qooba, @tedhtchang, @samuel100, @tsotnet, and @WingCode, who helped contribute to this release.
To see all the features, enhancements, and bug fixes from the Feast community contributors, check the changelog for this release.