Recupero dei dati di addestramento

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

Recupera i valori delle funzionalità per l'addestramento del modello

Per l'addestramento del modello, è necessario un set di dati di addestramento contenente esempi della tua attività di previsione. Questi esempi sono costituiti da istanze che includono le relative funzionalità e le etichette. L'istanza è l'elemento per cui vuoi fare una previsione. Ad esempio, un'istanza potrebbe essere una casa e vuoi determinarne il valore di mercato. Le sue caratteristiche potrebbero includere la posizione, l'età e il prezzo medio delle case vicine vendute di recente. Un'etichetta è una risposta per l'attività di previsione, ad esempio la casa è stata venduta per 100.000 $.

Poiché ogni etichetta è un'osservazione in un determinato momento, devi recuperare i valori delle funzionalità corrispondenti a quel momento in cui è stata effettuata l'osservazione, ad esempio i prezzi delle case vicine quando è stata venduta una determinata casa. Poiché le etichette e i valori delle caratteristiche vengono raccolti nel tempo, questi valori varieranno. Vertex AI Feature Store (legacy) può eseguire una ricerca point-in-time in modo da recuperare i valori delle funzionalità in un determinato momento.

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 a T1 e T2. Immagina di bloccare lo stato dei valori delle caratteristiche in corrispondenza di questi timestamp. Pertanto, per la ricerca in un determinato momento a T1, Vertex AI Feature Store (legacy) restituisce i valori delle funzionalità più recenti fino al momento T1 per Feature 1, Feature 2 e Feature 3 e non lascia trapelare valori precedenti T1. Con il passare del tempo, i valori delle funzionalità cambiano e cambia anche l'etichetta. Pertanto, a T2, Feature Store restituisce valori di caratteristiche diversi per quel momento.

Ricerca point-in-time di esempio

Input per il recupero di dati 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 che contiene 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 obbligatori affinché Vertex AI Feature Store (legacy) possa eseguire una ricerca in un determinato momento.
    • ID entità: uno o più ID delle entità corrispondenti 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 lette 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 regionale o multiregionale.
    • File CSV in un bucket Cloud Storage regionale o multiregionale. Tuttavia, se i valori delle caratteristiche includono array, devi scegliere un altro formato.
    • File 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 posizione multiregionale del tuo feature store. Ad esempio, un archivio di caratteristiche in us-central1 può leggere o inviare dati solo a bucket Cloud Storage o set di dati BigQuery che si trovano in us-central1 o nella località su più regioni degli Stati Uniti. Non puoi utilizzare i dati, ad esempio, di us-east1. Inoltre, la lettura o la pubblicazione di dati utilizzando bucket a due regioni non è supportata.

Elenco di istanze di lettura

L'elenco di 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.

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

Esempio (CSV)

Immagina un featurestore che contenga i tipi di entità users e movies insieme alle relative caratteristiche. Ad esempio, le funzionalità per users potrebbero includere age e gender, mentre quelle per movies potrebbero includere ratings e genre.

In questo esempio, vuoi raccogliere dati di addestramento sulle preferenze cinematografiche degli utenti. Recuperi i valori delle caratteristiche per le due entità utente alice e bob, nonché le caratteristiche dei film che hanno guardato. Da un set di dati distinto, sai che alice ha guardato movie_01 e ha messo Mi piace. bob ha guardato movie_02 e non gli è piaciuto. Pertanto, l'elenco delle istanze di lettura potrebbe avere il 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 funzionalità per le entità elencate prima o in corrispondenza dei timestamp specificati. Specifica le funzionalità specifiche da recuperare 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 un utente ha apprezzato un film. Questa colonna non è inclusa nel feature store, ma puoi comunque trasmettere questi valori all'output del recupero dati in batch. Nell'output, questi valori di passaggio vengono uniti ai valori dell'archivio di caratteristiche.

Valori null

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

Gestisci in batch i valori delle funzionalità

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

Se vuoi ridurre i costi di utilizzo dello spazio di archiviazione offline leggendo i dati di addestramento recenti ed escludendo quelli vecchi, specifica una data di inizio. Per scoprire come ridurre il costo 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'esportazione e la pubblicazione batch.

UI web

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

REST

Per eseguire il recupero dati in batch dei valori delle funzionalità, invia una richiesta POST utilizzando il metodo featurestores.batchReadFeatureValues.

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

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

  • LOCATION_ID: regione in cui viene creato il feature store. Ad esempio, us-central1.
  • PROJECT_ID: il tuo ID progetto.
  • FEATURESTORE_ID: ID dell'archivio di funzionalità.
  • DATASET_NAME: il 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:

curl

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

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, quindi esegui il comando seguente:

$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 ottenere 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 di 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 i 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 paginaFunzionalità

  2. Seleziona una regione dall'elenco a discesa Regione.
  3. Nella barra delle azioni, fai clic su Visualizza recupero dati in batch batch per elencare i job di pubblicazione batch per tutti i feature store.
  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