Databricks Feature Store は、AI および ML モデルで使用される機能の中心的なレジストリです。 Unity Catalogで特徴量やモデルを登録すると、組み込みのガバナンス、リネージ、ポイントインタイムの結合、ワークスペースをまたいで特徴量の共有と発見ができます。
機能を作成するには2つの方法があります。
両者ともUnity Catalogで管理されたフィーチャーを作成し、オンラインフィーチャーストアに公開します。 オーサリング戦略の選択を参照してください。
- Feature Viewsは、特徴量を宣言的に定義し、Databricksが特徴量パイプラインを計算・管理できるようにします。 この機能はパブリック プレビューの段階にあります。
- 特徴テーブルは、デルタテーブルに特徴値を書き込むことで自分で作成します。
Databricks では、モデル トレーニング ワークフロー全体が、次のような単一のプラットフォーム上で実行されます。
- 生データの取り込み、特徴量テーブルの作成、モデルのトレーニング、バッチ推論の実行を行うデータ パイプライン。
- シングルクリックで利用でき、待機時間が数ミリ秒の、モデルと特徴量の提供エンドポイント。
- データおよびモデル モニタリング。
Databricks Feature Store の特徴を使用してモデルをトレーニングすると、モデルはトレーニングで使用された特徴の系列を自動的に追跡します。 推論時に、モデルは自動的に最新の特徴値を検索します。 Databricks Feature Store では、リアルタイム アプリケーションの機能のオンデマンド計算も提供され、すべての機能計算タスクが処理されます。 これにより、トレーニング/サービスの傾斜がなくなり、推論で使用される特徴の計算がモデルのトレーニング中に使用されるものと同じになります。 また、すべての機能の参照と計算は Databricks Feature Store によって処理されるため、クライアント側のコードも大幅に簡略化されます。
注
このページでは、Unity カタログで有効になっているワークスペースの Databricks Feature Store について説明します。 ワークスペースで Unity カタログが有効になっていない場合は、「 ワークスペース機能ストア (非推奨)」を参照してください。
概念の概要
Databricks Feature Store のしくみの概要と用語の用語集については、 Databricks Feature Store の概要と用語集を参照してください。
オーサリング戦略を選ぶ
Feature Store は、特徴量を作成する 2 つの方法をサポートしています。 どちらもUnityカタログで管理された特徴量を作成し、オンラインフィーチャーストアに公開できます。 一般的に、ほとんどの新しいケースにはフィーチャービューが推奨されますが、柔軟なマルチステージバッチワークロードにはフィーチャーテーブルが最も適しています。
| 戦略 | 最適な用途 | どのように機能するのか |
|---|---|---|
| 機能ビュー (推奨) | ほとんどの新しいプロジェクト、タイムウィンドウ付きの集約、ストリーミング機能などです。 | Unityカタログ Feature オブジェクトとして機能を宣言的に定義してください。 Databricksはフィーチャー パイプラインの作成と管理を行っています。 登録前にノートブックでローカルに定義された特徴を試し、特徴パイプラインを具現化できます。 ストリームフィーチャービューは、 リアルタイムモード から オンラインフィーチャーストアへの直接書き込みを伴う、秒単位以下の新鮮フィーチャーデータをサポートします。 |
| フィーチャー テーブル | LakeflowやSpark宣言型パイプラインで計算する特徴量や、Delta Sharing、サードパーティのオンラインストア、または一般提供(GA)専用のオーサリングパスが必要なワークロードなどです。 | 主キーを持つUnity CatalogのDeltaテーブルに機能値を書き込みます。 テーブルを埋めて更新するパイプラインはあなた自身が所有しています。 |
機能の開発
| 特徴 | Description |
|---|---|
| 機能ビュー | Feature Viewを用いて宣言的に特徴量を定義・計算し、タイムウィンドウの集約やストリーミング特徴量も含みます。 |
| Feature View をマテリアライズする | オフライントレーニングやオンラインサービング向けにFeature Viewをマテリアル化します。 |
| エンティティのフィーチャ値のパージ | 選択されたエンティティのマテリアライズされた特徴値をオフラインおよびオンラインストアから削除します。 |
| Unity カタログの機能テーブル | フィーチャテーブルを作成して操作します。 |
機能の検出と共有
| 特徴 | Description |
|---|---|
| Unity カタログの機能テーブルを調べる | カタログ エクスプローラーと機能 UI を使用して、機能テーブルを探索および管理します。 |
| Unity カタログの機能テーブルと機能でタグを使用する | 単純なキーと値のペアを使用して、フィーチャ テーブルとフィーチャを分類および管理します。 |
| Unity カタログのフィーチャー ビューを調べる | Databricks UI でフィーチャー ビューの定義と具体化の状態を参照します。 |
トレーニング ワークフローで機能を使用する
| 特徴 | Description |
|---|---|
| 特徴テーブルを使用してモデルをトレーニングする | 特徴を使用してモデルをトレーニングします。 |
| ポイントインタイム 機能の結合 | ポイントインタイムの正確性を使用して、ラベルの観測が記録された時点の特徴値を反映するトレーニング データセットを作成します。 |
| フィーチャーエンジニアリングPython API | Python API リファレンス |
サービス機能の提供
| 特徴 | Description |
|---|---|
| Databricksオンラインフィーチャーストア | オンライン アプリケーションとリアルタイムの機械学習モデルに機能データを提供します。 Databricks Lakebase を利用します。 |
| 自動機能検索を使用したモデル サービス | オンライン ストアから機能の値を自動的に検索します。 |
| フィーチャー テーブルの配信 | Databricks の外部のモデルとアプリケーションに機能を提供します。 |
| オンデマンド機能の計算 | 推論時に特徴値を計算します。 |
特徴量ガバナンスと系統
| 特徴 | Description |
|---|---|
| 機能ガバナンスと系譜 | Unity カタログを使用して、機能テーブルへのアクセスを制御し、特徴テーブル、モデル、または関数の系列を表示します。 |
Tutorials
| Tutorial | Description |
|---|---|
| はじめに役立つノートブックの例 |
基本的なノートブック。 フィーチャ テーブルを作成し、それを使用してモデルをトレーニングし、自動機能参照を使用してバッチ スコアリングを実行する方法を示します。 また、特徴を検索して系列を表示するための特徴エンジニアリング UI も示します。 タクシーのノートブックの例。 特徴を作成し、更新し、モデルのトレーニングとバッチ推論に使用するプロセスを示します。 |
| 例: 機能サービス エンドポイントをデプロイしてクエリを実行する | 機能サービス エンドポイントをデプロイしてクエリを実行する方法を示すチュートリアルとサンプル ノートブック。 |
| 例: 構造化された RAG アプリケーションで機能を使用する | 検索強化生成 (RAG) アプリケーション向けに、Databricks のオンラインテーブルおよび特徴量提供エンドポイントの使用方法を解説したチュートリアル。 |
要件
Databricks Feature Store を使用するには、ワークスペースが Unity カタログに対して有効になっている必要があります。 ワークスペースで Unity カタログが有効になっていない場合は、「 ワークスペース機能ストア (非推奨)」を参照してください。
サポートされるデータ型
Databricks Feature Store と従来のワークスペース Feature Store では、次の PySpark データ型がサポートされています。
IntegerTypeFloatTypeBooleanTypeStringTypeDoubleTypeLongTypeTimestampTypeDateTypeShortTypeArrayType-
BinaryType[1] -
DecimalType[1] -
MapType[1] -
StructType[2]
[1] BinaryType、DecimalType、MapType は、Unity Catalog のすべてのバージョンの特徴エンジニアリングとワークスペース Feature Stores v0.3.5 以上でサポートされています。
[2] StructType は特徴エンジニアリング v0.6.0 以上でサポートされています。
上記のデータ型は、機械学習アプリケーションで一般的な機能の種類をサポートしています。 例えば次が挙げられます。
- 高密度ベクトル、テンソル、埋め込みを
ArrayTypeのように格納できます。 - スパース ベクトル、テンソル、埋め込みを
MapTypeのように格納できます。 - テキストを
StringTypeのように格納できます。
オンライン ストアに公開された場合、ArrayType および MapType 特徴は JSON 形式で格納されます。
Feature Store UI には、特徴データ型のメタデータが表示されます。
詳細
ベスト プラクティスの詳細が必要な場合は、「Feature Stores の包括的なガイド」をダウンロードしてください。