Topik ini menjelaskan cara menggunakan kit pengembangan perangkat lunak (SDK) FeatureStore untuk mengelola fitur dalam sistem rekomendasi tanpa menggunakan produk Alibaba Cloud lainnya.
Informasi latar belakang
Sistem rekomendasi menyarankan konten atau produk yang dipersonalisasi kepada pengguna berdasarkan minat dan preferensi mereka. Langkah penting dalam sistem rekomendasi adalah mengekstraksi dan mengonfigurasi fitur untuk pengguna dan item. Dokumen ini menunjukkan cara membangun sistem rekomendasi menggunakan FeatureStore serta mengelola data fitur dengan berbagai versi SDK FeatureStore.
Untuk informasi selengkapnya tentang FeatureStore, lihat Ikhtisar FeatureStore.
Jika Anda memiliki pertanyaan selama konfigurasi atau penggunaan, Anda dapat bergabung dengan grup DingTalk kami (ID: 34415007523) untuk mendapatkan dukungan teknis.
Prasyarat
Sebelum memulai, lengkapi persiapan berikut.
Produk Dependen | Operasi spesifik |
Platform for AI (PAI) |
|
MaxCompute |
|
FeatureDB |
|
DataWorks |
|
1. Persiapkan data
Menyinkronkan tabel data
Dalam skenario rekomendasi khas, Anda perlu menyiapkan tiga tabel data: tabel fitur pengguna, tabel fitur item, dan tabel label.
Untuk tujuan latihan, kami telah menyiapkan tabel sampel pengguna, item, dan label di proyek MaxCompute pai_online_project. Tabel pengguna dan item masing-masing berisi sekitar 100.000 entri data per partisi dan menempati sekitar 70 MB penyimpanan di MaxCompute. Tabel label berisi sekitar 450.000 entri data per partisi dan menempati sekitar 5 MB penyimpanan di MaxCompute.
Jalankan perintah SQL di DataWorks untuk menyinkronkan tabel pengguna, item, dan label dari proyek pai_online_project ke proyek MaxCompute Anda sendiri. Ikuti langkah-langkah berikut:
Masuk ke Konsol DataWorks.
Di panel navigasi sebelah kiri, klik Data Development and O&M > Data Development.
Pilih ruang kerja DataWorks yang telah Anda buat dan klik Go to Data Studio.
Arahkan kursor ke Create, lalu pilih Create Node > MaxCompute > MaxCompute SQL. Di kotak dialog yang muncul, konfigurasikan parameter node.
Parameter
Nilai yang disarankan
Type
MaxCompute SQL
Path
Business Flow/Workflow/MaxCompute
Name
Masukkan nama kustom.
Klik OK.
Di area node baru, jalankan perintah SQL berikut untuk menyinkronkan tabel pengguna, item, dan label dari proyek pai_online_project ke proyek MaxCompute Anda sendiri. Untuk Resource Group, pilih grup sumber daya eksklusif yang telah Anda buat.
Menyinkronkan tabel pengguna: rec_sln_demo_user_table_preprocess_all_feature_v1 (Klik untuk detail)
Menyinkronkan tabel item: rec_sln_demo_item_table_preprocess_all_feature_v1 (Klik untuk detail)
Menyinkronkan tabel label: rec_sln_demo_label_table (Klik untuk detail)
Setelah menyelesaikan langkah-langkah ini, Anda dapat melihat tabel pengguna rec_sln_demo_user_table_preprocess_all_feature_v1, tabel item rec_sln_demo_item_table_preprocess_all_feature_v1, dan tabel label rec_sln_demo_label_table di ruang kerja Anda. Ketiga tabel ini digunakan sebagai contoh dalam operasi berikutnya.
Konfigurasikan sumber data
FeatureStore biasanya memerlukan dua sumber data: offline store (MaxCompute) dan online store (FeatureDB, Hologres, atau TableStore). Topik ini menggunakan MaxCompute dan FeatureDB sebagai contoh.
Masuk ke Konsol PAI. Di panel navigasi sebelah kiri, klik Data Preparation > FeatureStore.
Pilih ruang kerja dan klik Enter FeatureStore.
Konfigurasikan sumber data MaxCompute.
Di tab Store, klik Create Store. Di kotak dialog yang muncul, konfigurasikan parameter untuk sumber data MaxCompute.
Parameter
Nilai yang disarankan
Type
MaxCompute
Name
Masukkan nama kustom.
MaxCompute Project Name
Pilih proyek MaxCompute yang telah Anda buat.
Salin pernyataan otorisasi. Lalu, klik Buka Sekarang untuk menuju ke DataWorks. Jalankan pernyataan tersebut di DataWorks untuk memberikan izin yang diperlukan.
CatatanOperasi otorisasi memerlukan akun Anda memiliki izin admin. Untuk informasi selengkapnya, lihat Kelola izin pengguna menggunakan perintah atau Kelola izin pengguna di konsol.
Setelah konfigurasi selesai, klik Submit.
Konfigurasikan sumber data FeatureDB.
Jika Anda telah membuat sumber data FeatureDB, Anda dapat melewati langkah ini.
Di tab Store, klik Create Store. Di kotak dialog yang muncul, konfigurasikan parameter untuk sumber data FeatureDB.
Parameter
Nilai yang disarankan
Type
FeatureDB (Jika ini pertama kali Anda menggunakannya, ikuti petunjuk di layar untuk mengaktifkan FeatureDB)
Name
Nama kustom tidak didukung. Nilai default-nya adalah feature_db.
Username
Tetapkan username.
Password
Tetapkan password.
Koneksi VPC Berkecepatan Tinggi (Opsional)
Setelah konfigurasi berhasil, Anda dapat menggunakan SDK FeatureStore di VPC untuk langsung mengakses FeatureDB melalui koneksi PrivateLink. Hal ini meningkatkan performa baca-tulis data dan mengurangi latensi akses.
VPC
Pilih VPC tempat layanan FeatureStore online Anda berada.
Zona dan vSwitch
Pilih zona dan vSwitch. Pastikan memilih vSwitch di zona tempat mesin layanan online Anda berada. Kami merekomendasikan memilih vSwitch di minimal dua zona untuk memastikan ketersediaan tinggi dan stabilitas bisnis Anda.
Setelah konfigurasi selesai, klik Submit.
2. Buat dan daftarkan proyek FeatureStore
Anda dapat membuat dan mendaftarkan proyek FeatureStore menggunakan konsol atau SDK. Karena SDK diperlukan untuk operasi selanjutnya, seperti mengekspor set pelatihan dan menyinkronkan data, Anda harus menginstal SDK Python FeatureStore meskipun menggunakan konsol untuk pengaturan awal.
Metode 1: Gunakan konsol
Buat proyek FeatureStore.
Masuk ke Konsol PAI. Di panel navigasi sebelah kiri, klik Data Preparation > FeatureStore.
Pilih ruang kerja dan klik Enter FeatureStore.
Klik Create Project. Di kotak dialog yang muncul, konfigurasikan parameter proyek.
Parameter
Nilai yang disarankan
Name
Masukkan nama kustom. Topik ini menggunakan fs_demo sebagai contoh.
Description
Masukkan deskripsi kustom.
Offline Store
Pilih sumber data MaxCompute yang telah Anda buat.
Online Store
Pilih sumber data FeatureDB yang telah Anda buat.
Klik Submit untuk membuat proyek FeatureStore.
Buat entitas fitur.
Pada halaman FeatureStore Projects, klik nama proyek untuk membuka halaman detailnya.
Di tab Feature Entity, klik Create Feature Entity. Di kotak dialog yang muncul, konfigurasikan parameter untuk entitas fitur pengguna.
Parameter
Nilai yang disarankan
Feature Entity Name
Masukkan nama kustom. Topik ini menggunakan user sebagai contoh.
Join Id
user_id
Klik Submit.
Klik Create Feature Entity. Di kotak dialog yang muncul, konfigurasikan parameter untuk entitas fitur item.
Parameter
Nilai yang disarankan
Feature Entity Name
Masukkan nama kustom. Topik ini menggunakan item sebagai contoh.
Join Id
item_id
Klik Submit untuk membuat entitas fitur.
Buat tampilan fitur.
Di tab Feature View halaman detail proyek, klik Create Feature View. Di kotak dialog yang muncul, konfigurasikan parameter untuk tampilan fitur pengguna.
Parameter
Nilai yang disarankan
View Name
Masukkan nama kustom. Topik ini menggunakan user_table_preprocess_all_feature_v1 sebagai contoh.
Type
Offline
Write Mode
Use Offline Table
Store
Pilih sumber data MaxCompute yang telah Anda buat.
Feature Table
Pilih tabel pengguna yang telah Anda siapkan: rec_sln_demo_user_table_preprocess_all_feature_v1.
Feature Field
Pilih kunci utama user_id.
Synchronize Online Feature Table
Yes
Feature Entity
user
Feature Lifecycle
Pertahankan nilai default.
Klik Submit.
Klik Create Feature View. Di kotak dialog yang muncul, konfigurasikan tampilan fitur item.
Parameter
Nilai yang disarankan
View Name
Masukkan nama kustom. Topik ini menggunakan item_table_preprocess_all_feature_v1 sebagai contoh.
Type
Offline
Write Mode
Use Offline Table
Store
Pilih sumber data MaxCompute yang telah Anda buat.
Feature Table
Pilih tabel item yang telah Anda siapkan: rec_sln_demo_item_table_preprocess_all_feature_v1.
Feature Field
Pilih kunci utama item_id.
Synchronize Online Feature Table
Yes
Feature Entity
item
Feature Lifecycle
Pertahankan nilai default.
Setelah konfigurasi selesai, klik Submit untuk membuat tampilan fitur.
Buat tabel label.
Di tab Label Table halaman detail proyek, klik Create Label Table. Di kotak dialog yang muncul, konfigurasikan informasi tabel label.
Parameter
Nilai yang disarankan
Store
Pilih sumber data MaxCompute yang telah Anda buat.
Table Name
Pilih tabel label yang telah Anda siapkan: rec_sln_demo_label_table.
Klik Submit.
Buat fitur model.
Di tab Model Features halaman detail proyek, klik Create Model Feature. Di kotak dialog yang muncul, konfigurasikan parameter fitur model.
Parameter
Nilai yang disarankan
Model Feature Name
Masukkan nama kustom. Topik ini menggunakan fs_rank_v1 sebagai contoh.
Select Feature
Pilih tampilan fitur pengguna dan item yang telah Anda buat.
Label Table Name
Pilih tabel label yang telah Anda buat: rec_sln_demo_label_table.
Klik Submit untuk membuat fitur model.
Di halaman daftar fitur model, klik Details di sebelah kanan model Anda.
Di kotak dialog Model Feature Details yang muncul, di tab Basic Information, Anda dapat melihat Export Table Name, yaitu fs_demo_fs_rank_v1_trainning_set. Tabel ini digunakan untuk produksi fitur dan pelatihan model selanjutnya.
Instal SDK Python FeatureStore. Untuk informasi selengkapnya, lihat Gunakan FeatureStore untuk mengelola fitur dalam sistem rekomendasi.
Metode 2: Gunakan SDK Python FeatureStore
Masuk ke Konsol DataWorks.
Di panel navigasi sebelah kiri, klik Resource Groups.
Di tab Exclusive Resource Groups, temukan grup sumber daya yang Purpose adalah Data Scheduling. Klik ikon
di sebelah sumber daya jadwalnya dan pilih O&M Assistant.Klik Create Command. Di kotak dialog yang muncul, konfigurasikan parameter perintah.
Parameter
Nilai yang disarankan
Nama Perintah
Masukkan nama kustom. Topik ini menggunakan install sebagai contoh.
Tipe Perintah
Manual Input (pip Command Cannot Be Used To Install Third-party Packages)
Konten Perintah
/home/tops/bin/pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple https://feature-store-py.oss-cn-beijing.aliyuncs.com/package/feature_store_py-2.0.2-py3-none-any.whlTimeout
Tetapkan waktu kustom.
Klik Create untuk membuat perintah.
Klik Run Command. Di kotak dialog yang muncul, klik Run.
Anda dapat mengklik Refresh untuk melihat status eksekusi terbaru. Saat status berubah menjadi Success, instalasi selesai.
Untuk langkah-langkah detail menggunakan SDK, lihat DSW Gallery.
3. Jalankan node sinkronisasi data
Sebelum menerbitkan layanan Anda, Anda perlu menjalankan node sinkronisasi data secara berkala untuk menyinkronkan data dari offline store ke online store. Layanan online kemudian membaca data dari online store secara real time. Contoh ini menunjukkan cara mengonfigurasi tugas sinkronisasi berulang untuk tabel fitur pengguna dan item.
Masuk ke Konsol DataWorks.
Di panel navigasi sebelah kiri, klik Data Development and O&M > Data Development.
Pilih ruang kerja DataWorks yang telah Anda buat dan klik Enter Data Development.
Konfigurasikan sinkronisasi berulang untuk tabel pengguna.
Arahkan kursor ke Create, lalu pilih New Node > MaxCompute > PyODPS 3.
Salin konten berikut ke skrip untuk menyelesaikan sinkronisasi berulang user_table_preprocess_all_feature_v1.
from feature_store_py.fs_client import FeatureStoreClient import datetime from feature_store_py.fs_datasource import MaxComputeDataSource import sys from odps.accounts import StsAccount cur_day = args['dt'] print('cur_day = ', cur_day) access_key_id = o.account.access_id access_key_secret = o.account.secret_access_key sts_token = None endpoint = 'paifeaturestore-vpc.cn-beijing.aliyuncs.com' if isinstance(o.account, StsAccount): sts_token = o.account.sts_token fs = FeatureStoreClient(access_key_id=access_key_id, access_key_secret=access_key_secret, security_token=sts_token, endpoint=endpoint) cur_project_name = 'fs_demo' project = fs.get_project(cur_project_name) feature_view_name = 'user_table_preprocess_all_feature_v1' batch_feature_view = project.get_feature_view(feature_view_name) task = batch_feature_view.publish_table(partitions={'ds':cur_day}, mode='Overwrite', offline_to_online=True) task.wait() task.print_summary()Di panel navigasi sebelah kanan, klik Scheduling Configuration. Di kotak dialog yang muncul, konfigurasikan parameter penjadwalan.
Parameter
Suggested value
Scheduling Parameters
Parameter Name
dt
Parameter Value
$[yyyymmdd-1]
Resource Properties
Scheduling Resource Group
Pilih kelompok sumber daya eksklusif yang telah Anda buat.
Scheduling Dependencies
Pilih tabel pengguna yang telah Anda buat.
Setelah mengonfigurasi dan menguji node, simpan dan kirimkan konfigurasi node.
Lakukan operasi pengisian ulang data. Untuk informasi selengkapnya, lihat Sinkronkan tabel data.
Konfigurasikan sinkronisasi berulang untuk tabel item.
Arahkan kursor ke Create, lalu pilih New Node > MaxCompute > PyODPS 3. Di kotak dialog yang muncul, konfigurasikan parameter node.
Klik Confirm.
Salin konten berikut ke skrip.
Sinkronisasi rutin untuk item_table_preprocess_all_feature_v1 (Klik untuk detail)
Di panel navigasi sebelah kanan, klik Scheduling Configuration. Di kotak dialog yang muncul, konfigurasikan parameter penjadwalan.
Parameter
Suggested value
Scheduling Parameters
Parameter Name
dt
Parameter Value
$[yyyymmdd-1]
Resource Properties
Scheduling Resource Group
Pilih kelompok sumber daya eksklusif yang telah Anda buat.
Scheduling Dependencies
Pilih item table yang telah Anda buat.
Setelah mengonfigurasi dan menguji node, simpan dan kirimkan konfigurasi node.
Lakukan operasi pengisian ulang data. Untuk informasi selengkapnya, lihat Sinkronkan tabel data.
Setelah sinkronisasi selesai, Anda dapat melihat data fitur terbaru yang telah disinkronkan di Hologres.
4. Ekspor skrip set pelatihan
Masuk ke Konsol DataWorks.
Di panel navigasi sebelah kiri, klik Data Development and O&M > Data Development.
Pilih ruang kerja DataWorks yang telah Anda buat dan klik Enter Data Development.
Arahkan kursor ke Create, lalu pilih New Node > MaxCompute > PyODPS 3. Di kotak dialog yang muncul, konfigurasikan parameter node.
Parameter
Nilai yang disarankan
Engine Instance
Pilih mesin MaxCompute yang telah Anda buat.
Node Type
PyODPS 3
Path
Business Flow/Workflow/MaxCompute
Name
Masukkan nama kustom.
Klik Confirm.
Salin konten berikut ke skrip.
from feature_store_py.fs_client import FeatureStoreClient from feature_store_py.fs_project import FeatureStoreProject from feature_store_py.fs_datasource import LabelInput, MaxComputeDataSource, TrainingSetOutput from feature_store_py.fs_features import FeatureSelector from feature_store_py.fs_config import LabelInputConfig, PartitionConfig, FeatureViewConfig from feature_store_py.fs_config import TrainSetOutputConfig, EASDeployConfig import datetime import sys from odps.accounts import StsAccount cur_day = args['dt'] print('cur_day = ', cur_day) offset = datetime.timedelta(days=-1) pre_day = (datetime.datetime.strptime(cur_day, "%Y%m%d") + offset).strftime('%Y%m%d') print('pre_day = ', pre_day) access_key_id = o.account.access_id access_key_secret = o.account.secret_access_key sts_token = None endpoint = 'paifeaturestore-vpc.cn-beijing.aliyuncs.com' if isinstance(o.account, StsAccount): sts_token = o.account.sts_token fs = FeatureStoreClient(access_key_id=access_key_id, access_key_secret=access_key_secret, security_token=sts_token, endpoint=endpoint) cur_project_name = 'fs_demo' project = fs.get_project(cur_project_name) label_partitions = PartitionConfig(name = 'ds', value = cur_day) label_input_config = LabelInputConfig(partition_config=label_partitions) user_partitions = PartitionConfig(name = 'ds', value = pre_day) feature_view_user_config = FeatureViewConfig(name = 'user_table_preprocess_all_feature_v1', partition_config=user_partitions) item_partitions = PartitionConfig(name = 'ds', value = pre_day) feature_view_item_config = FeatureViewConfig(name = 'item_table_preprocess_all_feature_v1', partition_config=item_partitions) feature_view_config_list = [feature_view_user_config, feature_view_item_config] train_set_partitions = PartitionConfig(name = 'ds', value = cur_day) train_set_output_config = TrainSetOutputConfig(partition_config=train_set_partitions) model_name = 'fs_rank_v1' cur_model = project.get_model(model_name) task = cur_model.export_train_set(label_input_config, feature_view_config_list, train_set_output_config) task.wait() print("task_summary = ", task.task_summary)Di panel navigasi sebelah kanan, klik Scheduling Configuration. Di kotak dialog yang muncul, konfigurasikan parameter penjadwalan.
Parameter
Nilai yang disarankan
Scheduling Parameters
Parameter Name
dt
Parameter Value
$[yyyymmdd-1]
Resource Properties
Scheduling Resource Group
Pilih grup sumber daya eksklusif yang telah Anda buat.
Scheduling Dependencies
Pilih tabel pengguna dan item yang telah Anda buat.
Setelah mengonfigurasi dan menguji node, simpan dan kirimkan konfigurasi node.
Lakukan operasi pengisian ulang data. Untuk informasi selengkapnya, lihat Sinkronkan tabel data.
5. Instal dan gunakan SDK
SDK Python
Untuk informasi selengkapnya, lihat Gunakan SDK Python FeatureStore untuk membangun sistem rekomendasi.
SDK Go
SDK Go FeatureStore bersifat open source. Untuk informasi selengkapnya, lihat aliyun-pai-featurestore-go-sdk.
Instalasi
Jalankan perintah berikut untuk menginstal SDK Go FeatureStore.
go get github.com/aliyun/aliyun-pai-featurestore-go-sdk/v2Penggunaan
Jalankan perintah berikut untuk menginisialisasi klien.
accessId := os.Getenv("AccessId") accessKey := os.Getenv("AccessKey") regionId := "cn-hangzhou" projectName := "fs_test_ots" client, err := NewFeatureStoreClient(regionId, accessId, accessKey, projectName)CatatanSDK terhubung langsung ke sumber data online. Oleh karena itu, klien harus dijalankan di lingkungan VPC. Misalnya, Hologres memerlukan koneksi yang berasal dari VPC tertentu.
Ambil data fitur dari tampilan fitur.
// get project by name project, err := client.GetProject("fs_test_ots") if err != nil { // t.Fatal(err) } // get featureview by name user_feature_view := project.GetFeatureView("user_fea") if user_feature_view == nil { // t.Fatal("feature view not exist") } // get online features features, err := user_feature_view.GetOnlineFeatures([]interface{}{"100043186", "100060369"}, []string{"*"}, nil)Di sini,
[]string{"*"}berarti mengambil semua fitur dalam tampilan fitur. Anda juga dapat menentukan nama fitur yang ingin diambil.Berikut adalah contoh data yang dikembalikan:
[ { "city":"Hefei", "follow_cnt":1, "gender":"male", "user_id":"100043186" }, { "city":"", "follow_cnt":5, "gender":"male", "user_id":"100060369" } ]Ambil data fitur dari fitur model.
Fitur model dapat dikaitkan dengan beberapa entitas fitur. Anda dapat memberikan beberapa join ID untuk mengambil fitur yang sesuai secara bersamaan.
Contoh ini menggunakan tiga join ID:
join_id,user_id, danitem_id. Saat mengambil fitur, Anda harus memberikan nilai untuk setiap join ID.// get project by name project, err := client.GetProject("fs_test_ots") if err != nil { // t.Fatal(err) } // get ModelFeature by name model_feature := project.GetModelFeature("rank") if model_feature == nil { // t.Fatal("model feature not exist") } // get online features features, err := model_feature.GetOnlineFeatures(map[string][]interface{}{"user_id": {"100000676", "100004208"}, "item_id":{"238038872", "264025480"}} )Berikut adalah contoh data yang dikembalikan:
[ { "age":26, "author":100015828, "category":"14", "city":"Shenyang", "duration":63, "gender":"male", "item_id":"238038872", "user_id":"100000676" }, { "age":23, "author":100015828, "category":"15", "city":"Xi'an", "duration":22, "gender":"male", "item_id":"264025480", "user_id":"100004208" } ]Anda juga dapat menentukan entitas fitur untuk mengambil semua fitur yang sesuai.
Berikut adalah contoh data yang dikembalikan:
[ { "age":26, "city":"Shenyang", "gender":"male", "user_id":"100000676" }, { "age":23, "city":"Xi'an", "gender":"male", "user_id":"100004208" } ]
SDK Java
SDK Java FeatureStore bersifat open source. Untuk informasi selengkapnya, lihat aliyun-pai-featurestore-java-sdk.
Bagian ini menggunakan sumber data Hologres sebagai contoh.
Jalankan kode berikut untuk memuat variabel lingkungan dan menginisialisasi layanan.
public static String accessId = ""; public static String accessKey = ""; // Configure the host based on the region public static String host = ""; // Get the accessId and accessKey from the configured local environment variables static { accessId = System.getenv("ACCESS_KEY_ID"); accessKey = System.getenv("ACCESS_KEY_SECRET"); }Buat kelas konfigurasi yang mengonfigurasi
regionId,accessId,accessKey, dan nama proyek.Configuration cf = new Configuration("cn-hangzhou",Constants.accessId,Constants.accessKey,"ele28"); cf.setDomain(Constants.host);// Note: The default environment is a VPC environmentInisialisasi klien.
ApiClient apiClient = new ApiClient(cf); // FS client FeatureStoreClient featureStoreClient = new FeatureStoreClient(apiClient);Ambil proyek. Contoh ini menggunakan proyek bernama ele28.
Project project=featureStoreClient.getProject("ele28"); if(project==null){ throw new RuntimeException("Project not found"); }Ambil tampilan fitur proyek. Contoh ini menggunakan tampilan fitur bernama mc_test.
FeatureView featureView=project.getFeatureView("mc_test"); if (featureView == null) { throw new RuntimeException("FeatureView not found"); }Ambil data fitur online berdasarkan tampilan fitur.
Map<String,String> m1=new HashMap<>(); m1.put("gender","gender1"); // Create an alias user_id='100027781'(FS_INT64) age='28'(FS_INT64) city='null'(FS_STRING) item_cnt='0'(FS_INT64) follow_cnt='0'(FS_INT64) follower_cnt='2'(FS_INT64) register_time='1697641608'(FS_INT64) tags='0'(FS_STRING) gender1='female'(FS_STRING) ---------------Untuk mengambil fitur online,
String[]{"*"}mengambil semua properti. Anda juga dapat menentukan properti tertentu untuk hanya mengambil sebagian informasi.FeatureResult featureResult1=featureView.getOnlineFeatures(new String[]{"100017768","100027781","100072534"},new String[]{"*"},m1);Keluarkan informasi fitur.
while(featureResult1.next()){ System.out.println("---------------"); // Feature name for(String m:featureResult1.getFeatureFields()){ System.out.print(String.format("%s=%s(%s) ",m,featureResult1.getObject(m),featureResult1.getType(m))); } System.out.println("---------------"); }Data berikut dikembalikan.
--------------- user_id='100017768'(FS_INT64) age='28'(FS_INT64) city='Dongguan'(FS_STRING) item_cnt='1'(FS_INT64) follow_cnt='1'(FS_INT64) follower_cnt='0'(FS_INT64) register_time='1697202320'(FS_INT64) tags='1,2'(FS_STRING) gender1='female'(FS_STRING) ---------------Ambil model.
Model model=project.getModelFeature("model_t1"); if(model==null){ throw new RuntimeException("Model not found"); }Ambil data dari fitur model.
Fitur model ini menggunakan dua join ID: user_id dan item_id. Jumlah nilai yang Anda berikan harus sesuai dengan jumlah join ID. Contoh ini memberikan satu nilai untuk setiap join ID.
Map<String, List<String>> m2=new HashMap<>(); m2.put("user_id",Arrays.asList("101683057")); m2.put("item_id",Arrays.asList("203665415"));Ambil semua data fitur yang terkait dengan entitas fitur pengguna dari fitur model.
FeatureResult featureResult2 = model.getOnlineFeaturesWithEntity(m2,"user");Data berikut dikembalikan.
--------------- user_id='101683057' age='28' city='Shenzhen' follower_cnt='234' follow_cnt='0' gender='male' item_cnt='0' register_time='1696407642' tags='2' item_id='203665415' author='132920407' category='14' click_count='0' duration='18.0' praise_count='10' pub_time='1698218997' title='#Idiom Story' ---------------
SDK Cpp
SDK C++ FeatureStore saat ini diintegrasikan ke dalam EasyRec Processor. SDK ini dioptimalkan khusus untuk ekstraksi fitur, manajemen cache, dan operasi baca guna menyediakan solusi berkinerja tinggi dan latensi rendah untuk skenario rekomendasi berskala besar.
Penggunaan memori: Saat menangani data fitur yang kompleks dan berskala besar, konsumsi memori berkurang secara signifikan. Penghematan memori lebih besar di bawah beban fitur tinggi.
Waktu tarik fitur: Alih-alih menarik fitur dari online store (seperti FeatureDB dan Hologres), SDK menariknya langsung dari MaxCompute ke cache Elastic Algorithm Service (EAS). Hal ini memperpendek waktu pemuatan fitur secara signifikan. Selain itu, MaxCompute menyediakan stabilitas dan ekstensibilitas yang lebih baik, sehingga mengurangi beban pada online store selama operasi memperluas kapasitas.
Waktu penilaian model: Menggunakan SDK ini meningkatkan metrik performa TP100 untuk penilaian model, menstabilkan waktu respons, dan mengurangi permintaan timeout secara signifikan. Peningkatan ini meningkatkan keandalan dan pengalaman pengguna layanan rekomendasi secara keseluruhan.
Referensi
FeatureStore juga dapat digunakan dengan produk cloud lainnya untuk membangun sistem rekomendasi. Untuk informasi selengkapnya, lihat Gunakan FeatureStore untuk mengelola fitur dalam sistem rekomendasi.