Mengambil data pelatihan

Untuk mengambil data fitur untuk pelatihan model, gunakan penyaluran batch. Jika Anda perlu mengekspor nilai fitur untuk pengarsipan atau analisis ad-hoc, ekspor nilai fitur.

Mengambil nilai fitur untuk pelatihan model

Untuk pelatihan model, Anda memerlukan set data pelatihan yang berisi contoh tugas prediksi. Contoh ini terdiri atas instance yang mencakup fitur dan labelnya. Instance adalah hal yang Anda ingin buat prediksinya. Misalnya, instance dapat berupa sebuah rumah, dan Anda ingin menentukan nilai pasarnya. Fiturnya dapat mencakup lokasi, umur, dan harga rata-rata rumah di sekitar yang terjual baru-baru ini. Label adalah jawaban untuk tugas prediksi, seperti rumah yang akhirnya terjual $100 ribu.

Karena setiap label adalah pengamatan pada titik waktu tertentu, Anda perlu mengambil nilai fitur yang terkait dengan titik waktu tersebut saat pengamatan dilakukan—misalnya harga rumah di sekitar saat rumah tertentu terjual. Karena label dan nilai fitur dikumpulkan dari waktu ke waktu, nilai fitur tersebut akan berubah. Vertex AI Feature Store (Lama) dapat melakukan pencarian point-in-time sehingga Anda dapat mengambil nilai fitur pada waktu tertentu.

Contoh pencarian point-in-time

Contoh berikut melibatkan pengambilan nilai fitur untuk dua instance pelatihan dengan label L1 dan L2. Kedua label berturut-turut diamati pada T1 dan T2. Bayangkan Anda membekukan nilai fitur pada stempel waktu tersebut. Akibatnya, untuk pencarian point-in-time pada T1, Vertex AI Feature Store (Lama) akan menampilkan nilai fitur terbaru hingga waktu T1 untuk Feature 1, Feature 2, dan Feature 3, serta tidak membocorkan nilai apa pun selepas T1. Seiring waktu, nilai fitur berubah dan label juga berubah. Jadi, pada T2, Feature Store menampilkan nilai fitur yang berbeda untuk titik waktu tersebut.

Contoh pencarian point-in-time

Input penyaluran batch

Sebagai bagian dari permintaan penyaluran batch, informasi berikut diperlukan:

  • Daftar fitur yang ada yang ingin diperoleh nilainya.
  • Daftar instance baca yang berisi informasi untuk setiap contoh pelatihan. Daftar ini mencantumkan pengamatan pada titik waktu tertentu. Data dapat berupa file CSV atau tabel BigQuery. Informasi berikut harus ada dalam daftar:
    • Stempel waktu: waktu saat label diamati atau diukur. Stempel waktu diperlukan agar Vertex AI Feature Store (Lama) dapat melakukan pencarian point-in-time.
    • ID entity: satu atau beberapa ID entity yang terkait dengan label.
  • Format dan URI tujuan tempat output ditulis. Dalam output, Vertex AI Feature Store (Lama) menggabungkan tabel dari daftar instance baca dan nilai fitur dari featurestore. Tentukan salah satu format dan lokasi berikut untuk output:
    • Tabel BigQuery di set data regional atau multi-regional.
    • File CSV di bucket Cloud Storage regional atau multi-regional. Namun, jika nilai fitur mencakup array, Anda harus memilih format lain.
    • File Tfrecord di bucket Cloud Storage.

Persyaratan Region

Baik untuk tujuan maupun instance baca, set data atau bucket sumber harus berada di region yang sama atau di lokasi multi-regional yang sama dengan featurestore Anda. Misalnya, featurestore di us-central1 hanya dapat membaca data dari atau menyalurkan data ke bucket Cloud Storage atau set data BigQuery yang berada di us-central1 atau di lokasi multi-region AS. Anda tidak dapat menggunakan data dari, misalnya, us-east1. Selain itu, membaca atau menyalurkan data menggunakan bucket region ganda tidak didukung.

Daftar instance baca

Daftar instance baca menentukan entity dan stempel waktu untuk nilai fitur yang ingin diambil. File CSV atau tabel BigQuery harus berisi kolom berikut, dalam sembarang urutan. Setiap kolom harus memiliki header kolom.

  • Anda harus menyertakan kolom stempel waktu, dengan nama header timestamp dan nilai kolomnya adalah stempel waktu dalam format RFC 3339.
  • Anda harus menyertakan satu atau beberapa kolom jenis entity, di mana header-nya adalah ID jenis entity, dan nilai kolomnya adalah ID entity.
  • Opsional: Anda dapat menyertakan nilai pass-through (kolom tambahan), yang akan diteruskan apa adanya ke output. Nilai ini berguna jika Anda memiliki data yang tidak ada di Vertex AI Feature Store (Lama), tetapi ingin menyertakannya dalam output.

Contoh (CSV)

Bayangkan featurestore yang berisi jenis entity users dan movies beserta fiturnya. Misalnya, fitur untuk users dapat mencakup age dan gender, sedangkan fitur untuk movies dapat mencakup ratings dan genre.

Untuk contoh ini, Anda ingin mengumpulkan data pelatihan tentang preferensi film pengguna. Anda mengambil nilai fitur untuk dua entity pengguna alice dan bob beserta fitur dari film yang mereka tonton. Dari set data terpisah, Anda tahu bahwa alice menonton movie_01 dan menyukainya. bob menonton movie_02 dan tidak menyukainya. Jadi, daftar instance bacanya mungkin terlihat seperti contoh berikut:

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 (Lama) mengambil nilai fitur untuk entity yang tercantum pada atau sebelum stempel waktu yang ditentukan. Anda menentukan fitur spesifik yang akan diambil sebagai bagian dari permintaan penyaluran batch, bukan dalam daftar instance baca.

Contoh ini juga menyertakan kolom bernama liked, yang menunjukkan apakah pengguna menyukai sebuah film atau tidak. Kolom ini tidak disertakan dalam featurestore, tetapi Anda masih dapat meneruskan nilainya ke output penyaluran batch. Dalam output, nilai pass-through ini akan digabungkan dengan nilai dari featurestore.

Nilai null

Jika, pada stempel waktu tertentu, nilai fitur adalah null, Vertex AI Feature Store (Lama) akan menampilkan nilai fitur non-null sebelumnya. Jika tidak ada nilai sebelumnya, Vertex AI Feature Store (Lama) akan menampilkan null.

Nilai fitur penyaluran batch

Salurkan nilai fitur sebagai batch dari featurestore untuk mendapatkan data, seperti yang ditentukan oleh file daftar instance baca.

Jika Anda ingin menurunkan biaya penggunaan penyimpanan offline dengan membaca data pelatihan terbaru dan mengecualikan data lama, tentukan waktu mulai. Untuk mempelajari cara menurunkan biaya penggunaan penyimpanan offline dengan menentukan waktu mulai, lihat Menentukan waktu mulai untuk mengoptimalkan biaya penyimpanan offline selama penyaluran batch dan ekspor batch.

UI Web

Gunakan metode lain. Anda tidak dapat menyalurkan fitur secara massal dari Konsol Google Cloud.

REST

Untuk menyalurkan nilai fitur secara massal, kirim permintaan POST menggunakan metode featurestores.batchReadFeatureValues.

Contoh berikut meng-output tabel BigQuery yang berisi nilai fitur untuk jenis entity users dan movies. Perhatikan bahwa setiap tujuan output mungkin memiliki beberapa prasyarat sebelum Anda dapat mengirim permintaan. Misalnya, jika Anda menentukan nama tabel untuk kolom bigqueryDestination, Anda harus sudah memiliki set data. Persyaratan ini didokumentasikan dalam referensi API.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • LOCATION_ID: Region tempat featurestore dibuat. Contoh, us-central1.
  • PROJECT_ID: Project ID Anda.
  • FEATURESTORE_ID: ID featurestore.
  • DATASET_NAME: Nama set data BigQuery tujuan.
  • TABLE_NAME: Nama tabel BigQuery tujuan.
  • STORAGE_LOCATION: URI Cloud Storage ke file CSV instance baca.

Metode HTTP dan URL:

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

Isi JSON permintaan:

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

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

PowerShell

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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 "http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID:batchReadFeatureValues" | Select-Object -Expand Content

Anda akan melihat output yang mirip dengan berikut ini: Anda dapat menggunakan OPERATION_ID sebagai respons untuk mendapatkan status operasi.

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

Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Python API.

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

Bahasa tambahan

Anda dapat menginstal dan menggunakan library klien Vertex AI berikut untuk memanggil Vertex AI API. Library Klien Cloud memberikan pengalaman yang dioptimalkan bagi developer dengan menggunakan konvensi dan gaya yang natural dari setiap bahasa yang didukung.

Melihat tugas penyaluran batch

Gunakan Konsol Google Cloud untuk melihat tugas penyaluran batch di project Google Cloud.

UI web

  1. Di bagian Vertex AI pada Konsol Google Cloud, buka halaman Features.

    Buka halaman Fitur

  2. Pilih sebuah wilayah dari menu drop-down Region.
  3. Dari panel tindakan, klik View batch serving jobs guna mencantumkan tugas penyaluran batch untuk semua featurestore.
  4. Klik ID tugas penyaluran batch untuk melihat detailnya, seperti sumber instance baca yang digunakan dan tujuan output-nya.

Langkah selanjutnya