Vertex AI Feature Store を使用してオンラインで特徴のサービングを開始するには、BigQuery で次のように特徴データソースを設定する必要があります。
特徴データを使用して BigQuery のテーブルまたはビューを作成します。特徴データを BigQuery のテーブルまたはビューに読み込むには、対象のデータを使用して BigQuery データセットを作成し、BigQuery テーブルを作成して、データセットからテーブルに特徴データを読み込みます。
特徴データを BigQuery のテーブルまたはビューに読み込んだ後、このデータソースを Vertex AI Feature Store でオンライン サービングに使用できるようにする必要があります。データソースをオンライン サービング リソース(オンライン ショップや特徴ビュー インスタンスなど)に接続するには、次の 2 つの方法があります。
特徴グループと特徴を作成してデータソースを登録する: 特徴グループと特徴をオンライン ショップの特徴ビュー インスタンスに関連付けることができます。データは次のいずれかの方法でフォーマットできます。
特徴のタイムスタンプ列を含めて、データを時系列としてフォーマットします。Vertex AI Feature Store では、この列の特徴のタイムスタンプに基づいて、一意のエンティティ ID ごとに最新の特徴値のみを提供します。
特徴のタイムスタンプ列を含めずにデータをフォーマットします。Vertex AI Feature Store ではタイムスタンプを管理し、一意のエンティティ ID ごとに最新の特徴値のみを提供します。
特徴グループの作成方法については、特徴グループを作成するをご覧ください。特徴グループ内で特徴を作成する方法については、特徴を作成するをご覧ください。
特徴グループや特徴を作成せずにデータソースから特徴を直接提供する: 特徴ビューにデータソースの URI を指定できます。このシナリオでは、データを時系列としてフォーマットすることや、BigQuery ソースに過去のデータを含めることはできません。各行には、一意の ID に対応する最新の特徴値が含まれている必要があります。異なる行に同じエンティティ ID を複数回指定することはできません。
Vertex AI Feature Store を使用すると、BigQuery で特徴データを維持し、BigQuery データソースから特徴を提供できるため、特徴をオフライン ストアにインポートまたはコピーする必要はありません。
データソース準備ガイドライン
次のガイドラインに沿って、BigQuery でデータソースを準備する際のスキーマと制約を把握しましょう。
データソースに次の列を含めます。
エンティティ ID 列: データソースには、
string
値またはint
値を含むエンティティ ID 列が 1 つ以上必要です。このファイルのデフォルト名はentity_id
です。この列には必要に応じて別の名前を使用できます。この列の各値のサイズは 4 KB 未満でなければなりません。複数の列の特徴を使用してエンティティ ID を作成し、特徴レコードを指定することもできます。このシナリオでは、データソースに複数のエンティティ ID 列を含められます。各エンティティ ID 列の名前は一意である必要があります。特徴グループを作成してデータソースを登録する場合は、特徴グループごとにエンティティ ID 列を設定します。また、データソースを特徴ビューに直接関連付ける場合は、エンティティ ID 列を指定するように特徴ビューを構成します。
データソースには複数の ID 列を含めることができます。こうしたシナリオでは、各エンティティ ID 列の名前が一意である必要があります。特徴レコードの各列の値を使用してエンティティ ID を作成するように、特徴グループまたは特徴ビューを構成できます。
特徴のタイムスタンプ列: 省略可。特徴グループと特徴を使用してデータソースを登録し、データを時系列としてフォーマットする必要がある場合は、特徴のタイムスタンプ列を含めます。タイムスタンプ列には
timestamp
型の値が含まれます。タイムスタンプ列のデフォルト名はfeature_timestamp
です。別の列名を使用する場合は、time_series
パラメータを使用して特徴グループのタイムスタンプ列を設定します。データを時系列としてフォーマットするタイムスタンプ列を指定しない場合は、Vertex AI Feature Store で特徴のタイムスタンプが管理され、最新の特徴値が提供されます。
BigQuery データソースを特徴ビューに直接関連付ける場合、
feature_timestamp
列は必要ありません。このシナリオでは、データソースに最新の特徴値のみを含める必要があります。Vertex AI Feature Store はタイムスタンプを検索しません。エンベディング列とフィルタリング列: 省略可。最適化されたオンライン サービング用に作成されたオンライン ショップでエンべディング管理を使用するには、データソースに次の列が含まれている必要があります。
float
型の配列を含むembedding
列。(省略可)
string
型またはstring
配列の 1 つ以上のフィルタリング列。(省略可)
int
型のクラウディング列。
データソースの各行は、エンティティ ID に関連付けられた特徴値の完全なレコードです。いずれかの列に特徴値がない場合、その列の値は null 値とみなされます。
BigQuery テーブルまたはビューの各列は特徴を表します。各特徴の値を個別の列に指定します。データソースを特徴グループと特徴に関連付ける場合は、各列を個別の特徴に関連付けます。
特徴値でサポートされているデータ型には、
bool
、int
、float
、string
、timestamp
、これらのデータ型の配列、バイトなどがあります。なお、データの同期中に、timestamp
型の特徴値はint64
に変換されます。データソースは、オンライン ショップ インスタンスと同じリージョン、またはオンライン ショップのリージョンを含むか、重複するマルチリージョンに配置する必要があります。たとえば、オンライン ショップが
us-central
にある場合、BigQuery ソースはus-central
またはUS
に配置できます。オンライン サービングの前に特徴ビューのデータを同期して、最新の特徴値のみを提供するようにします。スケジュール設定されたデータ同期を使用している場合は、特徴ビューでデータを手動で同期することが必要になる可能性があります。ただし、最適化されたオンライン サービングで継続的なデータ同期を使用している場合は、データを手動で同期する必要はありません。
次のステップ
特徴ビューの作成方法を確認する。
Vertex AI Feature Store のオンライン サービング タイプ。