Topik ini menjelaskan cara menggunakan dataset publik untuk memulai penggunaan PAI-Rec secara cepat. Anda akan mengonfigurasi fitur-fitur utama algoritma rekomendasi kustom, seperti rekayasa fitur, recall, dan peringkat detail halus, lalu menghasilkan serta menerapkan kode ke alur kerja yang sesuai di DataWorks.
Prasyarat
Sebelum memulai, lengkapi langkah-langkah berikut:
Aktifkan PAI. Untuk detailnya, lihat Aktifkan PAI dan buat ruang kerja default.
Buat Virtual Private Cloud (VPC) dan vSwitch. Untuk detailnya, lihat Buat VPC dengan Blok CIDR IPv4.
Aktifkan PAI-FeatureStore. Untuk detailnya, lihat bagian Prasyarat di Buat sumber data. Aktivasi Hologres tidak diperlukan. Untuk sumber data, pilih FeatureDB. Untuk detailnya, lihat Buat sumber data online: FeatureDB.
Aktifkan MaxCompute dan buat proyek MaxCompute bernama project_mc. Untuk detailnya, lihat Aktifkan MaxCompute dan Buat proyek MaxCompute.
Buat bucket Object Storage Service (OSS). Untuk detailnya, lihat Buat bucket.
Buat ruang kerja DataWorks. Untuk detailnya, lihat Buat ruang kerja.
Beli kelompok sumber daya Serverless untuk DataWorks. Untuk detailnya, lihat Gunakan kelompok sumber daya Serverless. Kelompok sumber daya ini menyinkronkan data untuk PAI-FeatureStore dan menjalankan perintah eascmd guna membuat serta memperbarui layanan PAI-EAS.
Konfigurasi sumber data DataWorks:
Buat dan bind sumber data OSS. Untuk detailnya, lihat Manajemen Sumber Data.
Buat dan bind sumber data MaxCompute. Untuk detailnya, lihat Bind mesin komputasi MaxCompute.
Buat proyek FeatureStore dan entitas fitur. Lewati langkah ini jika Anda menggunakan kelompok sumber daya Serverless. Jika Anda menggunakan kelompok sumber daya khusus untuk DataWorks, Anda harus menginstal SDK Python FeatureStore pada kelompok sumber daya tersebut. Untuk detailnya, lihat Langkah 2: Buat dan daftarkan FeatureStore dan Instal SDK Python FeatureStore.
Aktifkan Realtime Compute for Apache Flink. Untuk detailnya, lihat Aktifkan Realtime Compute for Apache Flink. Catatan: Atur tipe penyimpanan ke bucket OSS, bukan Fully Managed Storage. Pastikan bucket OSS untuk Flink sama dengan yang dikonfigurasi di PAI-Rec. Flink mencatat data perilaku pengguna real-time dan menghitung fitur pengguna real-time.
Jika nanti Anda memilih menggunakan EasyRec (framework TensorFlow), pelatihan berjalan secara default di MaxCompute.
Jika nanti Anda memilih menggunakan TorchEasyRec (framework PyTorch), pelatihan berjalan secara default di PAI-DLC. Untuk mengunduh data MaxCompute di PAI-DLC, Anda harus mengaktifkan Layanan Transmisi Data (lihat Beli dan gunakan kelompok sumber daya khusus untuk Layanan Transmisi Data).
1. Buat instans PAI-Rec
Login ke halaman utama PAI-Rec dan klik Buy Now.
Pada halaman pembelian instans PAI-Rec, konfigurasikan parameter berikut dan klik Buy Now.
Parameter
Deskripsi
Region and availability zone
Wilayah tempat layanan Anda diterapkan.
Service Type
Untuk solusi ini, pilih Standard Edition dan aktifkan fitur Recommendation Solution Customization.
Login ke Konsol PAI-Rec. Di pojok kiri atas bilah menu atas, pilih wilayah.
Di panel navigasi kiri, pilih Instance list. Klik nama instans untuk membuka halaman detail instans.
Di bagian Procedure, klik Cloud Service Configuration. Hal ini akan membawa Anda ke halaman System Configuration > Cloud Service Configuration. Klik Edit, konfigurasikan parameter berikut, lalu klik Exit.
Di panel navigasi kiri, pilih System Configuration > Permissions. Di tab Services, verifikasi bahwa setiap produk cloud telah diberi otorisasi dengan benar.
2. Klon dataset publik
1. Sinkronisasi tabel
Solusi ini menerima data masukan dengan dua cara:
Klon data untuk jendela waktu tetap dari proyek
pai_online_project. Metode ini tidak mendukung penjadwalan rutin.Gunakan skrip Python untuk menghasilkan data. Anda dapat menjalankan tugas di DataWorks untuk menghasilkan data ini untuk periode tertentu.
Untuk menjadwalkan pembuatan data harian dan pelatihan model, gunakan metode kedua. Terapkan kode Python yang ditentukan untuk menghasilkan data. Untuk informasi lebih lanjut, lihat tab Generate data using code.
Jendela waktu tetap
PAI-Rec menyediakan tiga tabel umum untuk algoritma rekomendasi di proyek publik pai_online_project:
tabel user:
pai_online_project.rec_sln_demo_user_tabletabel item:
pai_online_project.rec_sln_demo_item_tabletabel behavior:
pai_online_project.rec_sln_demo_behavior_table
Operasi dalam solusi ini menggunakan ketiga tabel tersebut. Data ini dihasilkan secara acak untuk demonstrasi dan bukan data bisnis nyata. Oleh karena itu, metrik seperti Area Under the Curve (AUC) yang diperoleh dari pelatihan akan rendah. Anda harus menjalankan perintah SQL di DataWorks untuk menyinkronkan data tabel dari proyek pai_online_project ke proyek DataWorks Anda, misalnya, DataWorks_a. Ikuti langkah-langkah berikut:
Login ke Konsol DataWorks. Di bilah menu atas, pilih wilayah.
Di panel navigasi kiri, klik Data Development and O&M > Data Development.
Pilih ruang kerja DataWorks yang telah Anda buat dan klik Go To Data Development.
Arahkan kursor ke Create dan pilih Create Node > MaxCompute > ODPS SQL. Konfigurasikan parameter seperti yang dijelaskan dalam tabel berikut dan klik Confirm.
Di editor node baru, tempel dan jalankan kode berikut untuk menyinkronkan tabel user, item, dan behavior dari proyek
pai_online_projectke proyek MaxCompute Anda, misalnya,project_mc. Kode ini memerlukan jendela data 100 hari. Untuk menetapkan jendela ini berakhir pada hari sebelumnya, buka bagian Scheduling Parameters, klik Add Parameter, dan tambahkan dua parameter:bizdatedengan nilai$[yyyymmdd-1]danbizdate_100dengan nilai$[yyyymmdd-100].
CREATE TABLE IF NOT EXISTS rec_sln_demo_user_table_v1(
user_id BIGINT COMMENT 'Unique user ID',
gender STRING COMMENT 'Gender',
age BIGINT COMMENT 'Age',
city STRING COMMENT 'City',
item_cnt BIGINT COMMENT 'Number of created items',
follow_cnt BIGINT COMMENT 'Number of follows',
follower_cnt BIGINT COMMENT 'Number of followers',
register_time BIGINT COMMENT 'Registration time',
tags STRING COMMENT 'User tags'
) PARTITIONED BY (ds STRING) STORED AS ALIORC;
INSERT OVERWRITE TABLE rec_sln_demo_user_table_v1 PARTITION(ds)
SELECT *
FROM pai_online_project.rec_sln_demo_user_table
WHERE ds >= "${bizdate_100}" and ds <= "${bizdate}";
CREATE TABLE IF NOT EXISTS rec_sln_demo_item_table_v1(
item_id BIGINT COMMENT 'Item ID',
duration DOUBLE COMMENT 'Video duration',
title STRING COMMENT 'Title',
category STRING COMMENT 'Primary tag',
author BIGINT COMMENT 'Author',
click_count BIGINT COMMENT 'Total clicks',
praise_count BIGINT COMMENT 'Total likes',
pub_time BIGINT COMMENT 'Publication time'
) PARTITIONED BY (ds STRING) STORED AS ALIORC;
INSERT OVERWRITE TABLE rec_sln_demo_item_table_v1 PARTITION(ds)
SELECT *
FROM pai_online_project.rec_sln_demo_item_table
WHERE ds >= "${bizdate_100}" and ds <= "${bizdate}";
CREATE TABLE IF NOT EXISTS rec_sln_demo_behavior_table_v1(
request_id STRING COMMENT 'Instrumentation ID/Request ID',
user_id STRING COMMENT 'Unique user ID',
exp_id STRING COMMENT 'Experiment ID',
page STRING COMMENT 'Page',
net_type STRING COMMENT 'Network type',
event_time BIGINT COMMENT 'Behavior time',
item_id STRING COMMENT 'Item ID',
event STRING COMMENT 'Behavior type',
playtime DOUBLE COMMENT 'Playback/Read duration'
) PARTITIONED BY (ds STRING) STORED AS ALIORC;
INSERT OVERWRITE TABLE rec_sln_demo_behavior_table_v1 PARTITION(ds)
SELECT *
FROM pai_online_project.rec_sln_demo_behavior_table
WHERE ds >= "${bizdate_100}" and ds <= "${bizdate}";Generasi kode
Penjadwalan tugas periodik tidak didukung untuk data jendela waktu tetap. Untuk menjalankan tugas terjadwal, Anda harus menerapkan skrip Python untuk menghasilkan data. Ikuti langkah-langkah berikut:
Di Konsol DataWorks, buat node PyODPS 3. Untuk informasi lebih lanjut, lihat Buat dan kelola node MaxCompute.
Unduh create_data.py dan tempel isinya ke node PyODPS 3.
Klik Configure Scheduling di sebelah kanan, konfigurasikan parameter berikut, lalu klik Simpan
dan Submit
di pojok kanan atas.Konfigurasikan parameter penjadwalan:
Atur parameter
$user_table_namekerec_sln_demo_user_table.Atur parameter
$item_table_namekerec_sln_demo_item_table.Atur parameter
$behavior_table_namekerec_sln_demo_behavior_table.Selain parameter nama tabel, Anda juga harus menambahkan parameter untuk tanggal bisnis.
Parameter ini bernama bizdate.
Atur nilainya ke
$[yyyymmdd-1].
Konfigurasikan dependensi penjadwalan.
Buka Pusat Operasi dan pilih .
Di kolom Actions tugas target, pilih .
Di panel Backfill Data, atur tanggal bisnis dan klik Submit and Go.
Rentang waktu optimal untuk pengisian ulang data adalah 60 hari. Kami menyarankan Anda mengatur tanggal bisnis ke
Tanggal penjadwalan Tugas - 60untuk memastikan integritas data.
2. Konfigurasi node dependensi
Untuk memastikan generasi dan penerapan kode berjalan lancar, tambahkan tiga node kode SQL ke proyek DataWorks Anda. Atur dependensi penjadwalan node-node ini ke node root ruang kerja. Terakhir, publikasikan node-node tersebut. Prosedurnya sebagai berikut:
Arahkan kursor ke Create dan pilih Create Node > General-purpose > Virtual Node. Buat tiga node virtual dengan konfigurasi sumber daya berikut, dan klik Confirm.
Untuk setiap node virtual, atur isinya ke
select 1;. Lalu, klik Configure Scheduling di sebelah kanan dan konfigurasikan pengaturan berikut:Di bagian Time property, atur Rerun property ke Rerun When Succeeded Or Failed.
Di bagian Scheduling dependencies > Upstream dependencies, masukkan nama ruang kerja DataWorks Anda, pilih node dengan akhiran _root, lalu klik Add.
Terapkan pengaturan ini ke ketiga node virtual.
Klik ikon
di sebelah setiap node virtual untuk mengirimnya.
3. Daftarkan data
Untuk mengonfigurasi rekayasa fitur, recall, dan algoritma sorting dalam solusi rekomendasi kustom, Anda harus terlebih dahulu mendaftarkan ketiga tabel yang telah disinkronkan ke proyek DataWorks Anda. Prosedurnya sebagai berikut:
Login ke Konsol PAI-Rec. Di bilah menu atas, pilih wilayah.
Di panel navigasi kiri, pilih Instance List. Klik nama instans untuk membuka halaman detail instans.
Di panel navigasi kiri, pilih Recommendation Solution Customization > Data Registration. Di tab MaxCompute Table, klik Create Data Table. Tambahkan satu tabel user, satu tabel item, dan satu tabel behavior seperti yang dijelaskan dalam tabel berikut, lalu klik Import.
Parameter
Deskripsi
Contoh
Proyek MaxCompute
Pilih proyek MaxCompute Anda.
project_mc
Tabel MaxCompute
Pilih tabel data yang telah disinkronkan ke ruang kerja DataWorks Anda.
tabel user: rec_sln_demo_user_table_v1
tabel item: rec_sln_demo_item_table_v1
tabel behavior: rec_sln_demo_behavior_table_v1
nama tabel data
Masukkan nama kustom.
tabel user
tabel item
tabel behavior
4. Buat skenario rekomendasi
Sebelum Anda dapat mengonfigurasi tugas rekomendasi, Anda harus terlebih dahulu membuat skenario rekomendasi. Untuk penjelasan tentang skenario rekomendasi dan ID trafik, lihat Konsep Dasar.
Di panel navigasi kiri, klik Recommendation Scenario. Klik Create Scenario, konfigurasikan skenario baru sesuai tabel berikut, lalu klik Determine.
5. Konfigurasi solusi algoritma
Untuk mengonfigurasi sepenuhnya skenario dunia nyata, gunakan konfigurasi recall dan peringkat detail halus berikut:
global hot recall: Memilih item top-k paling populer dari data log.
global hot fallback recall: Menggunakan Redis sebagai fallback untuk mencegah respons kosong dari API rekomendasi.
grouped hot recall: Melakukan recall item berdasarkan grup (misalnya, kota, jenis kelamin) untuk memberikan rekomendasi item populer yang lebih akurat.
etrec u2i recall: Menggunakan algoritma filtering kolaboratif etrec.
Swing u2i recall (opsional): Menggunakan algoritma Swing.
cold-start recall (opsional): Menangani skenario cold-start menggunakan algoritma DropoutNet.
fine-grained ranking: Menggunakan MultiTower untuk peringkat tujuan tunggal dan DBMTL untuk peringkat multi-tujuan.
Anda sebaiknya hanya mengaktifkan algoritma seperti vector recall atau PDN recall setelah recall awal mencakup sebagian besar kandidat Anda. Vector recall memerlukan mesin vector recall. FeatureDB tidak mendukung vector recall, sehingga contoh ini tidak mengonfigurasinya.
Artikel ini menunjukkan contoh konfigurasi dan penerapan. Untuk menyederhanakan proses, contoh ini hanya menggunakan global hot recall dan strategi u2i recall dari RECommender (eTREC, implementasi filtering kolaboratif) untuk konfigurasi recall, dan fine-grained ranking untuk konfigurasi peringkat. Langkah-langkahnya sebagai berikut:
Di panel navigasi kiri, pilih Recommendation Solution Customization > Solution Configurations. Pilih skenario yang telah Anda buat, klik Create Recommendation Solution, berikan konfigurasi sumber daya berikut, lalu klik Save and Go to Algorithm Solution Configuration.
Pertahankan nilai default untuk parameter yang tidak ditentukan. Untuk informasi lebih lanjut, lihat Konfigurasi tabel data.
Di node Configure Table, klik Add di sebelah tabel data target. Konfigurasikan partisi, event, fitur, dan timestamp untuk tabel log behavior, tabel user, dan tabel item seperti yang dijelaskan di bagian berikut. Klik Next.
Anda dapat mempertahankan nilai default untuk parameter yang tidak dijelaskan. Untuk informasi lebih lanjut, lihat Konfigurasi Tabel Data.
Di node Configure Feature, konfigurasikan parameter seperti yang dijelaskan dalam tabel berikut, klik Generate Feature, atur versi fitur, lalu klik Next.
Setelah Anda mengklik Generate Feature, sistem menurunkan berbagai fitur statistik untuk pengguna dan item. Solusi ini menggunakan fitur turunan default, tetapi Anda dapat mengeditnya berdasarkan kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Konfigurasi Fitur.
Di node Retrieval Configuration, klik Add di sebelah kategori target, konfigurasikan parameter, klik Confirm, lalu klik Next.
Bagian ini menjelaskan beberapa metode konfigurasi recall. Untuk memulai dengan cepat, Anda hanya perlu mengonfigurasi global hot recall dan etrec u2i recall. Metode lainnya disediakan sebagai referensi.
Di node Configure Sorting Method, klik Add di sebelah Fine-grained Ranking, konfigurasikan parameter seperti yang dijelaskan di bawah, klik Confirm, lalu klik Next.
Di node Generate Script, klik Generate Deployment Script.
PentingSetelah skrip penerapan dihasilkan, sistem menyediakan alamat OSS yang berisi semua file penerapan. Anda dapat menyimpan alamat ini untuk menjalankan skrip penerapan secara manual nanti.
Setelah skrip dihasilkan, klik Determine di kotak dialog untuk membuka halaman Recommendation Solution Customization > Deployment History.
Jika generasi skrip gagal, periksa log run untuk mengidentifikasi dan memperbaiki kesalahan, lalu hasilkan ulang skrip.
6. Terapkan rekomendasi
Setelah skrip dihasilkan, Anda dapat menerapkannya ke DataWorks dengan salah satu dari dua cara berikut.
Metode 1: Penerapan terintegrasi
Klik Go to Deploy di sebelah kanan solusi target. Di halaman Deployment Records, Anda dapat memfilter catatan berdasarkan skenario dan Status Penerapan. Temukan solusi rekomendasi target, seperti
pai_rec_testdemo_v1, dan pastikan Status Penerapannya adalah Ready.Di halaman Deployment Preview, di bagian Diff File, pilih file yang akan diterapkan. Untuk penerapan pertama kali, klik Select All lalu klik Deploy to DataWorks.
Halaman kembali ke halaman Deployment History. Di halaman ini, Status Penerapan untuk solusi rekomendasi
pai_rec_testdemo_v1dalam skenario HomePage ditampilkan sebagai Running.Tunggu sebentar, lalu klik
untuk merefresh daftar dan memeriksa status penerapan.Jika penerapan gagal, klik View Log di kolom Actions. Analisis dan selesaikan kesalahan spesifik, lalu hasilkan ulang dan terapkan skrip.
Ketika Deployment Status berubah menjadi Successful, Anda dapat membuka DataStudio di ruang kerja DataWorks yang dikonfigurasi untuk solusi ini untuk melihat kode yang diterapkan. Untuk informasi lebih lanjut, lihat Pengembangan Data: developer. Di panel navigasi kiri DataStudio, perluas Business Flow > Workflow > MaxCompute > Data Development untuk melihat folder node yang diterapkan, termasuk feature, feature_v726, rank_v1, recall_v1 (dengan sub-node etrec_u2i_recall dan global_hot_recall), dan test.
Lihat proses pengisian ulang data tugas.
Di halaman , klik Details di kolom Actions untuk solusi yang berhasil diterapkan.
Di halaman Deployment Preview, klik View Task Data Backfill Process untuk meninjau proses dan instruksinya.
Pastikan partisi untuk tabel user, tabel item, dan tabel perilaku pengguna berisi data untuk n hari terbaru, di mana n adalah jumlah jendela waktu pelatihan dan jendela waktu fitur maksimum. Jika Anda menggunakan data demo dari topik ini, sinkronkan partisi data terbaru. Jika Anda menghasilkan data dengan skrip Python, lakukan pengisian ulang data di Pusat Operasi DataWorks untuk menghasilkan partisi terbaru.
Klik Create Data Refill Task di pojok kiri atas, lalu klik Start Task by Order di bawah Data Refill Task List. Pastikan semua tugas berjalan berhasil. Jika tugas gagal, klik Details untuk melihat informasi log, analisis dan selesaikan kesalahan, lalu jalankan ulang tugas. Setelah berhasil dijalankan ulang, klik Continue Run di pojok kiri atas halaman hingga semua tugas berhasil. DAG proses pengisian ulang data menunjukkan pipeline rekayasa fitur lengkap: di bagian atas adalah tiga tabel sumber data (
pairec_demo.rec_sln_demo_item_table_v1,pairec_demo.rec_sln_demo_behavior_table_v1, danpairec_demo.rec_sln_demo_user_table_v1), yang secara berurutan melalui pra-pemrosesan, pembuatan tabel lebar (sepertibehavior_table_v1_wide), statistik agregat (sepertiitem_id_30d_aggdanuser_id_30d_agg), dan ekstraksi fitur statis untuk menghasilkan tabel fitur lengkap (sepertiitem_table_v1_all_featdanuser_table_v1_all_feat). Terakhir, node bertipe PyODPS3create_sync_onlinestoremenyinkronkan data ke penyimpanan fitur online. Setiap kartu node mencakup informasi seperti tanggal mulai dan akhir serta urutan pengisian ulang data. Tombol Create Backfill Task di pojok kiri atas memulai proses pengisian ulang data ini.
Metode 2: Migration Assistant
Setelah skrip dihasilkan, Anda juga dapat menerapkannya secara manual menggunakan Migration Assistant di konsol DataWorks. Parameter utama dijelaskan di bawah ini. Untuk operasi lainnya, lihat Buat dan lihat tugas impor DataWorks.
Import Name: Atur ini sesuai petunjuk konsol.
Upload Method: Pilih OSS File, masukkan OSS Link, lalu klik Verify.
File penerapan disimpan di alamat OSS yang dihasilkan di Langkah 5, misalnya,
oss://examplebucket/algoconfig/plan/1723717372/package.zip. Anda dapat login ke konsol OSS dan ikuti langkah-langkah berikut untuk mendapatkan URL file. Di panel navigasi kiri konsol OSS, klik Bucket List. Buka bucket target dan klik File List. Temukan dan klik file target, sepertipackage.zip. Di panel detail yang muncul di sebelah kanan, aktifkan saklar HTTPS, lalu klik Copy File URL untuk mendapatkan URL yang ditandatangani. Gunakan URL ini sebagai OSS Link.
7. Membekukan node
Setelah pengisian ulang selesai, bekukan tugas di Pusat Operasi (tiga node di langkah 2.2) untuk mencegahnya berjalan setiap hari.
Di Pusat Operasi DataWorks, navigasi ke Auto Triggered Task O&M > Recurring Job. Cari node (misalnya, rec_sln_demo_user_table_v1), pilih node (Ruang Kerja.nama node), lalu pilih Suspend (Freeze).