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.3 LTS以降では、ワークスペースがUnity Catalogに対して有効になっている場合、 Unity Catalog Feature Storeになります。 主キーを持つ 内の任意のDelta テーブルまたはDelta Live テーブルを、モデルのトレーニングまたは推論用の特徴量テーブルとして使用できます。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 ワークフロー。

Feature Storeの使用を開始する

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

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の総合ガイドをダウンロードしてください。