Snowflake特徴ストア¶
注釈
Snowflake Feature Store API は、Snowpark ML Pythonパッケージ(snowflake-ml-python
)v1.5.0以降で利用可能です。
Snowflake Feature Storeにより、データサイエンティストと ML エンジニアは、データサイエンスと ML ワークロードで、 ML フィーチャーを作成、保守、使用することができます。すべてSnowflake内で行います。
一般的に、 フィーチャー は機械学習モデルの入力として使われるデータ要素です。気温や出席日数など、データセットの多くの列は、そのままフィーチャーとして使うことができます。また、前処理や変換を行うことで、よりトレーニングに役立つ列になる場合もあります。例えば、モデルが週ごとのパターンを検出できるように、タイムスタンプから曜日のフィーチャーを導き出す場合があります。その他の一般的なフィーチャー変換には、データの集約、微分、タイムシフトが含まれます。 フィーチャーエンジニアリング とは、モデルに必要なフィーチャーを決定し、生データからどのようにフィーチャーを導き出すかを定義するプロセスです。
フィーチャーストア を使用すると、よく使用されるフィーチャー変換を中央リポジトリで標準化できるため、再利用が可能になり、データと労力の重複を減らし、生産性を向上させることができます。また、新しいソースデータで更新することでフィーチャーを維持し、常に正しく一貫性のある新しいフィーチャーを信頼できる唯一の情報源で提供することができます。生データからフィーチャーを抽出する方法に一貫性を持たせることで、フィーチャーストアはプロダクションの ML パイプラインをより堅牢にするのにも役立ちます。
Snowflake Feature Storeは、データサイエンスおよび機械学習ワークロードの機能の作成、保存、管理をより簡単かつ効率的に行えるように設計されています。Snowflake内でネイティブにホストされるSnowflake Feature Storeには、以下のような利点があります。
お客様のデータは、お客様の管理とガバナンスのもとで安全に保管され、Snowflakeを離れることはありません。
Snowsightフィーチャーストア UI では、フィーチャーを簡単に検索・発見できます。
アクセスは、きめ細かな ロールベースのアクセス制御 で管理されます。
Snowflake Feature Storeの主な利点には、以下のサポートが含まれます。
バッチデータとストリーミングデータの両方で、新しいデータが到着すると効率的に自動更新されます
バックフィルとポイントインタイムの修正機能 ASOF JOIN
Pythonあるいは SQL で書かれたフィーチャー変換
Snowflakeが管理するFeature Viewsを使用した、ソースデータからフィーチャー値を自動更新およびリフレッシュ
dbt のような外部ツールでユーザー管理されたフィーチャーパイプラインを使用する能力
Snowflake Feature Store は、 Snowflake Model Registry およびその他の Snowflake ML フィーチャーと完全に統合されており、エンドツーエンドのプロダクション ML を実現します。
次の図は、Snowflake Feature Storeが機械学習パイプラインにどのように適合するかを示しています。

生データは、テーブルやビューからバッチで取得することも、ストリーミングデータソースから取得することもできます。
生データは、データエンジニアによって定義されたフィーチャーによって変換され、フィーチャーテーブルが作成されます。
フィーチャーテーブルは、Snowpark ML でモデルのトレーニングに使用されるトレーニングデータセットを生成したり、モデルが予測を行うために使用するテストデータを充実させるために使用することができます。
機能の仕組み¶
注釈
Snowflakeのフィーチャーストアは、単にスキーマです。フィーチャーストアとして使用するスキーマは、新規に作成することも、既存のものを使用することもできます。
フィーチャーストアには フィーチャービュー が含まれます。フィーチャービューは、生データを1つまたは複数の関連フィーチャーに変換するためのPythonまたは SQL パイプラインをカプセル化します。フィーチャビューで定義されたすべてのフィーチャは、ソースデータから同時にリフレッシュされます。
Tip
複数のフィーチャーストアにアクセスできるユーザーは、複数のフィーチャーストアのフィーチャービューを組み合わせて、トレーニングデータセットと推論データセットを作成できます。
Snowflake Feature Storeは、2種類のフィーチャービューをサポートしています。
Snowflake 管理:Snowflake Feature Storeは、指定したスケジュールで、フィーチャービューのフィーチャーを段階的かつ効率的に更新します。
外部:フィーチャーストアの外部にある他のプロセスが、フィーチャービュー内のフィーチャーを管理します。このタイプのフィーチャービューは、 dbt などのツールで使用するためのものです。
フィーチャービューは、フィーチャーストアの中で、フィーチャービューが適用される エンティティ に従って整理されます。エンティティは、フィーチャの主題を表す、より高いレベルの抽象化です。例えば、映画ストリーミングサービスでは、主なエンティティはユーザーと映画となります。未加工の映画データやユーザーのアクティビティデータは、映画ごとの表示時間やユーザーセッションの長さなどの有用なフィーチャーに変換することができます。また、これらのフィーチャーを含むフィーチャービューを関連するエンティティにタグ付けすることができます。
バックエンドデータモデル¶
フィーチャーストアのオブジェクトはSnowflakeオブジェクトとして実装されています。したがって、すべてのフィーチャーストアのオブジェクトは、Snowflakeのアクセス制御ルールの対象となります。
フィーチャーストアのオブジェクト |
Snowflakeオブジェクト |
---|---|
フィーチャーストア |
|
機能ビュー |
|
エンティティ |
|
機能 |
動的テーブルまたはビューの列 |
機能ビューのプロパティ(名前やエンティティなど)は、動的なテーブルやビューのタグとして実装されます。
SQL を使用して、Snowflakeオブジェクトを直接クエリしたり操作したりできます。SQL 経由で行った変更は、Python API と相互に反映されます。
Tip
Snowflake Feature Storeのすべてのオブジェクトは、フィーチャーストアのスキーマに格納されます。フィーチャーストアを完全に削除するには、スキーマに他のリソースが含まれていないことを確認し、 スキーマを削除します。
はじめるにあたり¶
注釈
Snowflake Feature Store Python API は、Snowpark ML Python パッケージ、 snowflake-ml-python
の一部です。ローカルシステムでお好みのPython IDE、またはSnowsightのワークシートやノートブックで使用できます。詳細については、 Python APIs for Snowflake ML をご参照ください。
Introduction to Snowflake Feature Store で、Snowflake Feature Store のコンセプトの概要から始めましょう。その後、以下を含む Snowflake クイックスタート を追加します。
Snowflake Feature Store および Model Registry を使用した ML モデルの開発と管理。これは、Feature StoreとModel Registryを使ったエンドツーエンド ML の開発サイクルデモです。
Snowflake Feature Store入門 API。Feature Store Python APIs の概要です。
Snowflake Feature Store上級ガイド。これはFeature Storeとパイプラインのより高度な例です。
Snowflake Feature Store と dbt 入門。DBT パイプラインから Snowflake Feature Store にフィーチャーを登録する方法を示します。
フィーチャー変換の具体的なタイプについては、 一般的な機能とクエリのパターン をご参照ください。
注釈
これらのクイックスタートはあくまで例として示したものです。例に従った場合、Snowflakeが所有または提供していないサードパーティのデータ、製品、またはサービスに対する追加の権利が必要になる場合があります。Snowflakeはこの例の正確性を保証するものではありません。