現在と過去の特徴データを取得または提供する場合は、オフライン サービングを使用して BigQuery から特徴値を取得します。たとえば、オフライン サービングを使用して特定のタイムスタンプの特徴値を取得し、モデルをトレーニングできます。
過去の特徴データを含むすべての特徴データは BigQuery で管理されます。BigQuery は特徴値のオフライン ストアです。オフライン サービングを使用するには、まず特徴グループと特徴値を作成して、BigQuery データソースを登録する必要があります。また、オフライン サービングの場合は、同じエンティティ ID を含むすべての行に異なるタイムスタンプが必要です。データソースの準備のガイドラインについては、データソースを準備するをご覧ください。
始める前に
まだ行っていない場合は、Gemini Enterprise Agent Platform に対する認証を行います。
ローカル開発環境でこのページの Python サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
-
Google Cloud CLI をインストールします。
-
フェデレーション ID(連携 ID)を使用するように gcloud CLI を構成します。
詳細については、 フェデレーション ID を使用して gcloud CLI にログインするをご覧ください。
-
ユーザー アカウントのローカル認証情報を作成します。
gcloud auth application-default login
認証エラーが返された場合は、 フェデレーション ID を使用して gcloud CLI にログインしていることを確認します。
詳細については、 ローカル開発環境の認証を設定するをご覧ください。
過去の特徴値を取得する
次のサンプルでは、複数のエンティティ ID とタイムスタンプを使用して過去の特徴値を取得します。
Python
このサンプルを試す前に、クライアント ライブラリを使用した Agent Platform クイックスタートの Python の手順に沿って設定を行ってください。詳細については、Agent Platform Python API のリファレンス ドキュメントをご覧ください。
Agent Platform で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境変数を s3nsapis.fr に設定します。
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