Skip to content

Commit 5c1d90d

Browse files
authored
DRAFT: odh-23178 update Feature Store guide (#878)
* odh-23178 update Feature Store guide * odh-23178 add defining features appendix * odh-23178 address CR comments * odh-23178 address peer review comments * odh-23178 fix typo
1 parent 0bf041e commit 5c1d90d

27 files changed

+817
-211
lines changed

.DS_Store

6 KB
Binary file not shown.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
:_module-type: ASSEMBLY
2+
3+
ifdef::context[:parent-context: {context}]
4+
5+
[id="configuring-feature-store-role-based-access-control_{context}"]
6+
= Configuring Feature Store role-based access control
7+
8+
[role='_abstract']
9+
10+
include::modules/configuring-role-based-access-control.adoc[leveloffset=+1]
11+
include::modules/ref-default-authorization-configuration.adoc[leveloffset=+1]
12+
include::modules/ref-example-oidc-authorization-configuration.adoc[leveloffset=+1]
13+
include::modules/ref-example-kubernetes-authorization-configuration.adoc[leveloffset=+1]
14+
15+
ifdef::parent-context[:context: {parent-context}]
16+
ifndef::parent-context[:!context:]

assemblies/customizing-your-feature-store-configuration.adoc

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ ifdef::context[:parent-context: {context}]
88
[role='_abstract']
99
Optionally, you can apply the following configurations to your feature store instance:
1010

11-
* Specify to use an existing feature project in a Git repository
1211
* Configure an offline store
1312
* Configure an online store
1413
* Configure the feature registry
@@ -20,7 +19,6 @@ The examples in the following sections describe how to customize a feature store
2019
For more information about how you can customize your feature store configuration, see the
2120
link:https://github.com/feast-dev/feast/blob/stable/infra/feast-operator/docs/api/markdown/ref.md[Feast API documentation^].
2221

23-
include::modules/specifying-to-use-a-feature-project-from-git-repository.adoc[leveloffset=+1]
2422

2523
include::modules/configuring-an-offline-store.adoc[leveloffset=+1]
2624

@@ -30,12 +28,6 @@ include::modules/configuring-the-feature-registry.adoc[leveloffset=+1]
3028

3129
include::modules/ref-example-pvc-configuration.adoc[leveloffset=+1]
3230

33-
include::modules/configuring-role-based-access-control.adoc[leveloffset=+1]
34-
35-
include::modules/ref-default-authorization-configuration.adoc[leveloffset=+2]
36-
include::modules/ref-example-oidc-authorization-configuration.adoc[leveloffset=+2]
37-
include::modules/ref-example-kubernetes-authorization-configuration.adoc[leveloffset=+2]
38-
3931
include::modules/editing-an-existing-feature-store-instance.adoc[leveloffset=+1]
4032

4133
ifdef::parent-context[:context: {parent-context}]

assemblies/defining-ml-features.adoc

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
:_module-type: ASSEMBLY
2+
3+
ifdef::context[:parent-context: {context}]
4+
5+
[id="defining-ml-features_{context}"]
6+
= Appendix A: Defining machine learning features
7+
8+
[role='_abstract']
9+
As part of the Feature Store workflow, ML engineers are responsible for identifying data sources and defining features of interest.
10+
11+
include::modules/about-feature-definitions.adoc[leveloffset=+1]
12+
13+
include::modules/specifying-the-data-source-for-features.adoc[leveloffset=+1]
14+
15+
include::modules/about-organizing-features-by-using-entities.adoc[leveloffset=+1]
16+
17+
include::modules/creating-feature-views.adoc[leveloffset=+1]
18+
19+
20+
ifdef::parent-context[:context: {parent-context}]
21+
ifndef::parent-context[:!context:]
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
:_module-type: ASSEMBLY
2+
3+
ifdef::context[:parent-context: {context}]
4+
5+
[id="overview-of-ml-features-and-feature-store.adoc_{context}"]
6+
= Overview of machine learning features and Feature Store
7+
8+
[role='_abstract']
9+
10+
ifndef::upstream[]
11+
[IMPORTANT]
12+
====
13+
ifdef::self-managed[]
14+
Feature Store is currently available in {productname-long} {vernum} as a Technology Preview feature.
15+
endif::[]
16+
ifdef::cloud-service[]
17+
Feature Store is currently available in {productname-long} as a Technology Preview feature.
18+
endif::[]
19+
Technology Preview features are not supported with {org-name} production service level agreements (SLAs) and might not be functionally complete.
20+
{org-name} does not recommend using them in production.
21+
These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.
22+
23+
For more information about the support scope of {org-name} Technology Preview features, see link:https://access.redhat.com/support/offerings/techpreview/[Technology Preview Features Support Scope].
24+
====
25+
endif::[]
26+
27+
A machine learning (ML) feature is a measurable property or attribute within a dataset that a machine learning model can analyze to learn patterns and make decisions. Examples of features include a customer's purchase history, demographic data like age and location, weather conditions, and financial market data. You can use these features to train models for tasks such as personalized product recommendations, fraud detection, and predictive maintenance.
28+
29+
Feature Store is a {productname-long} component that provides a centralized repository that stores, manages, and serves machine learning features for both training and inference purposes.
30+
31+
include::modules/overview-of-ml-features.adoc[leveloffset=+1]
32+
33+
include::modules/overview-of-feature-store.adoc[leveloffset=+1]
34+
35+
include::modules/audience-for-feature-store.adoc[leveloffset=+1]
36+
37+
include::modules/feature-store-workflow.adoc[leveloffset=+1]
38+
39+
== Additional resources
40+
41+
* For example Feature Store CRD configurations, see the
42+
link:https://github.com/feast-dev/feast/tree/master/infra/feast-operator/config/samples[Feast Operator configuration samples^].
43+
44+
* For details about the Feast API, see the
45+
link:https://github.com/feast-dev/feast/blob/stable/infra/feast-operator/docs/api/markdown/ref.md[Feast API documentation^].
46+
47+
* For information on how to implement machine learning features, see the
48+
link:https://docs.feast.dev/getting-started/concepts[Feast documentation^].
49+
50+
51+
ifdef::parent-context[:context: {parent-context}]
52+
ifndef::parent-context[:!context:]
53+
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
:_module-type: ASSEMBLY
2+
3+
ifdef::context[:parent-context: {context}]
4+
5+
[id="retrieving-features-for-model-training_{context}"]
6+
= Retrieving features for model training
7+
8+
[role='_abstract']
9+
10+
After a cluster administrator configures Feature Store on {productname-long}, a data scientist can retrieve features to train models for inference.
11+
12+
include::modules/setting-up-your-working-environment.adoc[leveloffset=+1]
13+
14+
include::modules/retrieving-online-features-for-model-inference.adoc[leveloffset=+1]
15+
16+
ifdef::parent-context[:context: {parent-context}]
17+
ifndef::parent-context[:!context:]
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
:_module-type: ASSEMBLY
2+
3+
ifdef::context[:parent-context: {context}]
4+
5+
[id="setting-up-feature-store_{context}"]
6+
= Setting up Feature Store
7+
8+
As a cluster administrator, you must complete the following tasks to set up Feature Store:
9+
10+
. Enable the Feature Store component.
11+
. Create a data science project and add a Feature Store instance.
12+
. Initialize the Feature Store instance.
13+
. Make features available to data scientists for them to use for model inference.
14+
15+
include::modules/before-you-begin.adoc[leveloffset=+1]
16+
17+
include::modules/enabling-the-feature-store-component.adoc[leveloffset=+1]
18+
19+
include::modules/creating-a-feature-store-instance-in-a-data-science-project.adoc[leveloffset=+1]
20+
21+
include::modules/adding-feature-definitions-and-initializing-your-feature-store-instance.adoc[leveloffset=+1]
22+
23+
include::modules/specifying-files-to-ignore.adoc[leveloffset=+2]
24+
25+
include::modules/making-features-available-for-real-time-inference.adoc[leveloffset=+1]
26+
27+
include::modules/viewing-feature-store-objects-in-the-web-based-ui.adoc[leveloffset=+1]
28+
29+
30+
ifdef::parent-context[:context: {parent-context}]
31+
ifndef::parent-context[:!context:]

configuring-feature-store.adoc

Lines changed: 0 additions & 39 deletions
This file was deleted.
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
:_module-type: CONCEPT
2+
3+
[id='about-feature-definitions_{context}']
4+
= About feature definitions
5+
6+
A machine learning feature is a measurable property or attribute within a dataset that a machine learning model can analyze to learn patterns and make decisions. In Feature Store, you define a feature by defining the name and data type of an attribute.
7+
8+
A feature definition is a schema that includes the name and data type of an attribute, as shown in the following example:
9+
10+
[source,python]
11+
----
12+
from feast import Field
13+
from feast.types import Int64
14+
15+
credit_card_amount_due = Field(
16+
name="credit_card_amount_due",
17+
dtype=Int64
18+
)
19+
----
20+
21+
For a list of supported data types for fields in Feature Store, see the link:https://rtd.feast.dev/en/master/feast.html#module-feast.types[`feast.types` module] in the Feast documentation.
22+
23+
In addition to field name and data type, a feature view can include additional metadata, specified as descriptions of features, as shown in the following example:
24+
25+
[source,python]
26+
----
27+
from feast import Field
28+
from feast.types import Int64
29+
30+
31+
credit_card_amount_due = Field(
32+
name="credit_card_amount_due",
33+
dtype=Int64,
34+
description="Credit card amount due for user",
35+
tags={"team": "loan_department"},
36+
)
37+
----
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
:_module-type: CONCEPT
2+
3+
[id='about-organizing-features-by-using-entities_{context}']
4+
= About organizing features by using entities
5+
6+
Within a feature view, you can group features that share a conceptual link or relationship together to define an entity. You can think of an entity as a primary key that you can use to fetch features. Typically, an entity maps to the domain of your use case. For example, a fraud detection use case could have customers and transactions as their entities, with group-related features that correspond to these customers and transactions.
7+
8+
A feature does not have to be associated with an entity. For example, a feature of a customer entity could be the number of transactions they have made on an average month, while a feature that is not observed on a specific entity could be the total number of transactions made by all users in the last month.
9+
10+
[source,python]
11+
----
12+
customer = Entity(name='dob_ssn', join_keys=['dob_ssn'])
13+
----
14+
15+
The entity name uniquely identifies the entity. The join key identifies the physical primary key on which feature values are joined together for feature retrieval.
16+
17+
The following table shows example data with a single entity column (`dob_ssn`) and two feature columns (`credit_card_due` and `rating`).
18+
19+
.Example data showing an entity and features
20+
[cols="1,3,2,3,2"]
21+
|===
22+
| row | timestamp | dob_ssn | credit_card_due | bankruptcies
23+
24+
| 1 | 5/22/2025 0:00:00 | 19530219_5179 | 833 | 0
25+
26+
| 2 | 5/22/2025 0:00:00 | 19500806_6783 | 1297 | 0
27+
28+
| 3 | 5/22/2025 0:00:00 | 19690214_3370 | 3912 | 1
29+
30+
| 4 | 5/22/2025 0:00:00 | 19570513_7405 | 8840 | 0
31+
32+
|===
33+

0 commit comments

Comments
 (0)