-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Add Feast overview to README #8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,35 @@ | ||
|
|
||
| # Components | ||
|
|
||
| ### Core | ||
|
|
||
| Feast Core is the central component that manages Feast and all other components within the system. It allows for the registration and management of entities, features, data stores, and other system resources. Core also manages the execution of feature ingestion jobs from batch and streaming sources, and provides the other Feast components with feature related information. | ||
|
|
||
| ### Stores | ||
|
|
||
| Feast maintains data stores for the purposes of model training and serving features to models in production. Features are loaded into these stores by ingestion jobs from both streaming and batch sources. | ||
|
|
||
| Two kinds of data stores are supported: | ||
|
|
||
| Warehouse: The feature warehouse maintains all historical feature data. The warehouse can be queried for batch datasets which are then used for model training. | ||
|
|
||
| Supported warehouse: __BigQuery__ | ||
|
|
||
| Serving: Feast supports multiple serving stores which maintain feature values for access in a production serving environment. | ||
|
|
||
| Supported serving stores: __Redis__, __Bigtable__ | ||
|
|
||
| ### Serving | ||
|
|
||
| Feast Serving is an API used for for the retrieval of feature values by models in production. It allows for low latency and high throughput access to feature values from serving stores using Feast client libraries. The API abstracts away data access, allowing users to simultaneously query from multiple stores with a single gRPC or HTTP request. | ||
|
|
||
| ### Client Libraries | ||
|
|
||
| Feast provides multiple client libraries for interacting with a Feast deployment. | ||
|
|
||
| | Functionality | CLI | Go | Java | Python (WIP)| | ||
| |------------------------------|-----|-----|------|-------------| | ||
| | Feature Management | yes | no | no | yes | | ||
| | Data Ingestion (Jobs) | yes | no | no | yes | | ||
| | Feature Retrieval (Training) | no | no | no | yes | | ||
| | Feature Retrieval (Serving) | no | yes | yes | yes | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| # Concepts | ||
|
|
||
| ### What is Feast? | ||
| Feast is a Feature Storage platform for Machine Learning features with the following attributes: | ||
|
|
||
| 1. Ingestion and storage of ML features via batch or stream | ||
| 2. Retrieval of ML features for serving via API, or via Google BigQuery to create training datasets | ||
| 3. Maintaining of a feature catalog, including additional feature attribute information and discovery via API | ||
|
|
||
| Feast solves a need for standardising how features are stored, served and accessed, and encourages sharing and reuse of created features amongst data science teams. | ||
|
|
||
| Feast does not prescribe how Features should be created. It allows for ingestion via batch or stream in a number of formats, e.g. batch import from CSV, BigQuery tables, streaming via Pub/Sub etc. | ||
|
|
||
|
|
||
| ### What is a Feature? | ||
|
|
||
| A Feature is an individual measurable property or characteristic of an Entity. In the context of Feast a Feature has the following attributes: | ||
|
|
||
| * Entity - It must be associated with a known Entity within Feast | ||
| * ValueType - The feature type must be defined, e.g. String, Bytes, Int64, Int32, Float etc. | ||
| * Requirements - Properties related to how a feature should be stored for serving and training | ||
| * Granularity - Time series features require a defined granularity | ||
| * StorageType - For both serving and training a storage type must be defined | ||
|
|
||
| Feast needs to know these attributes in order to be able to ingest, store and serve a feature. A Feature is only a feature when Feast knows about it; This seems contrite, but it introduces a best practice whereby a feature only becomes available for ingestion, serving and training in production when Feast has added the feature to its catalog. | ||
|
|
||
| ### What is an Entity? | ||
|
|
||
| An entity is a type with an associated key which generally maps onto a known domain object, e.g. Driver, Customer, Area, Merchant etc. An entity can also be a composite of other entities, with the corresponding composite key, e.g. DriverArea. | ||
|
|
||
| An entity determines how a feature may be retrieved. e.g. for a Driver entity all driver features must be looked up with an associated driver id entity key. | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.