1.2. Feature Store の概要
Feature Store は、モデルとデータ間のインターフェイスを提供する OpenShift AI コンポーネントです。Feast オープンソースプロジェクトをベースにしています。Feature Store は、既存のインフラストラクチャーとデータストアを使用して、機械学習モデルに特徴量を保存、管理、サービングするためのフレームワークを提供します。統一された特徴量管理機能を提供することで、さまざまなデータソースからの特徴量データの取得を容易にし、特徴量の生成と管理を可能にします。
次の図は、Feature Store が ML ワークフローのどこに当てはまるかを示しています。ML ワークフローでは、特徴量は ML モデルへの入力情報となります。ML ワークフローは、トランザクションデータ、お客様参照情報、製品データなど、さまざまな種類の関連データから始まります。データは、さまざまなデータベースやデータソースから取得されます。このデータから、ML エンジニアは Feature Store を使用して特徴量をキュレートします。特徴量は、各種モデルに入力され、モデルは特徴量からのデータを使用して予測を行うことができます。
図1.1 ML ワークフローの Feature Store
Feature Store は、次の機能を提供する機械学習データシステムです。
- 生データを特徴量の値に変換するデータパイプラインを実行する
- 特徴量データを保存および管理する
- トレーニングと推論の目的で一貫して特徴量データを提供する
- オフライン環境とオンライン環境で特徴量を一貫して管理する
- 1 つのモデルまたは数千のモデルに、オンデマンドで新しく再利用可能な特徴量を同時に提供する
Feature Store は、よく使用される特徴量を保存、処理、アクセスするための集中型ハブであり、ML 組織内のユーザーが共同作業できるようにします。Feature Store に特徴量を登録すると、組織全体の他のモデルですぐに再利用できるようになります。Feature Store レジストリーにより、データエンジニアリング作業の重複が削減され、厳選された実稼働環境対応の特徴量のライブラリーを使用して新しい ML プロジェクトをブートストラップできるようになります。
Feature Store は、モデルのトレーニングと推論の一貫性を保ち、複数のプロジェクトにわたるコラボレーションと使いやすさを促進し、データのドリフト、リーク、トレーニングのスキューについてモデルの系統とバージョン管理を監視し、他の MLOps ツールとシームレスに統合します。Feature Store は、BigQuery、Snowflake、DynamoDB、Redis などの他のシステムに保存されているデータをリモートで管理し、トレーニング/サービング時に特徴量を一貫して利用できるようにします。
Feature Store は次のタスクを実行します。
- 特徴量をオフラインおよびオンラインストアに保存する
- 共有用のレジストリーに特徴量を登録する
- ML モデルに特徴量をサービングする
ML プラットフォームチームは、Feature Store を使用して、バッチスコアリングやオンラインリアルタイムモデル推論などのオフライントレーニングの特徴量を一貫して保存および提供します。
Feature Store は次の主要コンポーネントで構成されています。
- レジストリー
- すべての特徴量定義とそれに関連するメタデータの中央カタログ。これにより、ML エンジニアとデータサイエンティストは新しい特徴量を検索、発見し、共同作業できるようになります。レジストリーは、特徴量を適用、リスト表示、取得、および削除するためのメソッドを公開します。
- オフラインストア
- スケールアウトバッチスコアリングまたはモデルトレーニング用の履歴データを格納するデータストア。オフラインストアには、Feature Store に取り込まれたバッチデータが保存されます。このデータはトレーニングデータセットの作成に使用されます。オフラインストアの例には、Dask、Snowflake、BigQuery、Redshift、DuckDB などがあります。
- オンラインストア
- 低遅延の特徴量取得に使用されるデータストア。オンラインストアはリアルタイム推論に使用されます。オンラインストアの例には、Redis、GCP Datastore、DynamoDB などがあります。
- サーバー
事前に計算された特徴量をオンラインにサービングする特徴量サーバー。Feature Store サーバーは 3 つあります。
- オンライン特徴量サーバー: JSON I/O を使用して特徴量を提供する HTTP エンドポイントである Python 特徴量サーバー。HTTP リクエストを行うことができる任意のプログラミング言語を使用して、オンラインストアから特徴量を書き込んだり読み取ったりすることができます。
- オフライン特徴量サーバー: gRPC 通信プロトコルを使用してデータを交換する Apache Arrow Flight サーバー。このサーバーは、既存のオフラインストア実装への呼び出しをラップし、インターフェイスを Arrow Flight エンドポイントとして公開します。
- レジストリーサーバー - gRPC 通信プロトコルを使用してデータを交換するサーバー。gRPC リクエストを行うことができる任意のプログラミング言語を使用して、サーバーと通信できます。
- UI
- すべての Feature Store オブジェクトとそれらの相互関係を表示するための Web ベースのグラフィカルユーザーインターフェイス (UI)。
Feature Store は次のソフトウェア機能を提供します。
- 特徴量とデータソースをプログラムで定義するための Python SDK
- オフラインおよびオンラインデータストアに特徴量を読み書きするための Python SDK
- API を使用して特徴量を読み書きするためのオプションの特徴量サーバー (Python 以外の言語に便利)
- プロジェクトで定義された特徴量に関する情報を表示および探索するための Web ベースの UI
- 特徴量情報の表示および更新用のコマンドラインインターフェイス (CLI)
1.2.1. Feature Store のオーディエンス リンクのコピーリンクがクリップボードにコピーされました!
Feature Store は、リアルタイムモデルを実稼働環境にデプロイする DevOps の経験を持つ ML プラットフォームおよび MLOps チームを対象ユーザーとしています。Feature Store は、これらのチームがデータエンジニア、ソフトウェアエンジニア、機械学習エンジニア、データサイエンティスト間のコラボレーションを改善する特徴量プラットフォームを構築するのにも役立ちます。
- データサイエンティストの場合
- Feature Store は、モデル開発とモデルデプロイメントの両方において、特徴量を定義、保存、取得できるツールです。Feature Store を使用すると、AI/ML モデルを強化してデータの価値を最大化する特徴量を構築するなど、最も得意とする作業に集中できます。
- MLOps エンジニアの場合
- Feature Store は、オンラインデータベース、アプリケーションサーバー、マイクロサービス、分析データベース、オーケストレーションツールなどの既存のインフラストラクチャーを接続するライブラリーです。Feature Store を使用すると、データサイエンティスト向けの特徴量の実装に集中するのではなく、耐障害性のあるシステムの管理に焦点を当てることができます。
- データエンジニアの場合
- Feature Store は、特徴量定義を保存するための集中カタログを提供し、特徴量データに関して信頼できる唯一の情報源 (single source of truth) を維持できるようになります。さまざまな種類のオフラインおよびオンラインデータストアの読み取りと書き込みのための抽象化を提供します。提供されている Python SDK または特徴量サーバーサービスを使用すると、オンラインストアとオフラインストアにデータを書き込み、その後、モデルトレーニングのバッチシナリオまたはモデル推論の低遅延オンラインシナリオのいずれかでそのデータを再度読み取ることができます。
- AI エンジニアの場合
- Feature Store は、より豊富なデータのシームレスな統合を可能にし、ファインチューニングを容易にすることで、AI アプリケーションを拡張できるように設計されたプラットフォームを提供します。Feature Store を使用すると、スケーラブルで効率的なデータパイプラインを確保しながら、AI モデルのパフォーマンスを最適化できます。