Recupero dei dati di addestramento

Per recuperare i dati delle funzionalità per l'addestramento del modello, utilizza recupero dati in batch. Se devi esportare valori delle funzionalità per l'archiviazione o l'analisi ad hoc, esporta i valori delle funzionalità.

Recupera valori delle caratteristiche per l'addestramento del modello

Per l'addestramento del modello, è necessario un set di dati di addestramento che contenga esempi dell'attività di previsione. Questi esempi sono costituiti da istanze che includono le relative funzionalità ed etichette. L'istanza è l'elemento di cui vuoi eseguire una previsione. Ad esempio, un'istanza potrebbe essere una casa e vuoi determinare il suo valore di mercato. tra cui posizione, età e prezzo medio delle case nelle vicinanze vendute di recente. Un'etichetta è una risposta all'attività di previsione, ad esempio la casa venduta per 100.000 $.

Poiché ogni etichetta è un'osservazione in un determinato momento, devi recuperare i valori delle caratteristiche che corrispondono a quel momento in cui è stata effettuata l'osservazione, ad esempio i prezzi delle case nelle vicinanze quando è stata venduta una determinata casa. Man mano che le etichette e i valori delle caratteristiche vengono raccolti nel tempo, i relativi valori cambiano. Vertex AI Feature Store (legacy) può eseguire una ricerca point-in-time in modo da poter recuperare i valori delle caratteristiche in un momento specifico.

Esempio di ricerca point-in-time

L'esempio seguente prevede il recupero dei valori delle funzionalità per due istanze di addestramento con etichette L1 e L2. Le due etichette vengono osservate rispettivamente in T1 e T2. Immagina di bloccare lo stato dei valori delle caratteristiche in quei timestamp. Di conseguenza, per la ricerca point-in-time in T1, Vertex AI Feature Store (legacy) restituisce i valori più recenti delle funzionalità fino al giorno T1 per Feature 1, Feature 2 e Feature 3 e non fa trapelare valori dopo T1. Con il passare del tempo, i valori delle funzionalità cambiano e anche l'etichetta cambia. Di conseguenza, in T2, Feature Store restituisce diversi valori delle funzionalità per quel momento specifico.

Esempio di ricerca point-in-time

Input per la pubblicazione in batch

Come parte di una richiesta di recupero dati in batch, sono necessarie le seguenti informazioni:

  • Un elenco di caratteristiche esistenti per le quali ottenere i valori.
  • Un elenco di istanze di lettura contenente le informazioni per ogni esempio di addestramento. Elenca le osservazioni in un determinato momento. Può essere un file CSV o una tabella BigQuery. L'elenco deve includere le seguenti informazioni:
    • Timestamp: i momenti in cui le etichette sono state osservate o misurate. I timestamp sono necessari per consentire a Vertex AI Feature Store (Legacy) di eseguire una ricerca point-in-time.
    • ID entità: uno o più ID delle entità che corrispondono all'etichetta.
  • L'URI di destinazione e il formato in cui viene scritto l'output. Nell'output, Vertex AI Feature Store (Legacy) unisce essenzialmente la tabella dall'elenco delle istanze di lettura e i valori delle caratteristiche dall'archivio di caratteristiche. Specifica uno dei seguenti formati e posizioni per l'output:
    • Tabella BigQuery in un set di dati a livello di una o più regioni.
    • File CSV in un bucket Cloud Storage regionale o multiregionale. Tuttavia, se i valori delle caratteristiche includono array, devi scegliere un altro formato.
    • Tfrecord in un bucket Cloud Storage.

Requisiti per le regioni

Sia per le istanze di lettura sia per la destinazione, il set di dati o il bucket di origine deve trovarsi nella stessa regione o nella stessa località multiregionale del tuo archivio di caratteristiche. Ad esempio, un archivio di caratteristiche in us-central1 può leggere o gestire i dati solo nei bucket Cloud Storage o nei set di dati BigQuery che si trovano in us-central1 o nella località multiregionale degli Stati Uniti. Ad esempio, non puoi utilizzare i dati di us-east1. Inoltre, la lettura o la gestione dei dati utilizzando bucket a due regioni non sono supportate.

Elenco istanze di lettura

L'elenco delle istanze di lettura specifica le entità e i timestamp per i valori delle caratteristiche che vuoi recuperare. Il file CSV o la tabella BigQuery deve contenere le seguenti colonne in qualsiasi ordine. Ogni colonna richiede un'intestazione di colonna.

  • Devi includere una colonna del timestamp, in cui il nome dell'intestazione è timestamp e i valori della colonna sono timestamp nel formato RFC 3339.
  • Devi includere una o più colonne del tipo di entità, dove l'intestazione è l'ID del tipo di entità e i valori della colonna sono gli ID entità.
  • (Facoltativo) Puoi includere valori di pass-through (colonne aggiuntive), che vengono passati così come sono all'output. Questo è utile se disponi di dati non presenti in Vertex AI Feature Store (legacy), ma vuoi includerli nell'output.

Esempio (CSV)

Immagina un archivio di caratteristiche che contiene i tipi di entità users e movies insieme alle loro funzionalità. Ad esempio, le funzionalità di users potrebbero includere age e gender, mentre le funzionalità di movies potrebbero includere ratings e genre.

Per questo esempio, vuoi raccogliere dati di addestramento sulle preferenze relative ai filmati degli utenti. Puoi recuperare i valori delle funzionalità per le due entità utente alice e bob insieme alle funzionalità dei film che hanno guardato. Da un set di dati separato, sai che alice ha guardato movie_01 e ti è piaciuto. bob ha guardato movie_02 e non è piaciuto. Di conseguenza, l'elenco di istanze di lettura potrebbe essere simile al seguente esempio:

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 (legacy) recupera i valori delle caratteristiche per le entità elencate entro i timestamp indicati. Devi specificare le caratteristiche specifiche da ottenere nell'ambito della richiesta di recupero dati in batch, non nell'elenco delle istanze di lettura.

Questo esempio include anche una colonna denominata liked, che indica se a un utente è piaciuto un film. Questa colonna non è inclusa nell'archivio di caratteristiche, ma puoi comunque passare questi valori all'output della recupero dati in batch. Nell'output, questi valori passthrough vengono uniti ai valori dell'archivio di caratteristiche.

Valori null

Se, in un determinato timestamp, un valore della funzionalità è null, Vertex AI Feature Store (legacy) restituisce il precedente valore della funzionalità non null. Se non sono presenti valori precedenti, Vertex AI Feature Store (Legacy) restituisce null.

Valori delle funzionalità per la pubblicazione in gruppo

Pubblica in gruppo i valori delle caratteristiche da un archivio di caratteristiche per ottenere i dati, come stabilito dal file di elenco delle istanze di lettura.

Se vuoi ridurre i costi di utilizzo dello spazio di archiviazione offline leggendo i dati di addestramento recenti ed escludendo quelli meno recenti, specifica un'ora di inizio. Per informazioni su come ridurre i costi di utilizzo dello spazio di archiviazione offline specificando un'ora di inizio, consulta Specificare un'ora di inizio per ottimizzare i costi di archiviazione offline durante l'elaborazione in batch e l'esportazione in batch.

UI web

Utilizza un altro metodo. Non puoi gestire in batch le funzionalità dalla console Google Cloud.

REST

Per pubblicare in gruppo i valori delle caratteristiche, invia una richiesta POST utilizzando il metodo featurestores.batchReadFeatureValues.

Il seguente esempio restituisce una tabella BigQuery contenente valori delle caratteristiche per i tipi di entità users e movies. Tieni presente che ogni destinazione di output potrebbe avere alcuni prerequisiti prima di poter inviare una richiesta. Ad esempio, se specifichi un nome tabella per il campo bigqueryDestination, devi avere un set di dati esistente. Questi requisiti sono documentati nel riferimento dell'API.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • LOCATION_ID: regione in cui viene creato l'archivio di caratteristiche. Ad esempio, us-central1.
  • PROJECT_ID: il tuo ID progetto.
  • FEATURESTORE_ID: ID dell'archivio di caratteristiche.
  • DATASET_NAME: nome del set di dati BigQuery di destinazione.
  • TABLE_NAME: nome della tabella BigQuery di destinazione.
  • STORAGE_LOCATION: URI Cloud Storage del file CSV delle istanze di lettura.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
  "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"
    }
  ]
}

Per inviare la richiesta, scegli una delle seguenti opzioni:

arricciatura

Salva il corpo della richiesta in un file denominato request.json ed esegui questo 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

Salva il corpo della richiesta in un file denominato request.json ed esegui questo 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

Dovresti vedere un output simile al seguente. Puoi utilizzare OPERATION_ID nella risposta per recuperare lo stato dell'operazione.

{
  "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

Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API 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,
    )

Linguaggi aggiuntivi

Puoi installare e utilizzare le seguenti librerie client Vertex AI per chiamare l'API Vertex AI. Le librerie client di Cloud offrono agli sviluppatori un'esperienza ottimizzata utilizzando gli stili e le convenzioni naturali di ogni linguaggio supportato.

Visualizza job di recupero dati in batch

Utilizza la console Google Cloud per visualizzare i job di recupero dati in batch in un progetto Google Cloud.

UI web

  1. Nella sezione Vertex AI della console Google Cloud, vai alla pagina Funzionalità.

    Vai alla pagina Funzionalità

  2. Seleziona una regione dall'elenco a discesa Regione.
  3. Nella barra delle azioni, fai clic su Visualizza job di recupero dati in batch per elencare i job di recupero batch per tutti gli archivi di caratteristiche.
  4. Fai clic sull'ID di un job di recupero dati in batch per visualizzarne i dettagli, ad esempio l'origine dell'istanza di lettura utilizzata e la destinazione di output.

Passaggi successivi