Membuat grup fitur

Grup fitur adalah resource Feature Registry yang dikaitkan dengan tabel atau tampilan BigQuery yang berisi data fitur Anda. Grup fitur dapat berisi beberapa fitur, dengan setiap fitur dikaitkan dengan kolom dalam sumber data fitur. Jika Anda ingin mendaftarkan sumber data fitur di Feature Registry, buat grup fitur, lalu tambahkan fitur ke grup tersebut.

Setelah membuat grup fitur dan mengaitkan sumber data BigQuery, Anda dapat membuat fitur yang dikaitkan dengan kolom dalam sumber data. Perhatikan bahwa meskipun mengaitkan sumber data bersifat opsional saat membuat grup fitur, Anda harus mengaitkan tabel atau tampilan BigQuery sebelum membuat fitur dalam grup fitur tersebut. Setiap fitur sesuai dengan kolom di sumber data yang terkait dengan grup fitur.

Mengapa menggunakan grup fitur dan fitur?

Mendaftarkan sumber data fitur Anda bersifat opsional. Namun, Anda harus mendaftarkan data fitur dengan membuat grup fitur dan fitur dalam skenario berikut:

  • Menggunakan data historis dalam format deret waktu untuk melatih model: Jika sumber data fitur berisi data fitur terbaru dan historis dengan beberapa rekaman fitur untuk ID entitas yang sama, format data ini sebagai deret waktu dengan menambahkan kolom feature_timestamp. Dalam skenario ini, Anda harus mendaftarkan sumber data menggunakan grup fitur dan fitur. Kemudian, Anda dapat menayangkan fitur sebagai berikut:

    • Gunakan penyaluran online untuk menyalurkan nilai fitur terbaru berdasarkan stempel waktu untuk membuat prediksi real-time.

    • Gunakan penyaluran offline untuk menyalurkan nilai fitur terbaru dan historis untuk melatih model.

  • Menggabungkan fitur dari beberapa sumber: Gunakan grup fitur untuk menggabungkan kolom tertentu dari beberapa sumber data BigQuery saat Anda membuat instance tampilan fitur.

  • Menyajikan nilai fitur null: Selama penyajian online, jika Anda ingin menyajikan hanya nilai fitur terbaru, termasuk nilai null, daftarkan sumber data fitur Anda dengan membuat grup fitur dengan parameter dense yang ditetapkan ke true.

  • Menggunakan sinkronisasi data berkelanjutan di tampilan fitur: Mendaftarkan fitur adalah prasyarat untuk menggunakan sinkronisasi data berkelanjutan di tampilan fitur.

  • Memantau fitur untuk mendeteksi anomali: Anda harus mendaftarkan fitur jika ingin menyiapkan pemantauan fitur untuk mengambil statistik fitur dan mendeteksi penyimpangan fitur.

Kapan sebaiknya tidak menggunakan grup fitur dan fitur

Jika Anda ingin menayangkan sematan dari sumber data fitur, jangan daftarkan sumber data dengan membuat grup fitur dan fitur. Dalam skenario ini, Anda harus menyiapkan penyajian online dengan mengaitkan tabel atau tampilan BigQuery secara langsung dengan tampilan fitur Anda.

Untuk mengetahui informasi selengkapnya tentang cara menyiapkan penayangan online tanpa mendaftarkan sumber data fitur, lihat Membuat tampilan fitur dari sumber BigQuery.

Mengontrol akses

Anda dapat mengontrol akses untuk grup fitur di tingkat berikut:

  • Mengontrol akses ke resource FeatureGroup: Untuk mengontrol akses ke grup fitur bagi individu, grup Google, domain, atau akun layanan tertentu, siapkan kebijakan IAM untuk grup fitur.

  • Mengontrol akses ke sumber data BigQuery: Secara default, grup fitur menggunakan akun layanan default yang dikonfigurasi untuk project. Vertex AI Feature Store menetapkan peran Identity and Access Management (IAM) BigQuery Data Viewer ke akun layanan ini. Dengan demikian, setiap pengguna yang memiliki izin untuk membuat grup fitur dalam project dapat mengakses sumber data fitur di BigQuery. Untuk membatasi akses ke sumber data BigQuery atau memberikan akses kepada pengguna tambahan, Anda dapat menyiapkan grup fitur untuk menggunakan akun layanan khusus miliknya. Vertex AI Feature Store menghasilkan alamat email akun layanan unik untuk setiap grup fitur yang dikonfigurasi agar memiliki akun layanan khusus.

Sebelum memulai

Sebelum Anda membuat grup fitur, selesaikan prasyarat berikut:

  • Pastikan ada minimal satu instance toko online yang dibuat di project Anda, meskipun Anda ingin membuat instance toko online baru. Jika Anda menggunakan project baru, buat instance toko online sebelum membuat grup fitur.

  • Format data fitur Anda dalam tabel atau tampilan BigQuery agar sesuai dengan Panduan persiapan sumber data.

  • Verifikasi bahwa sumber data BigQuery Anda berisi setidaknya satu kolom ID entity dengan nilai string atau int.

  • Lakukan autentikasi ke Vertex AI, kecuali jika Anda telah melakukannya.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    Python

    Untuk menggunakan contoh Python di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.

      Menginstal Google Cloud CLI.

      Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

      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.

    Untuk informasi selengkapnya, lihat Set up authentication for a local development environment.

    REST

    Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, Anda menggunakan kredensial yang Anda berikan ke gcloud CLI.

      Menginstal Google Cloud CLI.

      Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

    Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud .

Membuat grup fitur untuk mendaftarkan sumber data fitur

Gunakan contoh berikut untuk membuat grup fitur dan mengaitkan sumber data fitur, seperti tabel atau tampilan BigQuery.

Konsol

Gunakan petunjuk berikut untuk membuat grup fitur menggunakan konsol Google Cloud :

  1. Di bagian Vertex AI pada konsol Google Cloud , buka halaman Feature Store.

    Buka halaman Feature Store

  2. Di bagian Grup fitur, klik Buat untuk membuka panel Info dasar di halaman Buat Grup Fitur.

  3. Tentukan Nama grup fitur.

  4. Opsional: Untuk menambahkan label, klik Tambahkan label, lalu tentukan nama dan nilai label. Anda dapat menambahkan beberapa label ke grup fitur.

  5. Di kolom BigQuery path, klik Browse untuk memilih tabel atau tampilan sumber BigQuery yang akan dikaitkan dengan grup fitur.

  6. Di daftar Kolom ID entity, pilih kolom ID entity dari tabel atau tampilan sumber BigQuery.

    Perhatikan bahwa langkah ini bersifat opsional jika tabel atau tampilan sumber BigQuery memiliki kolom bernama entity_id. Dalam hal ini, jika Anda tidak memilih kolom ID entity, grup fitur akan menggunakan kolom entity_id sebagai kolom ID entity default.

  7. Klik Lanjutkan.

  8. Di panel Daftarkan, klik salah satu opsi berikut untuk menunjukkan apakah Anda ingin menambahkan fitur ke grup fitur baru:

    • Sertakan semua kolom dari tabel BigQuery—Buat fitur dalam grup fitur untuk semua kolom di tabel atau tampilan sumber BigQuery.

    • Masukkan fitur secara manual—Buat fitur berdasarkan kolom tertentu di sumber BigQuery. Untuk setiap fitur, masukkan Nama fitur dan klik nama kolom sumber BigQuery yang sesuai dalam daftar.

      Untuk menambahkan fitur lainnya, klik Tambahkan fitur lainnya.

    • Membuat grup fitur kosong—Buat grup fitur tanpa menambahkan fitur ke dalamnya.

  9. Klik Buat.

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 API Python.


from google.cloud import aiplatform
from vertexai.resources.preview import feature_store
from typing import List


def create_feature_group_sample(
    project: str,
    location: str,
    feature_group_id: str,
    bq_table_uri: str,
    entity_id_columns: List[str],
):
    aiplatform.init(project=project, location=location)
    fg = feature_store.FeatureGroup.create(
        name=feature_group_id,
        source=feature_store.utils.FeatureGroupBigQuerySource(
            uri=bq_table_uri, entity_id_columns=entity_id_columns
        ),
    )
    return fg

  • project: Project ID Anda.
  • location: Region tempat Anda ingin membuat grup fitur, misalnya us-central1.
  • feature_group_id: Nama grup fitur baru yang ingin Anda buat.
  • bq_table_uri: URI tabel atau tampilan sumber BigQuery yang ingin Anda daftarkan untuk grup fitur.
  • entity_id_columns: Nama kolom yang berisi ID entity. Anda dapat menentukan satu kolom atau beberapa kolom.
    • Untuk menentukan hanya satu kolom ID entity, tentukan nama kolom dalam format berikut:
      "entity_id_column_name".
    • Untuk menentukan beberapa kolom ID entity, tentukan nama kolom dalam format berikut:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...].

REST

Untuk membuat resource FeatureGroup, kirim permintaan POST menggunakan metode featureGroups.create.

Sebelum menggunakan data permintaan mana pun, lakukan penggantian berikut:

  • LOCATION_ID: Region tempat Anda ingin membuat grup fitur, misalnya us-central1.
  • SERVICE_AGENT_TYPE: Opsional. Konfigurasi akun layanan untuk grup fitur. Untuk menggunakan akun layanan khusus untuk grup fitur, masukkan SERVICE_AGENT_TYPE_FEATURE_GROUP.
  • PROJECT_ID: Project ID Anda.
  • ENTITY_ID_COLUMNS: Nama kolom yang berisi ID entity. Anda dapat menentukan satu kolom atau beberapa kolom.
    • Untuk menentukan hanya satu kolom ID entity, tentukan nama kolom dalam format berikut:
      "entity_id_column_name".
    • Untuk menentukan beberapa kolom ID entity, tentukan nama kolom dalam format berikut:
      ["entity_id_column_1_name", "entity_id_column_2_name", ...].
  • FEATUREGROUP_NAME: Nama grup fitur baru yang ingin Anda buat.
  • BIGQUERY_SOURCE_URI: URI tabel atau tampilan sumber BigQuery yang ingin Anda daftarkan untuk grup fitur.
  • TIMESTAMP_COLUMN: Opsional. Tentukan nama kolom yang berisi stempel waktu fitur dalam tabel atau tampilan sumber BigQuery.
    Anda hanya perlu menentukan nama kolom stempel waktu jika data diformat sebagai deret waktu dan kolom yang berisi stempel waktu fitur tidak diberi nama feature_timestamp.
  • STATIC_DATA_SOURCE: Opsional. Masukkan true jika data tidak diformat sebagai deret waktu. Setelan default-nya adalah false.
  • DENSE: Opsional. Menunjukkan cara Vertex AI Feature Store menangani nilai null saat menyalurkan data dari tampilan fitur yang terkait dengan grup fitur:
    • false—Ini adalah setelan default. Vertex AI Feature Store hanya menyalurkan nilai fitur non-null terbaru. Jika nilai terbaru untuk suatu fitur adalah null, Vertex AI Feature Store akan menyalurkan nilai historis non-null terbaru. Namun, jika nilai saat ini dan historis untuk fitur tersebut adalah null, Vertex AI Feature Store akan menyalurkan null sebagai nilai fitur.
    • true—Untuk tampilan fitur dengan sinkronisasi data terjadwal, Vertex AI Feature Store hanya menyalurkan nilai fitur terbaru, termasuk nilai null. Untuk tampilan fitur dengan sinkronisasi data berkelanjutan, Vertex AI Feature Store hanya menyalurkan nilai fitur non-null terbaru. Namun, jika nilai saat ini dan historis untuk fitur adalah null, Vertex AI Feature Store akan menyalurkan null sebagai nilai fitur. Untuk mengetahui informasi selengkapnya tentang jenis sinkronisasi data dan cara mengonfigurasi jenis sinkronisasi data dalam tampilan fitur, lihat Menyinkronkan data dalam tampilan fitur.

Metode HTTP dan URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups?feature_group_id=FEATUREGROUP_NAME

Isi JSON permintaan:

{
  "service_agent_type": "SERVICE_AGENT_TYPE",
  "big_query": {
    "entity_id_columns": "ENTITY_ID_COLUMNS",
    "big_query_source": {
      "input_uri": "BIGQUERY_SOURCE_URI",
    }
    "time_series": {
      "timestamp_column": ""TIMESTAMP_COLUMN"",
    },
    "static_data_source": STATIC_DATA_SOURCE,
    "dense": DENSE
  }
}

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 \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups?feature_group_id=FEATUREGROUP_NAME"

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 "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups?feature_group_id=FEATUREGROUP_NAME" | Select-Object -Expand Content

Anda akan melihat respons JSON yang mirip dengan berikut ini:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.UpdateFeatureGroupOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-09-18T03:00:13.060636Z",
      "updateTime": "2023-09-18T03:00:13.060636Z"
    }
  }
}

Langkah berikutnya