特徴量エンジニアリングとサービング

このページでは、Unity Catalog が有効になっているワークスペースの特徴量エンジニアリングとサービング機能について説明します。 ワークスペースがUnity Catalogに対して有効になっていない場合は、ワークスペースFeature Store (レガシー)を参照してください。

特徴量ストアとしてDatabricksを使用する理由は何ですか?

Databricks データ インテリジェンス プラットフォームを使用すると、モデル トレーニング ワークフロー全体が単一のプラットフォーム上で実行されます。

  • 生データを取り込み、特徴量テーブルを作成し、モデルをトレーニングし、バッチ推論を実行するデータ パイプライン。 Unity Catalogの特徴量エンジニアリングを使用してモデルをトレーニングしてログに記録すると、モデルは特徴量のメタデータとともにパッケージ化されます。 モデルをバッチ スコアリングまたはオンライン推論に使用すると、特徴値が自動的に取得されます。 呼び出し元は、それらについて知る必要はなく、新しいデータをスコアリングするためにフィーチャを検索または結合するロジックを含める必要もありません。

  • ワンクリックで利用でき、数ミリ秒のレイテンシを実現するモデルサービング年度ポイントおよび特徴量サービングエンドポイント。

  • データとモデルのモニタリング。

さらに、このプラットフォームには次の機能があります。

  • 特徴量の発見。 Databricks UI で特徴量を参照および検索できます。

  • ガバナンス。 特徴テーブル、関数、モデルはすべてUnity Catalogによって管理されます。 モデルをトレーニングすると、トレーニングに使用されたデータから権限が継承されます。

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

  • ワークスペース間のアクセス。 特徴テーブル、関数、およびモデルは、カタログにアクセスできるすべてのワークスペースで自動的に使用できるようになります。

要件

  • ワークスペースで Unity Catalog が有効になっている必要があります。

  • Unity Catalog での特徴量エンジニアリングには、Databricks Runtime 13.3 LTS 以上が必要です。

ワークスペースがこれらの要件を満たしていない場合は、従来のワークスペース Feature Store の使用方法について、「 ワークスペース Feature Store (レガシ)」 を参照してください。

Databricks での特徴量エンジニアリングはどのように機能しますか?

Databricks で特徴エンジニアリングを使用する一般的な機械学習ワークフローは、次のようになります。

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

  2. Unity Catalog に Delta テーブルを作成します。 主キーを持つDeltaテーブルは自動的に特徴量テーブルになります。

  3. 特徴量テーブルを使用してトレーニングを行い、モデルをログに記録します。 これを行うと、モデルはトレーニングに使用される特徴量の仕様を保存します。 モデルを推論に使用すると、適切な特徴量テーブルからの特徴量が自動的に結合されます。

  4. モデルレジストリにモデルを登録します。

これで、モデルを使用して新しいデータの予測を行うことができます。 バッチ使用の場合、モデルは必要な特徴量を Feature Store から自動的に取得します。

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

リアルタイム サービングのユースケースでは、特徴量をオンライン テーブルに公開します。 サードパーティのオンラインストアもサポートされています。 「 サードパーティのオンラインストア」を参照してください。

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

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

特徴エンジニアリングの使用を開始する - サンプルノートブック

まず、これらのサンプルノートブックを試してください。 この基本的なコンピューター ステップでは、特徴量テーブルを作成し、それを使用してモデルをトレーニングし、自動特徴量検索を使用してバッチ スコアリングを実行する方法について説明します。 また、特徴量エンジニアリング UI を紹介し、それを使用して特徴量を検索する方法と、特徴量がどのように作成され使用されるかを理解する方法を示します。

Unity Catalogでの特徴量エンジニアリングの基本となるサンプルノートブック

ノートブックを新しいタブで開く

タクシーのサンプルノートブックは、特徴量を作成し、それを更新し、モデルのトレーニングとバッチ推論に使用するプロセスを示しています。

Unity Catalogでの特徴量エンジニアリングのタクシーサンプル ノートブック

ノートブックを新しいタブで開く

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

Unity Catalogおよび従来のワークスペースのFeature Engineering: Feature Store は、次の PySpark データ型をサポートしています。

  • IntegerType

  • FloatType

  • BooleanType

  • StringType

  • DoubleType

  • LongType

  • TimestampType

  • DateType

  • ShortType

  • ArrayType

  • BinaryType [1]

  • DecimalType [1]

  • MapType [1]

  • StructType [2]

[1] BinaryTypeDecimalType、および MapType は、 Unity Catalogでの特徴量エンジニアリングのすべてのバージョンとワークスペースFeature Store v0.3.5 以降でサポートされています。 [2] StructTypeはフィーチャー エンジニアリング v0.6.0 以降でサポートされています。

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

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

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

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

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

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

複合データ型の例

詳細情報

ベスト プラクティスの詳細については、 『The Comprehensive Guide to Feature Store』をダウンロードしてください。