Feature Store で機能を作成、保存、共有する - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Feature Store で機能を作成、保存、共有する

機械学習 (ML) 開発プロセスには、未加工データを抽出して機能 (ML モデルに意味のある入力) に変換することが含まれます。その後、これらの機能は、データ探索、機械学習トレーニング、機械学習推論のためにサービス可能な方法で保存されます。Amazon SageMaker Feature Store は、機能の作成、保存、共有、管理の方法を簡素化します。これは、特徴量ストアオプションを提供し、反復的なデータ処理とキュレーション作業を減らすことで行われます。

Feature Store では、特に次のことができます。

  • アカウント間または組織内の ML 開発の機能の処理、保存、取得、共有を簡素化します。

  • 特徴量処理コードの開発を追跡し、特徴量プロセッサを生データに適用し、一貫した方法で Feature Store に特徴量を取り込みます。これにより、トレーニングサービスとサービス間のパフォーマンスの違いが ML モデルの精度に影響を与える可能性がある ML の一般的な問題である、トレーニングサービススキューが軽減されます。

  • 特徴量と関連メタデータを特徴量グループに保存すると、特徴量を簡単に検出して再利用できます。特徴量グループは可変であり、作成後にスキーマを進化させることができます。

  • オンラインストアまたはオフラインストア、またはその両方を含めるように設定できる特徴量グループを作成して、特徴量を管理し、ML タスクの特徴量の保存方法を自動化します。

    • オンラインストアは、機能の最新のレコードのみを保持します。これは主に、低ミリ秒のレイテンシー読み取りと高スループットの書き込みを必要とするリアルタイム予測をサポートするように設計されています。

    • オフラインストアは、機能のすべてのレコードを履歴データベースとして保持します。これは主に、データ探索、モデルトレーニング、バッチ予測を目的としています。

次の図は、ML パイプラインの一部として Feature Store を使用する方法を示しています。未加工データを読み込んだら、Feature Store を使用して未加工データを特徴量に変換し、特徴量グループに取り込むことができます。機能は、ストリーミングまたはバッチを介して特徴量グループのオンラインおよびオフラインストアに取り込むことができます。その後、これらの機能は、データ探索、モデルトレーニング、リアルタイムまたはバッチ推論に使用できます。

Feature Store が機械学習パイプラインに適合する場所。

Feature Store の仕組み

Feature Store では、特徴は特徴グループと呼ばれる集合に保存されます。各列が特徴であり、各行が一意の識別子を持つ表として、特徴グループを視覚化できます。原則として、特徴グループは、特徴と各特徴に固有の値で構成されます。Record は、一意の RecordIdentifier に対応する特徴の値の集合です。まとめると、FeatureGroupRecord を表すために FeatureStore で定義された特徴のグループです。 

Feature Store は、次のモードで使うことができます。 

  • オンライン - オンラインモードでは、特徴は低レイテンシー (ミリ秒) の読み取りで読み込まれ、高スループットの予測に使われます。このモードでは、特徴グループはオンラインストアに保存する必要があります。 

  • オフライン - オフラインモードでは、大量のデータストリームがオフラインストアにフィードされ、それをトレーニングやバッチ推論に使うことができます。このモードでは、特徴グループはオフラインストアに保存する必要があります。オフラインストアは S3 バケットをストレージに使い、また、Athena クエリを使ってデータを取得できます。 

  • オンラインとオフライン - これには、オンラインとオフラインの両モードが含まれます。

Feature Store の特徴グループへのデータ取り込みには、ストリーミングまたはバッチの 2 つの方法があります。ストリーミングを通じてデータを取り込むと、同期PutRecordAPI呼び出しを呼び出すことでレコードのコレクションが Feature Store にプッシュされます。これにより、Feature Store で最新の機能値を維持し、更新が検出されると新しい機能値をプッシュAPIできます。

または、Feature Store はデータをバッチで処理して取り込むこともできます。例えば、Amazon SageMaker Data Wrangler を使用して機能を作成し、Data Wrangler からノートブックをエクスポートできます。ノートブックは、特徴量を特徴量ストア特徴量グループにバッチで取り込む SageMaker 処理ジョブにすることができます。このモードでは、オフラインストアへのバッチ取り込みができます。また、特徴グループがオンラインとオフラインの両方で使用できるように設定されている場合は、オンラインストアへの取り込みもサポートします。 

特徴量グループを作成する

Feature Store に特徴を取り込むには、まず、特徴グループと、特徴グループに属するすべての特徴について特徴定義 (特徴名とデータ型) を定義する必要があります。特徴量グループは作成後はミュータブルであり、スキーマを進化させることができます。特徴量グループ名は、 AWS リージョン および 内で一意です AWS アカウント。特徴量グループを作成するときは、その特徴量グループのメタデータを作成することもできます。メタデータには、簡単な説明、ストレージ設定、各レコードを識別するための機能、およびイベント時間を含めることができます。さらに、メタデータには、作成者、データソース、バージョンなどの情報を保存するためのタグを含めることができます。

重要

FeatureGroup 名前または説明やタグなどの関連するメタデータには、個人を特定できる情報 (PII) や機密情報を含めないでください。

特徴量を検索、発見、共有する

Feature Store で特徴グループを作成すると、Feature Store の他の認可ユーザーは、その特徴グループを共有、発見できるようになります。ユーザーは、Feature Store にあるすべての特徴グループのリストを参照するか、特徴グループの名前、説明、レコードの識別子名、作成日、タグで検索することで、既存の特徴グループを見つけることができます。 

オンラインストアに保存されている特徴量のリアルタイム推論 

Feature Store を使うと、ストリーミングソースのデータ (他のアプリケーションからのクリーンストリームデータ) を使って、オンラインストアに保存されている特徴をリアルタイムで増強し、ミリ秒単位のレイテンシーでリアルタイム推論にそれらの特徴を提供できます。 

また、クライアントアプリケーションで 2 つの異なる FeatureGroups を参照することで、リアルタイム推論のために、異なる FeatureGroups の結合を実行することもできます。 

モデルトレーニングとバッチ推論にオフラインストアを使う

Feature Store は、S3 バケットで特徴値のオフラインストレージを提供します。データは、イベント時間に基づいてプレフィックスされたスキームを使って、S3 バケットに保存されます。オフラインストアは追加のみが可能なストアであるため、Feature Store はすべての特徴値の履歴レコードを保持できます。データは、ストレージとクエリアクセスの最適化のために、Parquet 形式でオフラインストアに保存されます。

コンソールから Data Wrangler を使用して、機能をクエリ、探索、視覚化できます。  Feature Store は、データの結合によるデータセットの作成、トレーニング、検証、テストをサポートし、さまざまな時点でのデータの抽出を可能とします。

特徴量データインジェスト

特徴を生成するパイプラインを作成して、大規模なバッチ (100 万行以上のデータ) または小さなバッチを処理し、特徴データをオフラインまたはオンラインストアに書き込むことができます。Amazon Managed Streaming for Apache Kafka や Amazon Kinesis などのストリーミングソースは、特徴を抽出し、トレーニング、推論、または特徴作成のためにオンラインストアに直接フィードされるデータソースとしても使うことができます。 

同期PutRecordAPI呼び出しを呼び出すことで、レコードを Feature Store にプッシュできます。これは同期API呼び出しであるため、小さな更新バッチを 1 回のAPI呼び出しでプッシュできます。これにより、特徴値を最新に保ち、更新が検出されると値をすぐに公開できます。これらは特徴ストリーミングとも呼ばれます。 

特徴データが取り込まれて更新されると、Feature Store はすべての特徴の過去データをオフラインストアに保存します。バッチ取り込みの場合、S3 バケットから特徴値をプルするか、Athena を使ってクエリを実行できます。また、Data Wrangler を使うと、新しい特徴を処理、操作して、選択した S3 バケットにエクスポートし、Feature Store からアクセスできます。バッチ取り込みの場合、処理ジョブを設定してデータを Feature Store にバッチで取り込むか、Athena を使って S3 バケットから特徴値をプルできます。 

オンラインストアRecordから を削除するには、 DeleteRecordAPI呼び出しを使用します。これにより、削除されたレコードはオフラインストアに追加されます。

Feature Store におけるレジリエンス

Feature Store は、複数のアベイラビリティーゾーン () に分散されていますAZs。AZ は AWS リージョン内の分離されたロケーションのことです。一部AZsが失敗した場合、Feature Store は他の を使用できますAZs。の詳細についてはAZs、「」を参照してくださいAmazon の耐障害性 SageMaker