Recupera los datos de entrenamiento

A fin de recuperar los datos de atributos para el entrenamiento de modelos, usa la entrega por lotes. Si necesitas exportar valores de atributos para archivarlos o realizar análisis ad hoc, exporta valores de atributos.

Recupera valores de atributos para el entrenamiento de modelos

Para el entrenamiento de modelos, necesitas un conjunto de datos de entrenamiento que contenga ejemplos de tu tarea de predicción. Estos ejemplos constan de instancias que incluyen sus atributos y etiquetas. La instancia es el aspecto sobre el que deseas hacer una predicción. Por ejemplo, una instancia puede ser una casa y deseas determinar su valor de mercado. Sus características pueden incluir su ubicación, antigüedad y el precio promedio de las casas cercanas que se vendieron recientemente. Una etiqueta es la respuesta a la tarea de predicción, como la venta final, que se vende por $100,000.

Debido a que cada etiqueta es una observación en un momento específico, debes recuperar valores de atributos que correspondan a ese momento en el que se realizó la observación, por ejemplo los precios de las casas cercanas cuando se vendió una vivienda en particular. A medida que se recopilan valores de atributos y etiquetas con el tiempo, esos valores de atributos cambian. Vertex AI Feature Store (heredado) puede realizar una búsqueda de un momento determinado para que puedas recuperar los valores de los atributos en un momento determinado.

Ejemplo de búsqueda de un momento determinado

El siguiente ejemplo implica recuperar los valores de atributos de dos instancias de entrenamiento con las etiquetas L1 y L2. Las dos etiquetas se observan en T1 y T2, respectivamente. Imagina inmovilizar el estado de los valores de atributos en esas marcas de tiempo. Por lo tanto, para la búsqueda de un momento determinado en T1, Vertex AI Feature Store (heredado) (heredado) muestra los últimos valores de atributos hasta el tiempo T1 para Feature 1, Feature 2 y Feature 3 y no filtra ningún valor más allá de T1. A medida que avanza el tiempo, los valores de los atributos cambian y la etiqueta también cambia. Por lo tanto, en T2, la Feature Store muestra diferentes valores de atributos para ese momento.

Búsqueda de un momento determinado de muestra

Entradas de entrega por lotes

Como parte de una solicitud de entrega por lotes, se requiere la siguiente información:

  • Una lista de atributos existentes para los que se deben obtener valores.
  • Una lista de instancias de lectura que contiene información para cada ejemplo de entrenamiento. Enumera las observaciones en un momento particular. Puede ser un archivo CSV o una tabla de BigQuery. La lista debe incluir la siguiente información:
    • Marcas de tiempo: son los momentos en los que se observaron o se midieron las etiquetas. Las marcas de tiempo son necesarias para que Vertex AI Feature Store (heredado) pueda realizar una búsqueda de un momento determinado.
    • ID de la entidad: uno o más ID de las entidades que corresponden a la etiqueta.
  • El URI y el formato de destino en los que se escribe el resultado. En el resultado, Vertex AI Feature Store (heredado) se une a la tabla de la lista de instancias de lectura y los valores de atributos de featureStore (heredado). Especifica uno de los siguientes formatos y ubicaciones para el resultado:
    • Tabla de BigQuery en un conjunto de datos regional o multirregional.
    • Archivo CSV en un bucket de Cloud Storage regional o multirregional. Pero, si los valores de tus atributos incluyen arrays, debes elegir otro formato.
    • Archivo Tfrecord en un bucket de Cloud Storage

Requisitos de la región

Para las instancias de lectura y el destino, el bucket o el conjunto de datos de origen debe estar en la misma región o en la misma ubicación multirregional que tu featurestore. Por ejemplo, un featurestore en us-central1 solo puede leer o entregar datos a buckets de Cloud Storage o conjuntos de datos de BigQuery que se encuentran en us-central1 o en la ubicación multirregional de EE.UU. No puedes usar datos de, por ejemplo, us-east1. Además, no se admite la lectura o entrega de datos mediante buckets de birregión.

Lista de instancias de lectura

La lista de las instancias de lectura especifica las entidades y las marcas de tiempo de los valores de atributos que deseas recuperar. El archivo CSV o la tabla de BigQuery deben contener las siguientes columnas, en cualquier orden. Cada columna requiere un encabezado.

  • Debes incluir una columna de marca de tiempo en la que el nombre del encabezado sea timestamp y los valores de la columna sean marcas de tiempo en el formato RFC 3339.
  • Debes incluir una o más columnas de tipo de entidad, en las que el encabezado sea el ID del tipo de entidad y los valores de la columna sean los ID de la entidad.
  • Opcional: Puedes incluir valores de paso (columnas adicionales), que se pasan como están en el resultado. Esto es útil si tienes datos que no están en Vertex AI Feature Store (heredado), pero deseas incluir esos datos en la salida.

Ejemplo (CSV)

Imagina un almacén de atributos que contiene los tipos de entidad users y movies junto con sus atributos. Por ejemplo, los atributos para users pueden incluir age y gender, mientras que los atributos para movies pueden incluir ratings y genre.

Para este ejemplo, deseas recopilar datos de entrenamiento sobre las preferencias de películas de los usuarios. Puedes recuperar los valores de las dos entidades de usuario alice y bob junto con los atributos de las películas que miraron. Desde otro conjunto de datos, sabes que a alice miró movie_01 y le gustó. bob miró movie_02 y no le gustó. Por lo tanto, la lista de instancias de lectura podría verse como el siguiente ejemplo:

users,movies,timestamp,liked
"alice","movie_01",2021-04-15T08:28:14Z,true
"bob","movie_02",2021-04-15T08:28:14Z,false

Vertex AI Feature Store (heredado) recupera los valores de los atributos de la lista que se encuentran en las marcas de tiempo proporcionadas o antes. Especifica los atributos específicos para entregar como parte de la solicitud de entrega por lotes, no en la lista de instancias de lectura.

En este ejemplo, también se incluye una columna llamada liked, que indica si a un usuario le gustó una película. Esta columna no se incluye en el almacén de atributos, pero aún puedes pasar estos valores a la salida de entrega por lotes. En el resultado, estos valores de transferencia se unen con los valores del almacén de atributos.

Valores nulos

Si en una marca de tiempo determinada un valor de función es nulo, Vertex AI Feature Store (heredado) muestra el valor de la función anterior que no es nula. Si no hay valores anteriores, Vertex AI Feature Store (heredado) muestra un valor nulo.

Valores de atributos de entrega por lotes

Los lotes entregan valores de una tienda de funciones para obtener datos, según lo determina tu archivo de lista de instancias de lectura.

Si quieres reducir los costos de uso del almacenamiento sin conexión mediante la lectura de datos de entrenamiento recientes y la exclusión de datos antiguos, especifica una hora de inicio. Si quieres aprender a reducir el costo de uso del almacenamiento sin conexión mediante la especificación de una hora de inicio, consulta Especifica una hora de inicio para optimizar los costos de almacenamiento sin conexión durante la entrega por lotes y la exportación por lotes.

IU web

Usa otro método. No puedes entregar funciones por lotes desde la consola de Google Cloud.

REST

Para entregar por lotes los valores de atributos, envía una solicitud POST con el método featurestores.batchReadFeatureValues.

En el siguiente ejemplo, se muestra una tabla de BigQuery que contiene valores de atributos para los tipos de entidades users y movies. Ten en cuenta que cada destino de salida puede tener algunos requisitos antes de enviar una solicitud. Por ejemplo, si especificas un nombre de tabla para el campo bigqueryDestination, debes tener un conjunto de datos existente. Estos requisitos se documentan en la referencia de la API.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION_ID: Región en la que se crea el featurestore. Por ejemplo, us-central1
  • PROJECT_ID: El ID del proyecto.
  • FEATURESTORE_ID: ID del featurestore.
  • DATASET_NAME: El nombre del conjunto de datos de BigQuery de destino.
  • TABLE_NAME: El nombre de la tabla de BigQuery de destino.
  • STORAGE_LOCATION: Es el URI de Cloud Storage para el archivo CSV de instancias de lectura.

Método HTTP y URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID:batchReadFeatureValues

Cuerpo JSON de la solicitud:

{
  "destination": {
    "bigqueryDestination": {
      "outputUri": "bq://PROJECT_ID.DATASET_NAME.TABLE_NAME"
    }
  },
  "csvReadInstances": {
    "gcsSource": {
      "uris": ["STORAGE_LOCATION"]
    }
  },
  "entityTypeSpecs": [
    {
      "entityTypeId": "users",
      "featureSelector": {
        "idMatcher": {
          "ids": ["age", "liked_genres"]
        }
      }
    },
    {
      "entityTypeId": "movies",
      "featureSelector": {
        "idMatcher": {
          "ids": ["title", "average_rating", "genres"]
        }
      }
    }
  ],
  "passThroughFields": [
    {
      "fieldName": "liked"
    }
  ]
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID:batchReadFeatureValues"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID:batchReadFeatureValues" | Select-Object -Expand Content

Deberías ver un resultado similar al siguiente. Puedes usar el OPERATION_ID en la respuesta para obtener el estado de la operación.

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.BatchReadFeatureValuesOperationMetadata",
    "genericMetadata": {
      "createTime": "2021-03-02T00:03:41.558337Z",
      "updateTime": "2021-03-02T00:03:41.558337Z"
    }
  }
}

Python

Si deseas obtener información para instalar o actualizar el SDK de Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.

from google.cloud import aiplatform

def batch_serve_features_to_bq_sample(
    project: str,
    location: str,
    featurestore_name: str,
    bq_destination_output_uri: str,
    read_instances_uri: str,
    sync: bool = True,
):

    aiplatform.init(project=project, location=location)

    fs = aiplatform.featurestore.Featurestore(featurestore_name=featurestore_name)

    SERVING_FEATURE_IDS = {
        "users": ["age", "gender", "liked_genres"],
        "movies": ["title", "average_rating", "genres"],
    }

    fs.batch_serve_to_bq(
        bq_destination_output_uri=bq_destination_output_uri,
        serving_feature_ids=SERVING_FEATURE_IDS,
        read_instances_uri=read_instances_uri,
        sync=sync,
    )

Idiomas adicionales

Puedes instalar y usar las siguientes bibliotecas cliente de Vertex AI para llamar a la API de Vertex AI. Las bibliotecas cliente de Cloud proporcionan una experiencia optimizada para los desarrolladores, mediante el uso de las convenciones y estilos naturales de cada lenguaje compatible.

Visualiza trabajos de entrega por lotes

Usa la consola de Google Cloud para ver trabajos de entrega por lotes en un proyecto de Google Cloud.

IU web

  1. En la sección de Vertex AI de la consola de Google Cloud, ve a la página Funciones.

    Ve a la página Atributos

  2. Selecciona una región de la lista desplegable Región.
  3. En la barra de acciones, haz clic en Ver trabajos de entrega por lotes a fin de enumerar los trabajos de entrega por lotes para todos los almacenes de atributos.
  4. Haz clic en el ID de un trabajo de entrega por lotes para ver sus detalles, como la fuente de la instancia de lectura que se usó y el destino de salida.

¿Qué sigue?