Feature Storeとは

このページでは、Feature Storeとはどのようなもので、そのメリットとは何か、さらにはDatabricks Feature Storeの具体的な利点について、説明します。

Feature Storeとは一元的レポジトリです。これによりデータサイエンティストは特徴量の検出と共有が可能になり、また特徴量の計算に使用しているコードをモデルのトレーニングと推論でも使用できるようになります。

機械学習では既存のデータを使用してモデルを構築し、将来の結果を予測します。生データを使用してモデルを構築するには、ほぼすべてのケースで、生データの前処理と変換が必要になります。このプロセスは特徴量エンジニアリングと呼ばれ、このプロセスの結果は、モデルのビルディングブロックとして特徴量と呼ばれます。

特徴量の開発は複雑で時間がかかります。機械学習の場合、特徴量計算はモデルのトレーニングに必要で、そのうえで、モデルを使用して予測を行うときにも再度計算が必要なため、プロセスはさらに複雑になります。これらの実装が同じチームによって、または同じコード環境で、実施されない場合もあり、それにより、遅延やエラーが発生することもあります。また、組織内でも複数のチームが同じような特徴量ニーズを持っており、しかも別のチームがすでにこの作業を実施していることを知らないといったケースもあります。Feature Storeは、こうした問題に対処できるように設計されています。

Databricks Feature Storeを使用する理由

Databricks Feature Storeは、Databricksの他のコンポーネントと完全に統合されています。

  • 発見性:Databricks ワークスペースからアクセスできる Feature Store UI では、既存の特徴量を参照および検索できます。

  • リネージ. Databricks で特徴量テーブルを作成すると、特徴量テーブルの作成に使用されたデータソースが保存され、アクセスできるようになります。 特徴量テーブルの各機能について、その機能を使用するモデル、ノートブック、ジョブ、エンドポイントにアクセスすることもできます。

  • モデルのスコアリングやサービングとの統合:Feature Storeの特徴量を使用してモデルをトレーニングする場合、モデルは特徴量メタデータと一緒にパッケージ化されます。モデルをバッチスコアリングまたはオンライン推論に使用すると、Feature Storeから自動的に特徴量が取得されます。呼び出し側はこれらの特徴量について知る必要はありませんし、特徴量を検索または結合して新しいデータをスコアリングするロジックを組み込む必要もありません。これにより、モデルのデプロイメントや更新が容易になります。

  • ポイントインタイムのルックアップ:Feature Store は、特定の時点での正確性を必要とする時系列およびイベントベースのユースケースをサポートします。

Unity Catalogでの特徴量エンジニアリング

Databricks Runtime 13.2 以降では、ワークスペースで Unity Catalog が有効になっている場合、Unity Catalog がFeature Storeになります。 内の任意の テーブルまたは DeltaDeltaライブ テーブルを主キーとともにモデルのトレーニングまたは推論用の特徴量テーブルとして使用できます。Unity CatalogUnity Catalog は、機能の検出、ガバナンス、リネージ、およびクロスワークスペース アクセスを提供します。

Databricks Feature Store はどのように機能しますか?

Feature Store を使用する一般的な機械学習ワークフローは、次のパスに従います。

  1. 生データを特徴量に変換し、目的の特徴を含む Spark DataFrame を作成するコードを記述します。

  2. Unity Catalog が有効になっているワークスペースの場合は、 DataFrame を Unity Catalog で特徴量テーブルとして書き込みます。 ワークスペースで Unity Catalog が有効になっていない場合は、 ワークスペース機能ストアに DataFrame を特徴量テーブルとして記述します。

  3. トレーニングする Feature Storeの特徴を使用するモデル . これを行うと、モデルにはトレーニングに使用される特徴量テーブルの仕様が格納されます。 モデルが推論に使用されると、適切な特徴テーブルの特徴が自動的に結合されます。

  4. Model Registryにモデルを登録します。

これで、モデルを使用して新しいデータを予測できるようになりました。

バッチ ユース ケースでは、モデルは Feature Store から必要な特徴を自動的に取得します。

バッチ機械学習のユースケースのためのFeature Store ワークフロー。

リアルタイム配信のユースケースでは、機能をオンライン ストア に公開するか、 オンラインテーブルを使用します。

推論時に、モデルはオンラインストアから pre-コンピュートの特徴を読み取り、モデルサービング エンドポイントへのクライアント要求で提供されたデータと結合します。

提供される機械学習モデルのFeature Store フロー。

Feature Storeの使用を開始する

Feature Storeの使用を開始するには、次の記事を参照してください。

Unity Catalogでの特徴量エンジニアリングを使用する場合、ワークスペース間での特徴量テーブルの共有はUnity Catalogが行い、特徴量テーブルへのアクセス制御にはUnity Catalogの特権を使用します。次のリンクは、ワークスペースFeature Store専用です。

サポートされているデータ型

Unity Catalogでの特徴量エンジニアリングとワークスペースのFeature Storeでは、次の PySpark データ型がサポートされています。

  • IntegerType

  • FloatType

  • BooleanType

  • StringType

  • DoubleType

  • LongType

  • TimestampType

  • DateType

  • ShortType

  • ArrayType

  • BinaryType [1]

  • DecimalType [1]

  • MapType [1]

[1] BinaryTypeDecimalTypeMapType は、Unity Catalogでの特徴量エンジニアリングのすべてのバージョンと、ワークスペース機能ストア v0.3.5 以降でサポートされています。

上記のデータ型は、機械学習アプリケーションで一般的な特徴量の種類をサポートしています。 例えば:

  • 密なベクトル、テンソル、埋め込みを ArrayTypeとして格納できます。

  • スパースベクトル、テンソル、埋め込みを MapTypeとして格納できます。

  • テキストは StringTypeとして保存できます。

オンライン ストアに公開されると、 ArrayTypeMapType の機能は JSON 形式で格納されます。

Feature Store UI には、機能データ型のメタデータが表示されます。

複合データ型の例

詳細情報

Feature Storeの使用に関するベストプラクティスについては、 Feature Storeの総合ガイドをダウンロードしてください。