Bagikan melalui


Gambaran Umum dan Glosarium Feature Store

Halaman ini menjelaskan cara kerja Penyimpanan Fitur Databricks dan menentukan istilah penting.

Bagaimana cara kerja rekayasa fitur pada Databricks?

Alur kerja pembelajaran mesin yang khas menggunakan rekayasa fitur pada Databricks mengikuti jalur ini:

  1. Tulis kode untuk mengonversi data mentah menjadi fitur dan membuat Spark DataFrame yang berisi fitur yang diinginkan.

  2. Buat tabel Delta di Katalog Unity yang memiliki kunci utama.

  3. Melatih dan mencatat model menggunakan tabel fitur. Ketika Anda melakukan ini, model menyimpan spesifikasi fitur yang digunakan untuk pelatihan. Saat model digunakan untuk inferensi, model secara otomatis menggabungkan fitur dari tabel fitur yang sesuai.

  4. Daftarkan model di Model Registry.

    Anda sekarang dapat menggunakan model untuk membuat prediksi pada data baru. Untuk kasus penggunaan batch, model secara otomatis mengambil fitur yang dibutuhkan dari Penyimpanan Fitur.

  5. Untuk kasus penggunaan penyajian real time, terbitkan fitur ke penyimpanan fitur online.

  6. Pada waktu inferensi, model yang melayani titik akhir secara otomatis menggunakan ID entitas dalam data permintaan untuk mencari fitur pra-komputasi dari toko online untuk menilai model ML. Titik akhir menggunakan Unity Catalog untuk mengatasi silsilah data dari model yang dilayani ke fitur yang digunakan untuk melatih model ini, dan melacak silsilah data ke penyimpanan fitur online untuk akses real time.

Alur Penyimpanan Fitur untuk model pembelajaran mesin yang dilayani.

Glosarium penyimpanan fitur

Toko Fitur

Penyimpanan fitur adalah repositori terpusat yang memungkinkan ilmuwan data untuk menemukan dan berbagi fitur. Menggunakan penyimpanan fitur juga memastikan bahwa kode yang digunakan untuk menghitung nilai fitur sama selama pelatihan model dan ketika model digunakan untuk inferensi. Cara kerja penyimpanan fitur di Databricks bergantung pada apakah ruang kerja Anda diaktifkan untuk Unity Catalog atau tidak.

  • Di ruang kerja yang diaktifkan untuk Katalog Unity, Anda dapat menggunakan tabel Delta apa pun di Katalog Unity yang menyertakan batasan kunci utama sebagai tabel fitur.
  • Ruang kerja yang tidak diaktifkan untuk Katalog Unity dan dibuat sebelum 19 Agustus 2024, 16:00:00 (UTC) memiliki akses ke Pusat Fitur Workspace lama.

Pembelajaran mesin menggunakan data yang ada untuk membangun model guna memprediksi hasil di masa mendatang. Dalam hampir semua kasus, data mentah memerlukan prapemrosesan dan transformasi sebelum dapat digunakan untuk membangun model. Proses ini disebut rekayasa fitur, dan output dari proses ini disebut fitur - blok penyusun model.

Mengembangkan fitur rumit dan memakan waktu. Komplikasi tambahan adalah bahwa untuk pembelajaran mesin, perhitungan fitur perlu dilakukan untuk pelatihan model, dan kemudian lagi ketika model digunakan untuk membuat prediksi. Implementasi ini mungkin tidak dilakukan oleh tim yang sama atau menggunakan lingkungan kode yang sama, yang dapat menyebabkan penundaan dan kesalahan. Selain itu, tim yang berbeda dalam organisasi akan sering memiliki kebutuhan fitur serupa tetapi mungkin tidak menyadari pekerjaan yang telah dilakukan tim lain. Sebuah feature store dirancang untuk mengatasi masalah ini.

Tabel fitur

Fitur diatur sebagai tabel fitur. Setiap tabel harus memiliki kunci utama, dan didukung oleh tabel Delta dan metadata tambahan. Metadata fitur tabel melacak sumber data dari mana tabel dihasilkan dan notebook serta pekerjaan yang membuat atau menulis ke tabel.

Dengan Databricks Runtime 13.3 LTS ke atas, jika ruang kerja Anda diaktifkan untuk Unity Catalog, Anda dapat menggunakan tabel Delta apa pun di Unity Catalog dengan kunci utama sebagai tabel fitur. Lihat bagian tentang cara bekerja dengan tabel fitur di Unity Catalog. Tabel fitur yang disimpan di Penyimpanan Fitur Ruang Kerja lokal disebut "Tabel fitur ruang kerja". Lihat Pengelolaan tabel fitur di Penyimpanan Fitur di Ruang Kerja (legacy).

Fitur dalam tabel fitur biasanya dihitung dan diperbarui menggunakan fungsi komputasi umum.

Anda dapat menerbitkan tabel fitur ke toko daring untuk inferensi model secara waktu nyata.

FeatureLookup

Banyak model yang berbeda mungkin menggunakan fitur dari tabel fitur tertentu, dan tidak semua model akan membutuhkan setiap fitur. Untuk melatih model menggunakan fitur, Anda membuat FeatureLookup untuk setiap tabel fitur. FeatureLookup menentukan fitur mana yang akan digunakan dari tabel, dan juga menentukan kunci yang akan digunakan untuk menggabungkan tabel fitur ke data label yang diteruskan ke create_training_set.

Diagram mengilustrasikan cara FeatureLookup kerjanya. Dalam contoh ini, Anda ingin melatih model menggunakan fitur dari dua tabel fitur, customer_features dan product_features. Anda membuat FeatureLookup untuk setiap tabel fitur, menentukan nama tabel, fitur (kolom) yang akan dipilih dari tabel, dan kunci pencarian yang akan digunakan saat menggabungkan fitur untuk membuat himpunan data pelatihan.

Anda kemudian memanggil create_training_set, juga ditampilkan dalam diagram. Panggilan API ini menentukan DataFrame yang berisi data pelatihan mentah (label_df), yang FeatureLookups akan digunakan, dan label, kolom yang berisi kebenaran dasar. Data pelatihan harus berisi kolom yang sesuai dengan setiap kunci utama tabel fitur. Data dalam tabel fitur digabungkan ke DataFrame input sesuai dengan kunci ini. Hasilnya ditampilkan dalam diagram sebagai "Himpunan data pelatihan".

Diagram FeatureLookup

FeatureFunction

Fitur mungkin bergantung pada informasi yang hanya tersedia pada saat inferensi. Anda dapat menentukan FeatureFunction yang menggabungkan input real-time dengan nilai fitur untuk menghitung nilai fitur terbaru. Contoh diperlihatkan dalam diagram. Untuk detailnya, lihat Komputasi fitur sesuai permintaan.

Diagram FungsiFitur

Set pelatihan

Satu set pelatihan terdiri dari daftar fitur dan DataFrame yang berisi data pelatihan mentah, label, dan kunci primer untuk mencari fitur. Anda membuat data pelatihan dengan menentukan fitur untuk diekstrak dari Penyimpanan Fitur, dan memberikan data pelatihan sebagai input selama pembelajaran model.

Lihat Membuat himpunan data pelatihan untuk contoh cara membuat dan menggunakan set pelatihan.

Saat Anda melatih dan mencatat model menggunakan Rekayasa Fitur di Unity Catalog, Anda dapat melihat silsilah model di Catalog Explorer. Tabel dan fungsi yang digunakan untuk membuat model secara otomatis dilacak dan ditampilkan. Lihat Tata kelola fitur dan silsilah data.

FeatureSpec

adalah FeatureSpec entitas Katalog Unity yang mendefinisikan serangkaian fitur dan fungsi yang dapat digunakan kembali untuk penyajian. FeatureSpecs menggabungkan FeatureLookupdari tabel fitur dan FeatureFunctions ke dalam satu unit logis yang dapat digunakan dalam pelatihan model atau dilayani menggunakan titik akhir Penyajian Fitur.

FeatureSpecs disimpan dan dikelola oleh Unity Catalog, dengan pelacakan silsilah penuh ke tabel dan fungsi fitur offline konstituennya. Ini memungkinkan tata kelola, kemudahan ditemukan, dan penggunaan kembali di berbagai model dan aplikasi.

Anda bisa menggunakan dengan FeatureSpec cara berikut:

  • Buat titik akhir Penyajian Fitur menggunakan Python API atau REST API. Lihat Fitur Melayani titik akhir atau menyebarkan secara langsung menggunakan antarmuka pengguna Model Melayani. Untuk aplikasi berkinerja tinggi, aktifkan pengoptimalan rute.
  • Gunakan dalam pelatihan model dengan merujuk di FeatureSpeccreate_training_set.

FeatureSpec Selalu mereferensikan tabel fitur offline, tetapi harus diterbitkan ke toko online untuk skenario penyajian real time.

Tabel fitur rangkaian waktu (pencarian titik waktu)

Data yang digunakan untuk melatih model sering memiliki dependensi waktu yang terpasang di dalamnya. Saat membuat model, Anda harus mempertimbangkan hanya nilai fitur hingga waktu nilai target yang diamati. Jika Anda melatih fitur berdasarkan data yang diukur setelah waktu pencatatan nilai target, kinerja model mungkin menurun.

Tabel fitur deret waktu menyertakan kolom cap waktu yang memastikan bahwa setiap baris dalam himpunan data pelatihan mewakili nilai fitur terbaru yang diketahui sesuai dengan cap waktu baris tersebut. Anda harus menggunakan tabel fitur rangkaian waktu setiap kali nilai fitur berubah dari waktu ke waktu, misalnya dengan data rangkaian waktu, data berbasis peristiwa, atau data agregat waktu.

Saat membuat tabel fitur rangkaian waktu, Anda menentukan kolom terkait waktu di kunci utama Anda untuk menjadi kolom rangkaian waktu menggunakan timeseries_columns argumen (untuk Rekayasa Fitur di Katalog Unity) atau timestamp_keys argumen (untuk Penyimpanan Fitur Ruang Kerja). Ini memungkinkan Anda untuk melakukan pencarian sesaat ketika menggunakan create_training_set atau score_batch. Sistem melakukan gabungan menggunakan cap waktu, menggunakan yang timestamp_lookup_key Anda tentukan.

Jika Anda tidak menggunakan argumen timeseries_columns atau argumen timestamp_keys, dan hanya menunjuk kolom rangkaian waktu sebagai kolom kunci utama, Feature Store tidak menerapkan logika titik waktu ke kolom rangkaian waktu selama penggabungan. Hanya mencocokkan baris dengan waktu yang tepat, bukan mencocokkan semua baris sebelum waktu yang ditentukan.

Toko offline

Penyimpanan fitur offline digunakan untuk eksplorasi fitur, pelatihan model, dan pemrosesan batch. Ini berisi tabel fitur yang terwujud sebagai tabel Delta.

Penyimpanan fitur online

Databricks Online Feature Store adalah solusi berperforma tinggi dan dapat diskalakan untuk melayani data fitur ke aplikasi online dan model pembelajaran mesin real time.

Didukung oleh Databricks Lakebase, ini menyediakan akses latensi rendah ke data fitur dalam skala besar sambil mempertahankan tata kelola, silsilah data, dan konsistensi dengan tabel fitur offline Anda.

Anda dapat menyediakan Toko Online di platform Lakebase tanpa server. API memungkinkan Anda mengelola instans dan replika baca dan menskalakan instans sesuai kebutuhan. Anda dapat menggunakan API yang nyaman untuk menerbitkan tabel Unity Catalog ke toko online. Tabel ini juga merupakan entitas Unity Catalog yang secara asli melacak silsilah data ke tabel sumber. Databricks juga mendukung toko online pihak ketiga.

Siaran Langsung

Selain penulisan kelompok, Fitur Penyimpanan Databricks juga mendukung streaming. Anda dapat menulis nilai fitur ke tabel fitur dari sumber streaming, dan kode komputasi fitur dapat memanfaatkan Streaming Terstruktur untuk mengubah aliran data mentah menjadi fitur.

Anda juga dapat melakukan streaming tabel fitur dari penyimpanan offline ke penyimpanan online.

Pengemasan Model

Saat Anda melatih model pembelajaran mesin menggunakan Teknik Pemrosesan Fitur di Unity Catalog atau Penyimpanan Fitur Ruang Kerja dan mencatatnya menggunakan metode klien log_model(), model akan mempertahankan referensi ke fitur-fitur ini. Pada waktu inferensi, model dapat secara opsional mengambil nilai fitur secara otomatis. Pemanggil hanya perlu menyediakan kunci utama fitur yang digunakan dalam model (misalnya, user_id), dan model mengambil semua nilai fitur yang diperlukan.

Dalam inferensi batch, nilai fitur diambil dari penyimpanan offline dan digabungkan dengan data baru sebelum penilaian. Dalam inferensi waktu nyata, nilai fitur diambil dari penyimpanan online.

Untuk mengemas model dengan metadata fitur, gunakan FeatureEngineeringClient.log_model (untuk Rekayasa Fitur pada Katalog Unity) atau FeatureStoreClient.log_model (untuk Penyimpanan Fitur pada Ruang Kerja).