マネージド Feature Store とは

マネージド Feature Store に対する Microsoft のビジョンでは、機械学習の専門家が個別に特徴を開発および運用できるようにすることを望んでいます。 ユーザーが特徴セットの仕様を指定すると、システムで特徴の提供、保護、監視が処理されます。 これにより、基になる特徴エンジニアリング パイプラインのセットアップと管理のオーバーヘッドから解放されます。

機械学習のライフサイクル全体にわたって Feature Store と統合することで、モデルの実験と出荷の迅速化、モデルの信頼性の向上、運用コストの削減を図ることができます。 機械学習の経験の再定義によって、これらの利点が得られます。

特徴セットの仕様などの Feature Store の最上位エンティティについて詳細には、「マネージド Feature Store の最上位エンティティについて」を参照してください。

フィーチャーとは

特徴は、モデルの入力データとして機能します。 エンタープライズ コンテキストでのデータ ドリブンのユースケースでは、多くの場合、特徴により履歴データが変換されます (単純な集計、ウィンドウ集計、行レベルの変換など)。 たとえば、顧客離反の機械学習モデルについて考えてみましょう。 モデルの入力としては、7day_transactions_sum (過去 7 日間の取引件数) や 7day_complaints_sum (過去 7 日間の苦情件数) などの顧客との対話データがあります。 これらの集計関数はどちらも、前の 7 日間のデータで計算されます。

Feature Store で解決される問題

マネージド Feature Store をより深く理解するには、まず Feature Store が解決できる問題を理解する必要があります。

  • Feature Store を使用すると、チームで作成された特徴を検索して再利用し、作業の冗長化を回避し、一貫性のある予測を実現できます

  • 変換機能を備えた新しい特徴を作成できるため、特徴エンジニアリングの要件に俊敏かつ動的な方法で対処できます。

  • システムで、変換と具体化に必要な特徴エンジニアリング パイプラインが運用化され、管理されるため、チームは運用面から解放されます。

  • もともとトレーニング データの生成に使用されたものと同じ特徴パイプラインを推論目的で新たに使用することで、オンラインとオフラインの一貫性が確保され、トレーニングとサービスのスキューが回避されます。

マネージド Feature Store を共有する

Diagram that shows how you can share a feature store among multiple users and workspaces

Feature Store は、複数のプロジェクト ワークスペースで使用できる新しい種類のワークスペースです。 Azure Databricks など、Azure Machine Learning 以外の Spark ベースの環境から特徴を利用できます。 また、特徴の開発やテストをローカルで行うこともできます。

Feature Store の概要

Diagram depicting a conceptual architecture of Azure Machine Learning

マネージド Feature Store の場合、ユーザーが特徴セットの仕様を指定します。 その後、システムによって特徴の提供、保護、監視が処理されます。 特徴セットの仕様には、特徴の定義とオプションの変換ロジックが含まれます。 また、具体化設定を宣言で指定して、オフライン ストア (ADLS Gen2) に具体化することもできます。 システムは、基になる特徴具体化パイプラインを生成して管理します。 特徴カタログを使用して、特徴を検索、共有、再利用することができます。 サービス API を使用すると、ユーザーは特徴を検索して、トレーニングおよび推論用のデータを生成できます。 サービス API は、ソースまたはオフラインの具体化ストアからトレーニングまたはバッチ推論用のデータを直接プルできます。 システムには、特徴具体化ジョブを監視するための機能も用意されています。

Azure Machine Learning マネージド Feature Store を使用する利点

  • モデルの出荷 (プロトタイプ作成から運用化まで) の機敏性が向上する:
    • 特徴を最初から作成するのではなく特徴を検出して再利用する
    • 変換サポートと、MLOps フローの結合組織として特徴取得仕様を使用して、ローカルで新しい特徴の開発およびテストを行うことにより、実験を迅速化する
    • 宣言による具体化とバックフィル
    • 事前構築済みのコンストラクト: 特徴取得コンポーネントと特徴取得仕様
  • ML モデルの信頼性が向上する
    • 部署または組織全体で一貫した特徴定義
    • バージョン管理され、変更不可の特徴セット: 新しいバージョンのモデルでは、古いバージョンのモデルを中断することなく新しいバージョンの特徴を使用できる
    • 特徴セットの具体化の監視
    • 具体化により、トレーニングおよびサービスのスキューが回避される
    • 特徴取得では、ポイントインタイムの一時的な結合 (タイム トラベルと呼ばれます) がサポートされ、データ漏えいが回避されます。
  • コストが削減される
    • 組織内の他のユーザーが作成した特徴を再利用する
    • 具体化と監視をシステムで管理し、エンジニアリング コストを削減

特徴の検出と管理

マネージド Feature Store には、特徴の検出と管理のための次の機能が用意されています。

  • 特徴の検索と再利用 - Feature Store 間で特徴を検索して再利用できます
  • バージョン管理のサポート - 特徴セットはバージョン管理され、変更不可であるため、特徴セットのライフサイクルを個別に管理できます。 特徴バージョンが異なる新しいモデル バージョンをデプロイし、古いモデル バージョンの中断を回避できます
  • Feature Store レベルでのコストの表示 - Feature Store の使用に関連する主要コストには、マネージド Spark 具体化ジョブが含まれます。 このコストを Feature Store レベルで確認できます
  • 特徴セットの使用 - 特徴セットを使用して、登録済みモデルの一覧を表示できます。

特徴の変換

特徴の変換では、モデルのパフォーマンスを向上させるために、データセットの特徴の変更が必要です。 特徴仕様で定義された変換コードで、特徴の変換が処理されます。 実験を高速化するために、変換コードではソース データの計算を実行し、変換のローカルでの開発とテストを可能にします。

マネージド Feature Store で提供される特徴変換機能は次のとおりです。

  • カスタム変換のサポート - Spark トランスフォーマーを作成して、ウィンドウベースの集計などのカスタム変換を使用する特徴を開発することができます
  • 事前計算済みの特徴のサポート - 事前計算済みの特徴を Feature Store に取り込んで、コードを記述せずに提供することができます
  • ローカルでの開発とテスト - Spark 環境では、特徴セットの開発とテストをローカルで完全に行うことができます

特徴の具体化

具体化には、特定の特徴ウィンドウの特徴値を計算し、それらの値を具体化ストア内で永続化することが必要です。 トレーニングおよび推論用の特徴データをより迅速かつ確実に取得できるようになります。

  • マネージド特徴具体化パイプライン - 具体化のスケジュールを宣言で指定すると、システムではスケジューリング、事前計算、具体化ストアへの値の具体化が処理されます。
  • バックフィルのサポート - 特定の特徴ウィンドウの特徴セットをオンデマンドで具体化できます
  • 具体化のためのマネージド Spark のサポート - Azure Machine Learning マネージド Spark (サーバーレス コンピューティング インスタンス内) では、具体化ジョブが実行されます。 これにより、ユーザーは Spark インフラストラクチャのセットアップと管理から解放されます。

Note

オフライン ストア (ADLS Gen2) とオンライン ストア (Redis) の具体化の両方が現在サポートされています。

特徴の取得

Azure Machine Learning には、オフラインでの特徴の取得を処理する組み込みコンポーネントが含まれています。 これにより、Azure Machine Learning パイプライン ジョブのトレーニングとバッチ推論の手順で特徴を使用できます。

マネージド Feature Store で提供される特徴取得機能は次のとおりです。

  • 宣言によるトレーニング データの生成 - 組み込みの特徴取得コンポーネントを使用すると、コードを記述せずに、パイプラインでトレーニング データを生成できます
  • 宣言によるバッチ推論データの生成 - 同じ組み込みの特徴取得コンポーネントを使用して、バッチ推論データを生成できます
  • プログラムによる特徴の取得 - Python SDK get_offline_features() を使用してトレーニングまたは推論データを生成することもできます

監視

マネージド Feature Store で提供される監視機能は次のとおりです。

  • 具体化ジョブの状態 - UI、CLI、または SDK を使用して、具体化ジョブの状態を表示できます
  • 具体化ジョブに関する通知 - 具体化ジョブのさまざまな状態に関するメール通知を設定できます

セキュリティ

マネージド Feature Store で提供されるセキュリティ機能は次のとおりです。

  • RBAC - Feature Store、特徴セット、エンティティのロールベースのアクセス制御。
  • Feature Store 間のクエリ - ユーザーのアクセス許可が異なる複数の Feature Store を作成できますが、複数の Feature Store 全体からのクエリ (たとえばトレーニング データの生成など) を実行できます

次のステップ