翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
特徴量ストアを使用して特徴量を作成、保存、共有する
機械学習 (ML) 開発プロセスには、raw データの抽出と、特徴量 (ML モデルのための意味ある入力) への変換があります。このような特徴量は、データ探索、ML トレーニング、ML 推論のために利用できる方法で保存されます。Amazon SageMaker 特徴量ストアは、特徴の作成、保存、共有、管理を簡素化します。これは、特徴量ストアのオプションを提供し、反復的なデータ処理とキュレーション作業を低減することで実現します。
特徴量ストアで実現できる主な事項:
-
アカウント間または組織内の ML 開発の特徴量処理、保存、取得、共有を簡素化します。
-
特徴量処理コードの開発を追跡し、Feature Processor を raw データに適用し、一貫した方法で特徴量を特徴量ストアに取り込みます。これにより、トレーニングサービングスキューの問題が軽減されます。これは、トレーニング中と配信中のパフォーマンスの違いが ML モデルの精度に影響を及ぼす可能性があるという、ML の一般的な問題です。
-
特徴量と関連メタデータを特徴量グループに保存すると、特徴量を簡単に検出して再利用できます。特徴量グループは変更可能で、作成後にスキーマを進化させることができます。
-
オンラインストアまたはオフラインストア、またはその両方を含むように設定できる特徴量グループを作成して、特徴量を管理し、ML タスク用の特徴量の保存方法を自動化できます。
-
オンラインストアは、特徴量の最新のレコードのみを保持します。これは主に、ミリ秒単位の低レイテンシーの読み取りと高スループットの書き込みを必要とするリアルタイム予測をサポートすることを目的にした設計です。
-
オフラインストアは、特徴量のすべてのレコードを履歴データベースとして保持します。これは主に、データ探索、モデルトレーニング、バッチ予測を目的としています。
-
次の図は、特徴量ストアを ML パイプラインの一部として利用する方法を説明しています。raw データを読み込んだら、特徴量ストアを使用して raw データを特徴量に変換し、特徴量グループに取り込めます。特徴量は、ストリーミングまたはバッチで特徴量グループのオンラインストアやオフラインストアに取り込むことができます。特徴量は、データ探索、モデルトレーニング、リアルタイム推論またはバッチ推論に使用できます。

Feature Store の仕組み
Feature Store では、特徴は特徴グループと呼ばれる集合に保存されます。各列が特徴であり、各行が一意の識別子を持つ表として、特徴グループを視覚化できます。原則として、特徴グループは、特徴と各特徴に固有の値で構成されます。Record
は、一意の RecordIdentifier
に対応する特徴の値の集合です。まとめると、FeatureGroup
は Record
を表すために FeatureStore
で定義された特徴のグループです。
Feature Store は、次のモードで使うことができます。
-
オンライン - オンラインモードでは、特徴は低レイテンシー (ミリ秒) の読み取りで読み込まれ、高スループットの予測に使われます。このモードでは、特徴グループはオンラインストアに保存する必要があります。
-
オフライン - オフラインモードでは、大量のデータストリームがオフラインストアにフィードされ、それをトレーニングやバッチ推論に使うことができます。このモードでは、特徴グループはオフラインストアに保存する必要があります。オフラインストアは S3 バケットをストレージに使い、また、Athena クエリを使ってデータを取得できます。
-
オンラインとオフライン - これには、オンラインとオフラインの両モードが含まれます。
Feature Store の特徴グループへのデータ取り込みには、ストリーミングまたはバッチの 2 つの方法があります。ストリーミングによってデータを取り込む場合、同期 PutRecord
API コールを呼び出すことによって、レコードの集合がFeature Store にプッシュされます。この API を使うと、Feature Store で最新の特徴値を維持でき、また、更新が検出されると同時に新しい特徴値をすぐにプッシュできます。
または、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 などのストリーミングソースは、特徴を抽出し、トレーニング、推論、または特徴作成のためにオンラインストアに直接フィードされるデータソースとしても使うことができます。
同期 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 AI の耐障害性」を参照してください。