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が機械学習パイプラインにどのように適合するかを示しています。

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が所有または提供していないサードパーティのデータ、製品、またはサービスに対する追加の権利が必要になる場合があります。Snowflakeはこの例の正確性を保証するものではありません。