Servir valores de funciones históricos

Si necesitas obtener o proporcionar datos de características actuales e históricos, usa el servicio sin conexión para obtener los valores de las características de BigQuery. Por ejemplo, puede usar el servicio sin conexión para recuperar los valores de las características de marcas de tiempo específicas y entrenar un modelo.

Todos los datos de las funciones, incluidos los históricos, se conservan en BigQuery, que constituye el almacén offline de los valores de las funciones. Para usar el servicio sin conexión, primero debe registrar su fuente de datos de BigQuery creando grupos de características y valores de características. Además, en el caso del servicio sin conexión, cada fila que contenga el mismo ID de entidad debe tener una marca de tiempo diferente. Para obtener más información sobre las directrices de preparación de fuentes de datos, consulte el artículo Preparar una fuente de datos.

Antes de empezar

Autentícate en Vertex AI, a menos que ya lo hayas hecho.

Para usar las Python muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.

    Instala Google Cloud CLI.

    Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    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.

Para obtener más información, consulta Set up authentication for a local development environment.

Obtener valores históricos de funciones

Usa el siguiente ejemplo para obtener valores históricos de una función de varios IDs de entidad y marcas de tiempo.

Python

Antes de probar este ejemplo, sigue las Python instrucciones de configuración de la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de Vertex AI.

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.

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],
)

Haz los cambios siguientes:

  • FEATURE_GROUP_NAME: el nombre del grupo de funciones que contiene la función.

  • FEATURE_NAME_1 y FEATURE_NAME_2: los nombres de las funciones registradas de las que quiere obtener los valores de las funciones.

  • ENTITY_ID_COLUMN: nombre de la columna que contiene los IDs de las entidades. Solo puedes especificar un nombre de columna si está registrado en el grupo de características.

  • ENTITY_ID_1 y ENTITY_ID_2: los IDs de entidad de los que quieres obtener los valores de las funciones. Si quiere obtener los valores de las características del mismo ID de entidad en diferentes marcas de tiempo, especifique el mismo ID de entidad correspondiente a cada marca de tiempo.

  • FEATURE_TIMESTAMP_1 y FEATURE_TIMESTAMP_2: las marcas de tiempo correspondientes a los valores históricos de la función que quiere recuperar. FEATURE_TIMESTAMP_1 corresponde a ENTITY_ID_1, FEATURE_TIMESTAMP_2 corresponde a ENTITY_ID_2, y así sucesivamente. Especifica las marcas de tiempo en formato de fecha y hora (por ejemplo, 2024-05-01T12:00:00).