過去の特徴値をサービングする

現在と過去の特徴データを取得または提供する場合は、オフライン サービングを使用して BigQuery から特徴値を取得します。たとえば、オフライン サービングを使用して特定のタイムスタンプの特徴値を取得し、モデルをトレーニングできます。

過去の特徴データを含むすべての特徴データは BigQuery で管理されます。BigQuery は特徴値のオフライン ストアです。オフライン サービングを使用するには、まず特徴グループと特徴値を作成して、BigQuery データソースを登録する必要があります。また、オフライン サービングの場合は、同じエンティティ ID を含むすべての行に異なるタイムスタンプが必要です。データソースの準備のガイドラインについては、データソースを準備するをご覧ください。

始める前に

まだ行っていない場合は、Vertex AI に対する認証を行います。

ローカル開発環境でこのページの Python サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。

  1. Install the Google Cloud CLI.
  2. To initialize the gcloud CLI, run the following command:

    gcloud init
  3. 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.

詳細については 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_1FEATURE_NAME_2: 特徴値を取得する登録済みの特徴の名前。

  • ENTITY_ID_COLUMN: エンティティ ID を含む列の名前。列名を指定できるのは、列名が機能グループに登録されている場合だけです。

  • ENTITY_ID_1ENTITY_ID_2: 特徴値を取得するエンティティ ID。異なるタイムスタンプで同じエンティティ ID の特徴値を取得する場合は、各タイムスタンプに同じエンティティ ID を指定します。

  • FEATURE_TIMESTAMP_1FEATURE_TIMESTAMP_2: 取得する過去の特徴値に対応するタイムスタンプ。FEATURE_TIMESTAMP_1ENTITY_ID_1 に対応し、FEATURE_TIMESTAMP_2ENTITY_ID_2 に対応します。タイムスタンプは日時形式で指定します。例: 2024-05-01T12:00:00