現在と過去の特徴データを取得または提供する場合は、オフライン サービングを使用して BigQuery から特徴値を取得します。たとえば、オフライン サービングを使用して特定のタイムスタンプの特徴値を取得し、モデルをトレーニングできます。
過去の特徴データを含むすべての特徴データは BigQuery で管理されます。BigQuery は特徴値のオフライン ストアです。オフライン サービングを使用するには、まず特徴グループと特徴値を作成して、BigQuery データソースを登録する必要があります。また、オフライン サービングの場合は、同じエンティティ ID を含むすべての行に異なるタイムスタンプが必要です。データソースの準備のガイドラインについては、データソースを準備するをご覧ください。
始める前に
まだ行っていない場合は、Vertex AI に対する認証を行います。
このページの Python サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- Install the Google Cloud CLI.
-
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.
詳細については、 ローカル開発環境の認証の設定 をご覧ください。
過去の特徴値を取得する
次のサンプルでは、複数のエンティティ 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