Sederhanakan pengembangan model pembelajaran mesin berulang dengan menambahkan fitur ke grup fitur yang ada di Amazon SageMaker Feature Store PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Sederhanakan pengembangan model pembelajaran mesin berulang dengan menambahkan fitur ke grup fitur yang ada di Amazon SageMaker Feature Store

Rekayasa fitur adalah salah satu aspek yang paling menantang dari siklus hidup pembelajaran mesin (ML) dan fase di mana sebagian besar waktu dihabiskan—ilmuwan data dan insinyur ML menghabiskan 60–70% waktu mereka untuk rekayasa fitur. AWS diperkenalkan Toko Fitur Amazon SageMaker selama AWS re:Invent 2020, yang merupakan penyimpanan terpusat yang dibuat khusus, terkelola sepenuhnya, untuk fitur dan metadata terkait. Fitur adalah sinyal yang diambil dari data untuk melatih model ML. Keuntungan dari Feature Store adalah logika rekayasa fitur dibuat satu kali, dan fitur yang dihasilkan disimpan pada platform pusat. Penyimpanan pusat fitur dapat digunakan untuk pelatihan dan inferensi dan digunakan kembali di berbagai tim rekayasa data.

Fitur di toko fitur disimpan dalam koleksi yang disebut grup fitur. Grup fitur analog dengan skema tabel database di mana kolom mewakili fitur dan baris mewakili catatan individu. Grup fitur tidak dapat diubah sejak Feature Store diperkenalkan. Jika kami harus menambahkan fitur ke grup fitur yang ada, prosesnya rumit—kami harus membuat grup fitur baru, mengisi ulang grup fitur baru dengan data historis, dan memodifikasi sistem hilir untuk menggunakan grup fitur baru ini. Pengembangan ML adalah proses berulang dari coba-coba di mana kami dapat mengidentifikasi fitur-fitur baru secara terus-menerus yang dapat meningkatkan kinerja model. Jelas bahwa tidak dapat menambahkan fitur ke grup fitur dapat menyebabkan siklus hidup pengembangan model ML yang kompleks.

Toko Fitur baru-baru ini diperkenalkan kemampuan untuk menambahkan fitur baru ke grup fitur yang ada. Skema grup fitur berkembang dari waktu ke waktu sebagai akibat dari persyaratan bisnis baru atau karena fitur baru telah diidentifikasi yang menghasilkan kinerja model yang lebih baik. Ilmuwan data dan insinyur ML perlu menambahkan fitur dengan mudah ke grup fitur yang ada. Kemampuan ini mengurangi overhead yang terkait dengan pembuatan dan pemeliharaan beberapa grup fitur dan oleh karena itu cocok untuk pengembangan model ML berulang. Pelatihan model dan inferensi dapat memanfaatkan fitur baru menggunakan grup fitur yang sama dengan membuat sedikit perubahan.

Dalam posting ini, kami mendemonstrasikan cara menambahkan fitur ke grup fitur menggunakan yang baru dirilis PerbaruiFeatureGroup API.

Ikhtisar solusi

Feature Store bertindak sebagai satu sumber kebenaran untuk data rekayasa fitur yang digunakan dalam pelatihan dan inferensi ML. Saat kami menyimpan fitur di Feature Store, kami menyimpannya di grup fitur.

Kami dapat mengaktifkan grup fitur untuk mode hanya offline, mode hanya online, atau mode online dan offline.

Toko online adalah penyimpanan data dengan latensi rendah dan selalu memiliki snapshot data terbaru. Toko offline memiliki serangkaian catatan sejarah yang bertahan di Layanan Penyimpanan Sederhana Amazon (Amazon S3). Feature Store secara otomatis membuat Lem AWS Katalog Data untuk toko offline, yang memungkinkan kami menjalankan kueri SQL terhadap data offline menggunakan Amazon Athena.

Diagram berikut mengilustrasikan proses pembuatan dan penyerapan fitur ke dalam Feature Store.

Alur kerja berisi langkah-langkah berikut ini:

  1. Tentukan grup fitur dan buat grup fitur di Feature Store.
  2. Serap data ke dalam grup fitur, yang langsung menulis ke toko online dan kemudian ke toko offline.
  3. Gunakan data penyimpanan offline yang disimpan di Amazon S3 untuk melatih satu atau beberapa model.
  4. Gunakan toko offline untuk inferensi batch.
  5. Gunakan toko online yang mendukung pembacaan latensi rendah untuk inferensi waktu nyata.
  6. Untuk memperbarui grup fitur untuk menambahkan fitur baru, kami menggunakan yang baru Amazon SageMaker UpdateFeatureGroup API. Ini juga memperbarui Katalog Data AWS Glue yang mendasarinya. Setelah skema diperbarui, kami dapat menyerap data ke dalam grup fitur yang diperbarui ini dan menggunakan toko offline dan online yang diperbarui untuk inferensi dan pelatihan model.

Dataset

Untuk mendemonstrasikan fungsi baru ini, kami menggunakan kumpulan data pelanggan yang dibuat secara sintetis. Dataset memiliki ID unik untuk pelanggan, jenis kelamin, status perkawinan, rentang usia, dan berapa lama sejak mereka aktif membeli.

sampel data pelanggan

Mari kita asumsikan skenario di mana bisnis mencoba memprediksi kecenderungan pelanggan membeli produk tertentu, dan ilmuwan data telah mengembangkan model untuk memprediksi hasil yang diinginkan ini. Mari kita asumsikan juga bahwa para ilmuwan data telah mengidentifikasi sinyal baru bagi pelanggan yang berpotensi meningkatkan kinerja model dan memprediksi hasilnya dengan lebih baik. Kami bekerja melalui kasus penggunaan ini untuk memahami cara memperbarui definisi grup fitur untuk menambahkan fitur baru, menyerap data ke dalam fitur baru ini, dan akhirnya menjelajahi toko fitur online dan offline untuk memverifikasi perubahan.

Prasyarat

Untuk penelusuran ini, Anda harus memiliki prasyarat berikut:

git clone https://github.com/aws-samples/amazon-sagemaker-feature-store-update-feature-group.git

Tambahkan fitur ke grup fitur

Dalam posting ini, kita berjalan melalui perbarui_fitur_grup.ipynb notebook, tempat kami membuat grup fitur, menyerap kumpulan data awal, memperbarui grup fitur untuk menambahkan fitur baru, dan menyerap kembali data yang menyertakan fitur baru. Pada akhirnya, kami memverifikasi toko online dan offline untuk pembaruan. Notebook yang berfungsi penuh dan data sampel dapat ditemukan di Repositori GitHub. Mari kita jelajahi beberapa bagian penting dari notebook di sini.

  1. Kami membuat grup fitur untuk menyimpan data pelanggan yang direkayasa fitur menggunakan FeatureGroup.create API SageMaker SDK.
    customers_feature_group = FeatureGroup(name=customers_feature_group_name, 
                                          sagemaker_session=sagemaker_session)
    
    customers_feature_group.create(s3_uri=f's3://{default_bucket}/{prefix}', 
                                   record_identifier_name='customer_id', 
                                   event_time_feature_name='event_time', 
                                   role_arn=role, 
                                   enable_online_store=True)
    

  1. Kami membuat Pandas DataFrame dengan data CSV awal. Kami menggunakan waktu saat ini sebagai stempel waktu untuk event_time fitur. Ini sesuai dengan waktu saat peristiwa terjadi, yang menyiratkan saat catatan ditambahkan atau diperbarui dalam grup fitur.
  2. Kami menyerap DataFrame ke dalam grup fitur menggunakan SageMaker SDK FeatureGroup.ingest API. Ini adalah kumpulan data kecil dan oleh karena itu dapat dimuat ke dalam Pandas DataFrame. Saat kami bekerja dengan data dalam jumlah besar dan jutaan baris, ada mekanisme skalabel lainnya untuk menyerap data ke Feature Store, seperti penyerapan batch dengan Apache Spark.
    customers_feature_group.ingest(data_frame=customers_df,
                                   max_workers=3,
                                   wait=True)

  1. Kami dapat memverifikasi bahwa data telah diserap ke dalam grup fitur dengan menjalankan kueri Athena di buku catatan atau menjalankan kueri di konsol Athena.
  2. Setelah kami memverifikasi bahwa toko fitur offline memiliki data awal, kami menambahkan fitur baru has_kids ke grup fitur menggunakan Boto3 perbarui_fitur_grup API
    sagemaker_runtime.update_feature_group(
                              FeatureGroupName=customers_feature_group_name,
                              FeatureAdditions=[
                                 {"FeatureName": "has_kids", "FeatureType": "Integral"}
                              ])

    Katalog Data diperbarui secara otomatis sebagai bagian dari panggilan API ini. API mendukung penambahan beberapa fitur sekaligus dengan menentukannya di FeatureAdditions kamus.

  1. Kami memverifikasi bahwa fitur telah ditambahkan dengan memeriksa definisi grup fitur yang diperbarui
    describe_feature_group_result = sagemaker_runtime.describe_feature_group(
                                               FeatureGroupName=customers_feature_group_name)
    pretty_printer.pprint(describe_feature_group_result)

    Grafik LastUpdateStatus dalam describe_feature_group Respons API awalnya menunjukkan status InProgress. Setelah operasi berhasil, LastUpdateStatus status berubah menjadi Successful. Jika karena alasan apa pun operasi mengalami kesalahan, lastUpdateStatus status menunjukkan sebagai Failed, dengan pesan kesalahan terperinci di FailureReason.
    Perbarui respons API Grup Fitur
    Ketika update_feature_group API dipanggil, bidang kontrol mencerminkan perubahan skema dengan segera, tetapi bidang data membutuhkan waktu hingga 5 menit untuk memperbarui skema grup fiturnya. Kami harus memastikan bahwa cukup waktu yang diberikan untuk operasi pembaruan sebelum melanjutkan ke penyerapan data.

  1. Kami menyiapkan data untuk has_kids fitur dengan menghasilkan 1 dan 0 acak untuk menunjukkan apakah pelanggan memiliki anak atau tidak.
    customers_df['has_kids'] =np.random.randint(0, 2, customers_df.shape[0])

  1. Kami mencerna DataFrame yang memiliki kolom yang baru ditambahkan ke dalam grup fitur menggunakan SageMaker SDK FeatureGroup.ingest API
    customers_feature_group.ingest(data_frame=customers_df,
                                   max_workers=3,
                                   wait=True)

  1. Selanjutnya, kami memverifikasi catatan fitur di toko online untuk satu pelanggan menggunakan Boto3 get_record API.
    get_record_result = featurestore_runtime.get_record(
                                              FeatureGroupName=customers_feature_group_name,
                                              RecordIdentifierValueAsString=customer_id)
    pretty_printer.pprint(get_record_result)

    Dapatkan respons Record API

  2. Mari kita menanyakan catatan pelanggan yang sama di konsol Athena untuk memverifikasi penyimpanan data offline. Data ditambahkan ke toko offline untuk mempertahankan penulisan dan pembaruan historis. Oleh karena itu, kami melihat dua catatan di sini: catatan yang lebih baru yang memiliki fitur yang diperbarui ke nilai 1, dan catatan yang lebih lama yang tidak memiliki fitur ini dan oleh karena itu menunjukkan nilai sebagai kosong. Persistensi toko offline terjadi secara berkelompok dalam waktu 15 menit, jadi langkah ini bisa memakan waktu.

Permintaan Athena

Sekarang setelah fitur ini ditambahkan ke grup fitur kami, kami dapat mengekstrak fitur baru ini ke dalam set data pelatihan dan model pelatihan ulang kami. Tujuan dari posting ini adalah untuk menyoroti kemudahan memodifikasi grup fitur, menyerap data ke dalam fitur baru, dan kemudian menggunakan data yang diperbarui dalam grup fitur untuk pelatihan model dan inferensi.

Membersihkan

Jangan lupa untuk membersihkan sumber daya yang dibuat sebagai bagian dari posting ini untuk menghindari timbulnya biaya berkelanjutan.

  1. Hapus objek S3 di toko offline:
    s3_config = describe_feature_group_result['OfflineStoreConfig']['S3StorageConfig']
    s3_uri = s3_config['ResolvedOutputS3Uri']
    full_prefix = '/'.join(s3_uri.split('/')[3:])
    bucket = s3.Bucket(default_bucket)
    offline_objects = bucket.objects.filter(Prefix=full_prefix)
    offline_objects.delete()

  1. Hapus grup fitur:
    customers_feature_group.delete()

  1. Hentikan instans notebook SageMaker Jupyter. Untuk petunjuk, lihat Membersihkan.

Kesimpulan

Feature Store adalah repositori yang dibuat khusus untuk menyimpan, berbagi, dan mengelola fitur untuk model ML. Mampu menambahkan fitur ke grup fitur yang ada menyederhanakan pengembangan model berulang dan mengurangi tantangan yang kami lihat dalam membuat dan memelihara beberapa grup fitur.

Dalam posting ini, kami menunjukkan cara menambahkan fitur ke grup fitur yang ada melalui SageMaker yang baru dirilis UpdateFeatureGroup API. Langkah-langkah yang ditunjukkan dalam posting ini tersedia sebagai notebook Jupyter di Repositori GitHub. Cobalah dan beri tahu kami tanggapan Anda di komentar.

Bacaan lebih lanjut

Jika Anda tertarik untuk menjelajahi skenario lengkap yang disebutkan sebelumnya dalam posting ini tentang memprediksi pelanggan memesan produk tertentu, lihat yang berikut ini buku catatan, yang memodifikasi grup fitur, menyerap data, dan melatih model XGBoost dengan data dari toko offline yang diperbarui. Buku catatan ini adalah bagian dari bengkel yang komprehensif dikembangkan untuk mendemonstrasikan fungsionalitas Feature Store.

Referensi

Informasi lebih lanjut tersedia di sumber berikut:


Tentang penulis

Sederhanakan pengembangan model pembelajaran mesin berulang dengan menambahkan fitur ke grup fitur yang ada di Amazon SageMaker Feature Store PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Chaitra Mathur adalah Arsitek Solusi Utama di AWS. Dia memandu pelanggan dan mitra dalam membangun solusi yang sangat skalabel, andal, aman, dan hemat biaya di AWS. Dia bersemangat tentang Pembelajaran Mesin dan membantu pelanggan menerjemahkan kebutuhan ML mereka menjadi solusi menggunakan layanan AWS AI/ML. Dia memegang 5 sertifikasi termasuk sertifikasi ML Specialty. Di waktu luangnya, ia senang membaca, yoga, dan menghabiskan waktu bersama putri-putrinya.

Sederhanakan pengembangan model pembelajaran mesin berulang dengan menambahkan fitur ke grup fitur yang ada di Amazon SageMaker Feature Store PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Tandai Roy adalah Principal Machine Learning Architect untuk AWS, membantu pelanggan merancang dan membangun solusi AI / ML. Pekerjaan Mark mencakup berbagai kasus penggunaan ML, dengan minat utama pada computer vision, deep learning, dan penskalaan ML di seluruh perusahaan. Dia telah membantu perusahaan di banyak industri, termasuk asuransi, layanan keuangan, media dan hiburan, perawatan kesehatan, utilitas, dan manufaktur. Mark memegang enam sertifikasi AWS, termasuk Sertifikasi Spesialisasi ML. Sebelum bergabung dengan AWS, Mark adalah seorang arsitek, pengembang, dan pemimpin teknologi selama lebih dari 25 tahun, termasuk 19 tahun dalam layanan keuangan.

Sederhanakan pengembangan model pembelajaran mesin berulang dengan menambahkan fitur ke grup fitur yang ada di Amazon SageMaker Feature Store PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Char Sarien adalah Manajer Produk Senior untuk Toko Fitur Amazon SageMaker. Sebelum AWS, dia memimpin strategi pertumbuhan dan monetisasi untuk layanan SaaS di VMware. Dia adalah penggemar data dan pembelajaran mesin dan memiliki lebih dari satu dekade pengalaman yang mencakup manajemen produk, rekayasa data, dan analitik tingkat lanjut. Dia memiliki gelar sarjana di bidang Teknologi Informasi dari Institut Teknologi Nasional, India dan gelar MBA dari University of Michigan, Ross School of Business.

Sederhanakan pengembangan model pembelajaran mesin berulang dengan menambahkan fitur ke grup fitur yang ada di Amazon SageMaker Feature Store PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Frank McQuillan adalah Manajer Produk Utama untuk Toko Fitur Amazon SageMaker.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS