現在と過去の特徴データを取得または提供する場合は、オフライン サービングを使用して BigQuery から特徴値を取得します。たとえば、オフライン サービングを使用して特定のタイムスタンプの特徴値を取得し、モデルをトレーニングできます。
過去の特徴データを含むすべての特徴データは BigQuery で管理されます。BigQuery は特徴値のオフライン ストアです。オフライン サービングを使用するには、まず特徴グループと特徴値を作成して、BigQuery データソースを登録する必要があります。また、オフライン サービングの場合は、同じエンティティ ID を含むすべての行に異なるタイムスタンプが必要です。データソースの準備のガイドラインについては、データソースを準備するをご覧ください。
始める前に
まだ行っていない場合は、Vertex AI に対する認証を行います。
ローカル開発環境でこのページの Python サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
詳細については Set up authentication for a local development environment をご覧ください。
過去の特徴値を取得する
次のサンプルでは、複数のエンティティ ID とタイムスタンプを使用して過去の特徴値を取得します。
Python
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。詳細については、Vertex AI Python API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
import bigframes
import bigframes.pandas
import pandas as pd
from google.cloud import bigquery
from vertexai.resources.preview.feature_store import (Feature, FeatureGroup, offline_store)
from vertexai.resources.preview.feature_store import utils as fs_utils
fg = FeatureGroup("FEATURE_GROUP_NAME")
f1 = fg.get_feature("FEATURE_NAME_1")
f2 = fg.get_feature("FEATURE_NAME_2")
entity_df = pd.DataFrame(
data={
"ENTITY_ID_COLUMN": [
"ENTITY_ID_1",
"ENTITY_ID_2",
],
"timestamp": [
pd.Timestamp("FEATURE_TIMESTAMP_1"),
pd.Timestamp("FEATURE_TIMESTAMP_2"),
],
},
)
offline_store.fetch_historical_feature_values(
entity_df=entity_df,
features=[f1,f2],
)
次のように置き換えます。
FEATURE_GROUP_NAME: 特徴を含む既存の特徴グループの名前。
FEATURE_NAME_1、FEATURE_NAME_2: 特徴値を取得する登録済みの特徴の名前。
ENTITY_ID_COLUMN: エンティティ ID を含む列の名前。列名を指定できるのは、列名が機能グループに登録されている場合だけです。
ENTITY_ID_1、ENTITY_ID_2: 特徴値を取得するエンティティ ID。異なるタイムスタンプで同じエンティティ ID の特徴値を取得する場合は、各タイムスタンプに同じエンティティ ID を指定します。
FEATURE_TIMESTAMP_1 と FEATURE_TIMESTAMP_2: 取得する過去の特徴値に対応するタイムスタンプ。FEATURE_TIMESTAMP_1 は ENTITY_ID_1 に対応し、FEATURE_TIMESTAMP_2 は ENTITY_ID_2 に対応します。タイムスタンプは日時形式で指定します。例:
2024-05-01T12:00:00