Skip to content

Add Open Inference Protocol to feature servers #4335

@tokoko

Description

@tokoko

Is your feature request related to a problem? Please describe.
The goal of this feature is to simplify feast integration for model serving platforms. Feast feature servers have custom http/grpc interfaces which can be tricky to integrate with. For example, Kserve's feast integration guide involves writing glue code to create a transformer and publishing a custom docker image for each model integration.

Describe the solution you'd like
This feature request proposes adding OIP-compliant endpoints to feast feature servers. While open inference protocol is modeled for model execution and it's lingo also reflects that (/infer endpoint for example), I think it still might be worth it to reuse the same protocol to simplify integration, especially for serving requests involving FeatureServices that are very similar to models from a user perspective:

  • FeatureService objects in feast have a unique name.
  • FeatureServices don't yet have versioning associated with them, but it's a logical next step for us anyway.
  • FeatureServices have well defined input and output schemas, feast's data types and OIP tensor types are similar enough to be easily interoperable.

This request proposes adding new OIP-compliant endpoints to the feature server leaving existing ones intact. This is important because existence of a /get-online-features endpoint will allow us not to support all feast features under OIP. For example, feature retrieval passing a list of features instead of a FeatureService should be only supported with /get-online-features as it doesn't fit OIP protocol nicely. Passing back metadata about row staleness along with data payload can also be something that's /get-online-features-only unless we find a good way to model it with OIP.

Finally, to disambiguate this proposal from #4288 and the associated discussion, this feature request doesn't call for introducing model serving into feast, everything that will happen on a feature server will be very much still feature retrieval only disguised as OIP to simplify integration.

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/featureNew feature or requestwontfixThis will not be worked on

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions