3.5. 特徴量ビューの作成
特徴量ビュー内で特徴量を定義します。特徴量ビュー は、データソース内の時系列特徴量データの論理グループを表すオブジェクトです。特徴量ビューは、Feature Store に対して、特徴量の値がどこにあるか (たとえば、parquet ファイルや BigQuery テーブル内) を示します。
特徴量ビューを使用すると、モデルをトレーニングするときのオフライン環境と、実稼働環境でモデルに特徴量を提供するときのオンライン環境の両方に対して、既存の特徴量データを一貫した方法で定義できます。
Feature Store は、次のタスクの実行時に特徴量ビューを使用します。
- 特徴量ビューのデータソースをクエリーして、特徴量の値を履歴から検索してトレーニングデータセットを生成します。単一のトレーニングデータセットは、複数の特徴量ビューからの特徴量で構成されます。
- 特徴量の値をオンラインストアまたはオフラインストアに読み込みます。特徴量ビューは、オンラインストアまたはオフラインストアのストレージスキーマを決定します。特徴量の値はバッチソースまたはストリームソースから読み込むことができます。
- オンラインストアまたはオフラインストアから特徴量を取得します。特徴量ビューは、オンラインストアまたはオフラインストアから特徴量を検索するためのスキーマ定義を提供します。
特徴量プロジェクトを作成すると、feature_repo サブフォルダーに、特徴量定義の例を含む Python ファイル (例: example_features.py) が含まれます。
新しい特徴量を定義するには、サンプルファイル内のコードを編集するか、特徴量リポジトリーに新しいファイルを追加します。
注記: 特徴量ビューは、タイムスタンプのあるデータでのみ機能します。データにタイムスタンプが含まれていない場合は、ダミーのタイムスタンプを挿入します。次の例は、PostgreSQL ベースのデータに対してダミーのタイムスタンプを挿入してテーブルを作成する方法を示しています。
前提条件
- ユースケースに関連するデータが何であるか理解している。
- ML モデルの特徴量として使用するデータ内の属性を特定した。
手順
-
JupyterLab などの IDE で、特徴量の定義例が含まれている
feature_repo/example_features.pyファイルを開くか、feature_repoディレクトリーに新しい Python (.py) ファイルを作成します。 次の例に示す構造に基づいて、ユースケースに関連する特徴量ビューを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- タイムスタンプ付きの表形式データを提供するデータソース。特徴量ビューには常に、トレーニングデータセットを生成するときや、特徴量の値をオンラインストアに具体化するときにデータソースが必要です。可能なデータソースは、データウェアハウス (BigQuery、Snowflake、Redshift)、データレイク (S3、GCS)、またはストリームソースからのバッチデータソースです。ユーザーは、データソースから Feature Store に特徴量をプッシュし、その特徴量をトレーニングまたはバッチスコアリング ("offline")、リアルタイムの特徴量サービング ("online")、またはその両方で利用できます。
- 2
- プロジェクト内の特徴量ビューを識別する名前。特徴量ビュー内では、特徴量名は一意である必要があります。
- 3
- 0 個以上のエンティティー。通常、特徴量ビューには特定のオブジェクトのプロパティーである特徴量が含まれます。この場合、そのオブジェクトはエンティティーとして定義され、特徴量ビューに含まれます。特徴量が特定のオブジェクトに関連していない場合、特徴量ビューにはエンティティーが存在しない可能性があります。
- 4
- (オプション) Feature Store が履歴データセットを生成するときに、どのくらい過去に遡って検索するかを制限する有効期間 (TTL)。
- 5
- 1 つ以上の特徴量定義。
- 6
- データソースへの参照。
- 7
- (オプション) UI で表示するとき、CLI コマンドを使用してリスト表示するとき、またはレジストリーを直接照会するときに特徴量のフィルタリングを有効にするタグなど、メタデータを追加できます。
- ファイルを保存します。