Parameter Server (PS) dirancang untuk tugas pelatihan offline dan online berskala besar. Scalable Multiple Additive Regression Tree (SMART) adalah algoritma iteratif berbasis Gradient Boosting Decision Tree (GBDT) yang diimplementasikan pada PS. PS-SMART mampu menangani tugas pelatihan dengan puluhan miliar contoh dan ratusan ribu fitur yang tersebar di ribuan node. Algoritma ini juga mendukung berbagai format data dan teknik optimasi, seperti aproksimasi histogram.
Batasan
Komponen ini hanya mendukung mesin komputasi MaxCompute.
Catatan penggunaan
-
Kolom target untuk komponen Pelatihan Klasifikasi Biner PS-SMART harus bertipe numerik, dengan 0 merepresentasikan contoh negatif dan 1 merepresentasikan contoh positif. Jika data dalam tabel MaxCompute Anda bertipe STRING, Anda harus mengonversi tipe datanya. Misalnya, Anda dapat mengonversi string target klasifikasi Good/Bad menjadi 1/0.
-
Jika data Anda dalam format key-value (KV), ID fitur harus berupa bilangan bulat positif dan nilai fitur harus berupa bilangan real. Jika ID fitur Anda bertipe STRING, Anda harus menggunakan komponen serialisasi untuk mengubahnya ke bentuk serial. Jika nilai fitur Anda berupa string kategorikal, Anda harus melakukan rekayasa fitur, seperti diskretisasi fitur.
-
Meskipun komponen Pelatihan Klasifikasi Biner PS-SMART mendukung tugas dengan ratusan ribu fitur, proses pelatihannya intensif terhadap sumber daya dan lambat. Untuk performa yang lebih baik, Anda dapat menggunakan algoritma sejenis GBDT karena dapat dilatih langsung pada fitur kontinu. Selain menerapkan enkode One-Hot pada fitur kategorikal dan memfilter fitur dengan frekuensi rendah, hindari diskretisasi fitur numerik kontinu lainnya.
-
Algoritma PS-SMART memperkenalkan unsur keacakan. Misalnya, keacakan diperkenalkan melalui sampling data dan fitur, yang dikendalikan oleh parameter data_sample_ratio dan fea_sample_ratio, optimasi aproksimasi histogram, serta urutan acak saat sketsa lokal digabung menjadi sketsa global. Meskipun struktur pohon mungkin berbeda ketika beberapa worker berjalan secara terdistribusi, performa model secara teoretis serupa. Oleh karena itu, wajar jika hasil eksekusi berulang dengan data dan parameter yang sama tidak konsisten.
-
Untuk mempercepat pelatihan, Anda dapat menambahkan number of computing cores. Algoritma PS-SMART baru memulai pelatihan setelah semua server mendapatkan sumber daya yang dibutuhkan. Oleh karena itu, permintaan sumber daya tambahan saat kluster sedang sibuk dapat memperpanjang waktu tunggu.
Konfigurasi komponen
Anda dapat mengonfigurasi parameter komponen PS-SMART Klasifikasi Biner menggunakan salah satu metode berikut.
Metode 1: Gunakan UI
Konfigurasikan parameter komponen pada halaman alur kerja Designer.
|
Tab |
Parameter |
Deskripsi |
|
Fields Setting |
Use Sparse Format |
Dalam format sparse, gunakan spasi untuk memisahkan pasangan KV dan tanda titik dua (:) untuk memisahkan key dari value. Contoh: 1:0.3 3:0.9. |
|
Feature Columns |
Kolom fitur dari tabel input untuk pelatihan. Jika data input dalam format dense, Anda hanya dapat memilih kolom bertipe numerik (BIGINT atau DOUBLE). Jika data input dalam format sparse KV dan key serta value bertipe numerik, Anda hanya dapat memilih kolom bertipe STRING. |
|
|
Label Column |
Kolom label dari tabel input. Mendukung tipe STRING dan numerik. Namun, isi kolom hanya mendukung nilai numerik, seperti 0 dan 1 dalam klasifikasi biner. |
|
|
Weight Column |
Kolom yang digunakan untuk memberi bobot pada setiap baris contoh. Mendukung tipe numerik. |
|
|
Parameter Settings |
Evaluation Metric Type |
Tipe yang didukung adalah:
|
|
Number of Trees |
Jumlah pohon. Nilai ini harus berupa bilangan bulat positif. number of trees berbanding lurus dengan waktu pelatihan. |
|
|
Maximum Tree Depth |
Nilai default adalah 5, yang berarti maksimal 16 leaf node. Nilai ini harus berupa bilangan bulat positif. |
|
|
Data Sampling Ratio |
Saat membangun setiap pohon, sebagian data disampling untuk membangun pembelajar lemah, yang mempercepat pelatihan. |
|
|
Feature Sampling Ratio |
Saat membangun setiap pohon, sebagian fitur disampling untuk membangun pembelajar lemah, yang mempercepat pelatihan. |
|
|
L1 Penalty Coefficient |
Mengontrol ukuran leaf node. Semakin besar nilainya, semakin seragam distribusi ukuran leaf node. Jika terjadi overfitting, tingkatkan nilai ini. |
|
|
L2 Penalty Coefficient |
Mengontrol ukuran leaf node. Semakin besar nilainya, semakin seragam distribusi ukuran leaf node. Jika terjadi overfitting, tingkatkan nilai ini. |
|
|
Learning Rate |
Rentang nilai adalah (0,1). |
|
|
Approximate Sketch Precision |
Ambang batas kuantil untuk pemisahan saat membangun sketsa. Semakin kecil nilainya, semakin banyak bucket yang dibuat. Biasanya, gunakan nilai default 0.03. Tidak perlu dikonfigurasi secara manual. |
|
|
Minimum Split Loss Change |
Perubahan loss minimum yang diperlukan untuk membagi sebuah node. Semakin besar nilainya, semakin konservatif pembagiannya. |
|
|
Number of Features |
Jumlah fitur atau ID fitur maksimum. Jika parameter ini tidak dikonfigurasi saat memperkirakan penggunaan resource, sistem akan menjalankan task SQL untuk menghitungnya secara otomatis. |
|
|
Global Bias Term |
Nilai prediksi awal untuk semua contoh. |
|
|
Random Number Generator Seed |
Seed bilangan acak. Harus berupa bilangan bulat. |
|
|
Feature Importance Type |
Tipe yang didukung adalah:
|
|
|
Execution Tuning |
Number of Computing Cores |
Sistem secara otomatis mengalokasikan core secara default. |
|
Memory Size per Core |
Memori yang digunakan oleh satu core, dalam MB. Biasanya tidak perlu dikonfigurasi secara manual. Sistem mengalokasikan memori secara otomatis. |
Metode 2: Gunakan perintah PAI
Anda dapat menggunakan perintah Platform for AI (PAI) untuk mengonfigurasi parameter komponen. Anda dapat menggunakan komponen SQL script untuk memanggil perintah PAI. Untuk informasi selengkapnya, lihat SQL Script.
# Train.
PAI -name ps_smart
-project algo_public
-DinputTableName="smart_binary_input"
-DmodelName="xlab_m_pai_ps_smart_bi_545859_v0"
-DoutputTableName="pai_temp_24515_545859_2"
-DoutputImportanceTableName="pai_temp_24515_545859_3"
-DlabelColName="label"
-DfeatureColNames="f0,f1,f2,f3,f4,f5"
-DenableSparse="false"
-Dobjective="binary:logistic"
-Dmetric="error"
-DfeatureImportanceType="gain"
-DtreeCount="5"
-DmaxDepth="5"
-Dshrinkage="0.3"
-Dl2="1.0"
-Dl1="0"
-Dlifecycle="3"
-DsketchEps="0.03"
-DsampleRatio="1.0"
-DfeatureRatio="1.0"
-DbaseScore="0.5"
-DminSplitLoss="0";
# Predict.
PAI -name prediction
-project algo_public
-DinputTableName="smart_binary_input"
-DmodelName="xlab_m_pai_ps_smart_bi_545859_v0"
-DoutputTableName="pai_temp_24515_545860_1"
-DfeatureColNames="f0,f1,f2,f3,f4,f5"
-DappendColNames="label,qid,f0,f1,f2,f3,f4,f5"
-DenableSparse="false"
-Dlifecycle="28";
|
Modul |
Parameter |
Wajib |
Deskripsi |
Nilai default |
|
Parameter data |
featureColNames |
Ya |
Kolom fitur dari tabel input untuk pelatihan. Jika tabel input dalam format dense, Anda hanya dapat memilih kolom bertipe numerik (BIGINT atau DOUBLE). Jika tabel input dalam format sparse KV dan key serta value bertipe numerik, Anda hanya dapat memilih kolom bertipe STRING. |
Tidak ada |
|
labelColName |
Ya |
Kolom label dari tabel input. Mendukung tipe STRING dan numerik. Untuk penyimpanan internal, hanya tipe numerik yang didukung. Misalnya, 0 dan 1 dalam klasifikasi biner. |
Tidak ada |
|
|
weightCol |
Tidak |
Kolom yang digunakan untuk memberi bobot pada setiap baris contoh. Mendukung tipe numerik. |
Tidak ada |
|
|
enableSparse |
Tidak |
Menentukan apakah formatnya sparse. Nilai yang valid: {true,false}. Dalam format sparse, gunakan spasi untuk memisahkan pasangan KV dan tanda titik dua (:) untuk memisahkan key dari value. Contoh: 1:0.3 3:0.9. |
false |
|
|
inputTableName |
Ya |
Nama tabel input. |
Tidak ada |
|
|
modelName |
Ya |
Nama model output. |
Tidak ada |
|
|
outputImportanceTableName |
Tidak |
Nama tabel output untuk pentingnya fitur. |
Tidak ada |
|
|
inputTablePartitions |
Tidak |
Formatnya adalah ds=1/pt=1. |
Tidak ada |
|
|
outputTableName |
Tidak |
Tabel output di MaxCompute. Tabel ini dalam format biner dan tidak dapat dibaca. Hanya dapat diperoleh melalui komponen prediksi SMART. |
Tidak ada |
|
|
lifecycle |
Tidak |
Siklus hidup tabel output, dalam hari. |
3 |
|
|
Parameter algoritma |
objective |
Ya |
Tipe fungsi objektif. Untuk pelatihan klasifikasi biner, pilih binary:logistic. |
Tidak ada |
|
metric |
Tidak |
Tipe metrik evaluasi untuk set data pelatihan. Output ditulis ke file stdout di bagian Coordinator Logview. Tipe yang didukung adalah:
|
Tidak ada |
|
|
treeCount |
Tidak |
Jumlah pohon. Berbanding lurus dengan waktu pelatihan. |
1 |
|
|
maxDepth |
Tidak |
Kedalaman maksimum pohon. Harus berupa bilangan bulat positif dari 1 hingga 20. |
5 |
|
|
sampleRatio |
Tidak |
Rasio sampling data. Rentang nilai adalah (0,1]. Nilai 1.0 berarti tidak ada sampling. |
1.0 |
|
|
featureRatio |
Tidak |
Rasio sampling fitur. Rentang nilai adalah (0,1]. Nilai 1.0 berarti tidak ada sampling. |
1.0 |
|
|
l1 |
Tidak |
Koefisien penalti L1. Semakin besar nilainya, semakin seragam distribusi leaf node. Jika terjadi overfitting, tingkatkan nilai ini. |
0 |
|
|
l2 |
Tidak |
Koefisien penalti L2. Semakin besar nilainya, semakin seragam distribusi leaf node. Jika terjadi overfitting, tingkatkan nilai ini. |
1.0 |
|
|
shrinkage |
Tidak |
Rentang nilai adalah (0,1). |
0.3 |
|
|
sketchEps |
Tidak |
Ambang batas kuantil untuk pemisahan saat membangun sketsa. Jumlah bucket adalah O(1.0/sketchEps). Semakin kecil nilainya, semakin banyak bucket yang dibuat. Biasanya tidak perlu dikonfigurasi secara manual. Rentang nilai adalah (0,1). |
0.03 |
|
|
minSplitLoss |
Tidak |
Perubahan loss minimum yang diperlukan untuk membagi sebuah node. Semakin besar nilainya, semakin konservatif pembagiannya. |
0 |
|
|
featureNum |
Tidak |
Jumlah fitur atau ID fitur maksimum. Jika parameter ini tidak dikonfigurasi saat memperkirakan penggunaan resource, sistem akan menjalankan task SQL untuk menghitungnya secara otomatis. |
Tidak ada |
|
|
baseScore |
Tidak |
Nilai prediksi awal untuk semua contoh. |
0.5 |
|
|
randSeed |
Tidak |
Seed bilangan acak. Harus berupa bilangan bulat. |
Tidak ada |
|
|
featureImportanceType |
Tidak |
Tipe pentingnya fitur yang akan dihitung. Meliputi:
|
gain |
|
|
Parameter tuning |
coreNum |
Tidak |
Jumlah core. Semakin besar nilainya, semakin cepat algoritma berjalan. |
Dialokasikan sistem |
|
memSizePerCore |
Tidak |
Memori yang digunakan oleh setiap core, dalam MB. |
Dialokasikan sistem |
Contoh
-
Gunakan node ODPS SQL untuk menjalankan pernyataan SQL berikut guna menghasilkan data pelatihan. Contoh ini menggunakan data dalam format dense.
drop table if exists smart_binary_input; create table smart_binary_input lifecycle 3 as select * from ( select 0.72 as f0, 0.42 as f1, 0.55 as f2, -0.09 as f3, 1.79 as f4, -1.2 as f5, 0 as label union all select 1.23 as f0, -0.33 as f1, -1.55 as f2, 0.92 as f3, -0.04 as f4, -0.1 as f5, 1 as label union all select -0.2 as f0, -0.55 as f1, -1.28 as f2, 0.48 as f3, -1.7 as f4, 1.13 as f5, 1 as label union all select 1.24 as f0, -0.68 as f1, 1.82 as f2, 1.57 as f3, 1.18 as f4, 0.2 as f5, 0 as label union all select -0.85 as f0, 0.19 as f1, -0.06 as f2, -0.55 as f3, 0.31 as f4, 0.08 as f5, 1 as label union all select 0.58 as f0, -1.39 as f1, 0.05 as f2, 2.18 as f3, -0.02 as f4, 1.71 as f5, 0 as label union all select -0.48 as f0, 0.79 as f1, 2.52 as f2, -1.19 as f3, 0.9 as f4, -1.04 as f5, 1 as label union all select 1.02 as f0, -0.88 as f1, 0.82 as f2, 1.82 as f3, 1.55 as f4, 0.53 as f5, 0 as label union all select 1.19 as f0, -1.18 as f1, -1.1 as f2, 2.26 as f3, 1.22 as f4, 0.92 as f5, 0 as label union all select -2.78 as f0, 2.33 as f1, 1.18 as f2, -4.5 as f3, -1.31 as f4, -1.8 as f5, 1 as label ) tmp;Data pelatihan yang dihasilkan ditunjukkan pada gambar berikut.

-
Bangun alur kerja seperti pada gambar berikut dan jalankan komponennya. Untuk informasi selengkapnya, lihat Pemodelan algoritma.

-
Pada daftar komponen di sisi kiri kanvas Designer, cari dan seret komponen Read Table, PS-SMART Binary Classification Training, Prediction, dan Write Table ke kanvas.
-
Hubungkan komponen seperti pada gambar sebelumnya untuk membangun alur kerja dengan hubungan hulu-hilir.
-
Konfigurasikan parameter komponen.
-
Pada kanvas, klik komponen Read Table-1. Pada tab Select Table di panel kanan, atur Table Name menjadi smart_binary_input.
-
Pada kanvas, klik komponen PS-SMART Binary Classification Training-1. Di panel kanan, konfigurasikan parameter seperti pada tabel berikut. Gunakan nilai default untuk parameter lainnya.
Tab
Parameter
Deskripsi
Fields Setting
Feature Columns
Pilih kolom f0, f1, f2, f3, f4, dan f5.
Label Column
Pilih kolom label.
Parameter Settings
Evaluation Metric Type
Pilih Area under curve for classification.
Number of Trees
Masukkan 5.
-
Pada kanvas, klik komponen Prediction-1. Pada tab Fields Setting di panel kanan, atur Reserved Columns menjadi Select All. Gunakan nilai default untuk parameter lainnya.
-
Pada kanvas, klik komponen Write Table-1. Pada tab Select Table di panel kanan, atur Output Table Name menjadi smart_binary_output.
-
-
Setelah mengonfigurasi parameter, klik tombol Run
untuk menjalankan alur kerja.
-
-
Klik kanan komponen Prediction-1 dan pilih untuk melihat hasil prediksi.
Pada kolom prediction_detail, 1 merepresentasikan contoh positif dan 0 merepresentasikan contoh negatif. -
Klik kanan komponen PS-SMART Binary Classification Training-1 dan pilih untuk melihat tabel pentingnya fitur.
Parameter dijelaskan sebagai berikut:-
id: Nomor urut fitur input. Dalam contoh ini, fitur input adalah f0, f1, f2, f3, f4, dan f5. Oleh karena itu, nilai 0 pada kolom id merepresentasikan kolom fitur f0, dan nilai 4 pada kolom id merepresentasikan kolom fitur f4. Jika data input dalam format key-value (KV), kolom id merepresentasikan key.
-
value: Tipe pentingnya fitur. Nilai default adalah gain, yaitu jumlah information gain yang dibawa fitur tersebut ke dalam model.
-
Tabel pentingnya fitur hanya berisi tiga fitur. Artinya, hanya ketiga fitur tersebut yang digunakan dalam proses pemisahan pohon. Pentingnya fitur lain dianggap 0.
-
Instruksi penerapan model PS-SMART
Untuk menerapkan model yang dihasilkan oleh komponen PS-SMART sebagai layanan online, Anda harus menambahkan komponen General-purpose Model Export di hilir komponen PS-SMART. Anda dapat mengonfigurasi parameter komponen dengan cara yang sama seperti komponen seri PS lainnya. Untuk informasi selengkapnya, lihat General-purpose Model Export.
Setelah eksekusi berhasil, Anda dapat membuka halaman PAI-EAS Model Online Service untuk menerapkan layanan model. Untuk informasi selengkapnya, lihat Deploy a service in the console.
Referensi
-
Untuk informasi selengkapnya tentang komponen Designer, lihat Ikhtisar Designer.
-
Designer menyediakan berbagai komponen algoritma. Anda dapat memilih komponen yang sesuai untuk pemrosesan data berdasarkan skenario Anda. Untuk informasi selengkapnya, lihat Referensi komponen: Semua komponen.