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

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

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

機械学習開発プロセスは、多くの場合、機械学習モデルをトレーニングするために、特徴とも呼ばれるデータ信号をデータから抽出することから始まります。Amazon SageMaker Feature Store を使用すると、データサイエンティスト、機械学習エンジニア、一般実務者が ML 開発の機能を簡単に作成、共有、管理できます。Feature Store は、機械学習アルゴリズムのトレーニングのために、raw データを特徴に変換するのに必要な、反復的なデータ処理とキュレート作業を削減することで、このプロセスを高速化します。

さらに、データの処理ロジックは 1 回だけ作成され、生成された特徴はトレーニングと推論の両方に使われるため、共変量シフトが減少します。Feature Store は、特徴の発見と再利用を容易にする、特徴と関連メタデータの一元ストアです。オンラインストアまたはオフラインストアを作成できます。オンラインストアは低レイテンシーのリアルタイム推論のユースケースに使い、オフラインストアはトレーニングとバッチ推論に使います。 

次の図は、Feature Store を機械学習パイプラインの一部として使う方法を示しています。まず、raw データを読み取って処理します。データは、ストリーミングを介してオンラインおよびオフラインストアに取り込むか、バッチでオフラインストアにデータを直接取り込みます。まず、FeatureGroup を作成して、オンライン、オフラインストアの一方または両方に設定します。次に、データを FeatureGroup に取り込み、ストアに保存します。FeatureGroup は、Feature Store のスキーマによって定義される、レコードを記述する特徴のグループです。

オンラインストアは、主に、ミリ秒単位の低レイテンシーの読み取りと高スループットの書き込みを必要とするリアルタイム予測のサポートを目的としています。オフラインストアは、主にバッチ予測とモデルトレーニングを目的としています。オフラインストアは追加のみが可能なストアで、過去の特徴データの保存とアクセスに使うことができます。オフラインストアは、調査やモデルトレーニングを目的とした、特徴の保存と提供に役立ちます。オンラインストアは最新の特徴データのみを保持します。特徴量グループはミュータブルで、作成後にスキーマを進化させることができます。

Feature Store の仕組み

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

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

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

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

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

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

または、Feature Store はデータをバッチで処理して取り込むこともできます。Amazon SageMaker Data Wrangler を使用して機能を作成し、Feature Store で特徴量グループを作成し、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 などのストリーミングソースは、特徴を抽出し、トレーニング、推論、または特徴作成のためにオンラインストアに直接フィードされるデータソースとしても使うことができます。 

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

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

オンラインストアから Record を削除するには、DeleteRecord API コールを使います。これにより、削除されたレコードはオフラインストアに追加されます。

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

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