Feastは、機械学習ワークフロー向けに設計されたオープンソースのフィーチャーストアです。トレーニングとオンライン推論の両方において、特徴量(モデルの入力変数)を定義、管理、提供するための集中管理プラットフォームを提供します。特徴量の保存とアクセスを標準化することで、Feastはフィーチャーエンジニアリングの運用オーバーヘッドを削減し、モデルのトレーニング時に使用される特徴量と本番環境で提供される特徴量の間の一貫性を確保することを目指しています。
FeastはもともとGojekによって開発され、2019年にオープンソースプロジェクトとして初めてリリースされました。その後、Linux FoundationのAI & Data傘下のプロジェクトとなり、Feastの当初の開発者たちが共同設立したTectonなどの企業からの貢献も受けています。プロジェクト名の「Feast」は「Feature Store」の頭字語であり、その中心的な目的を反映しています。
中核となる概念
Feastは、機械学習の特徴量を構造化されたフレームワークに整理します。主要なエンティティは以下の通りです。
- フィーチャービュー(Feature Views): 共通のデータソースと時間枠を共有する特徴量の論理的なグループ。各フィーチャービューは、特徴量を生成するためのスキーマ、ソースデータ、および変換を定義します。
- エンティティ(Entities): ユーザーIDやトランザクションIDなど、特徴量の対象となる主体を識別するキー。エンティティは、特徴量を特定のデータポイントに結び付けます。
- フィーチャーサービス(Feature Services): 特定のモデルやアプリケーションにまとめて提供できる、フィーチャービューの集合。モデルが使用する特徴量のグループを定義します。
- データソース(Data Sources): 特徴量が計算される元となる基盤となるストレージシステム。例としては、BigQuery、Redshift、Kafkaなどがあります。
アーキテクチャとコンポーネント
Feastのアーキテクチャは、特徴量のライフサイクルを管理するために連携するいくつかの主要なコンポーネントで構成されています。
- Feast Core: フィーチャービュー、エンティティ、データソースに関するメタデータを保存する中央レジストリ。特徴量定義のシステムオブレコードとして機能します。
- Feast Serving: オンライン推論のために低レイテンシーで特徴量へのアクセスを提供するサービス。オンラインストアから特徴量を取得し、モデルサービングシステムに返します。
- Feast Job Service: バッチおよびストリーミングデータソースから特徴量の計算を管理し、オフラインストアとオンラインストアの両方にデータを投入するコンポーネント。
- オフラインストア(Offline Store): トレーニングデータセットの作成に使用される履歴特徴量データ用のストレージシステム。データリークを防ぐための時点正確性(point-in-time correct)な結合をサポートします。
- オンラインストア(Online Store): オンライン予測のためにリアルタイムで特徴量を提供する、RedisやDynamoDBなどの高速アクセスストレージシステム。
使用方法とワークフロー
Feastは通常、以下のようなワークフローで使用されます。
- 特徴量の定義(Define Features): データサイエンティストやエンジニアが、PythonまたはYAML設定ファイルを使用してフィーチャービューとエンティティを定義します。
- 適用(Apply): 定義がFeastレジストリに適用され、メタデータが更新されます。
- マテリアライズ(Materialize): Feastがデータソースから特徴量の値を計算し、オフラインストアとオンラインストアの両方に保存します。
- トレーニング(Train): 履歴特徴量がオフラインストアから取得され、トレーニングデータセットが作成されます。
- 提供(Serve): 推論時、モデルサービングシステムがFeast Servingを介してオンラインストアにクエリを実行し、最新の特徴量値を取得します。
このワークフローにより、チームは複数のモデル間で特徴量を再利用でき、トレーニングと本番環境の両方で同じ特徴量定義が使用されることが保証されます。
エコシステムと統合
Feastは、さまざまなデータおよび機械学習ツールと統合します。オフラインストアとしては、Google Cloud BigQuery、Amazon Web Services Redshift、Microsoft Azure Synapseなどのクラウドデータウェアハウスをサポートしています。オンラインストアとしては、Redis、DynamoDB、Firestoreなどを使用できます。また、TensorFlowやPyTorchなどの一般的な機械学習フレームワークとも連携し、Kubernetes上にデプロイしてスケーラビリティを実現することも可能です。
Feastは、TectonやHopsworksなどの他のフィーチャーストアと比較されることがよくありますが、オープンソースでありベンダーに依存しない点が特徴です。これにより、組織はベンダーロックインを回避し、自社の特徴量インフラストラクチャを完全に制御したい場合に、Feastは魅力的な選択肢となります。
コミュニティと採用状況
Feastは、機械学習コミュニティで広く採用されています。Gojek、Walmart、Deliverooなどの企業が、レコメンデーションシステムやパーソナライゼーションシステムを強化するためにFeastを使用しています。このプロジェクトはGitHub上で活発なコミュニティを持ち、定期的なリリースと、多様な開発者からの貢献が行われています。Feastのドキュメントとチュートリアルは、特徴量管理の標準的なアプローチとして、機械学習コミュニティで広く参照されています。
2024年現在、Feastはストリーミング特徴量のサポート改善や、大規模言語モデルワークフローとの統合強化など、新機能と改良を続けています。より多くの組織がML運用を効率化するためにフィーチャーストアを採用するにつれて、人工知能エコシステムにおけるFeastの役割はさらに拡大すると期待されています。