Parameter server (PS) digunakan untuk memproses sejumlah besar pekerjaan pelatihan, baik offline maupun online. Scalable Multiple Additive Regression Tree (SMART) adalah algoritma iteratif yang diimplementasikan menggunakan PS berbasis pohon keputusan peningkatan gradien (GBDT). Komponen PS-SMART Multiclass Classification dari Platform for AI (PAI) mendukung pekerjaan pelatihan untuk puluhan miliar sampel dan ratusan ribu fitur. Komponen ini dapat menjalankan pekerjaan pelatihan pada ribuan node serta mendukung berbagai format data dan teknologi optimasi, seperti pendekatan menggunakan histogram.
Batasan
Data input komponen PS-SMART Multiclass Classification harus memenuhi persyaratan berikut:
Data di kolom tujuan harus bertipe numerik. Jika tipe data dalam tabel MaxCompute adalah STRING, data tersebut harus dikonversi menjadi tipe numerik. Sebagai contoh, jika objek klasifikasi adalah string seperti Baik/Sedang/Buruk, Anda harus mengonversinya menjadi 0/1/2.
Jika data dalam format key-value, ID fitur harus bilangan bulat positif dan nilai fitur harus bilangan real. Jika ID fitur bertipe STRING, Anda harus menggunakan komponen serialisasi untuk menyerilisasi data. Jika nilai fitur adalah string kategorikal, Anda harus melakukan rekayasa fitur, seperti diskretisasi fitur, untuk memproses nilai-nilai tersebut.
Komponen PS-SMART Multiclass Classification mendukung pekerjaan terkait ratusan ribu fitur. Namun, pekerjaan ini intensif sumber daya dan memakan waktu. Untuk mengatasi masalah ini, Anda dapat menggunakan algoritma GBDT dalam pelatihan. Algoritma GBDT cocok untuk skenario di mana fitur kontinu digunakan untuk pelatihan. Anda dapat melakukan one-hot encoding pada fitur kategorikal untuk menyaring fitur dengan frekuensi rendah. Kami merekomendasikan agar Anda tidak melakukan diskretisasi fitur pada fitur kontinu dengan tipe data numerik.
Algoritma PS-SMART dapat memperkenalkan keacakan. Contohnya, keacakan dapat diperkenalkan dalam skenario berikut: pengambilan sampel data dan fitur berdasarkan data_sample_ratio dan fea_sample_ratio, optimasi algoritma PS-SMART menggunakan histogram untuk pendekatan, dan penggabungan sketsa lokal ke dalam sketsa global. Struktur pohon bervariasi ketika pekerjaan dijalankan pada beberapa node pekerja dalam mode terdistribusi. Namun, efek pelatihan model secara teoritis sama. Anda mungkin mendapatkan hasil yang berbeda meskipun menggunakan data dan parameter yang sama selama pelatihan.
Untuk mempercepat pelatihan, Anda dapat menyetel parameter Cores ke nilai yang lebih besar. Algoritma PS-SMART memulai pekerjaan pelatihan setelah sumber daya yang diperlukan disediakan. Periode tunggu meningkat seiring dengan jumlah sumber daya yang diminta.
Catatan Penggunaan
Saat menggunakan komponen PS-SMART Multiclass Classification, perhatikan hal-hal berikut:
Komponen PS-SMART Multiclass Classification mendukung pekerjaan terkait ratusan ribu fitur. Namun, pekerjaan ini intensif sumber daya dan memakan waktu. Untuk mengatasi masalah ini, Anda dapat menggunakan algoritma GBDT dalam pelatihan. Algoritma GBDT cocok untuk skenario di mana fitur kontinu digunakan untuk pelatihan. Anda dapat melakukan one-hot encoding pada fitur kategorikal untuk menyaring fitur dengan frekuensi rendah. Kami merekomendasikan agar Anda tidak melakukan diskretisasi fitur pada fitur kontinu dengan tipe data numerik.
Algoritma PS-SMART dapat memperkenalkan keacakan. Contohnya, keacakan dapat diperkenalkan dalam skenario berikut: pengambilan sampel data dan fitur berdasarkan data_sample_ratio dan fea_sample_ratio, optimasi algoritma PS-SMART menggunakan histogram untuk pendekatan, dan penggabungan sketsa lokal ke dalam sketsa global. Struktur pohon bervariasi ketika pekerjaan dijalankan pada beberapa node pekerja dalam mode terdistribusi. Namun, efek pelatihan model secara teoritis sama. Anda mungkin mendapatkan hasil yang berbeda meskipun menggunakan data dan parameter yang sama selama pelatihan.
Untuk mempercepat pelatihan, Anda dapat menyetel parameter Cores ke nilai yang lebih besar. Algoritma PS-SMART memulai pekerjaan pelatihan setelah sumber daya yang diperlukan disediakan. Periode tunggu meningkat seiring dengan jumlah sumber daya yang diminta.
Konfigurasi Komponen
Metode 1: Konfigurasikan komponen di konsol PAI
Tambahkan komponen PS-SMART Multiclass Classification pada halaman pipeline Machine Learning Designer. Konfigurasikan parameter berikut:
Kategori | Parameter | Deskripsi |
Fields Setting | Use Sparse Format | Tentukan apakah data input dalam format sparse. Jika data input adalah data sparse dalam format key-value, pisahkan pasangan key-value dengan spasi, dan pisahkan keys dan values dengan titik dua (:). Contoh: 1:0.3 3:0.9. |
Feature Columns | Pilih kolom fitur untuk pelatihan dari tabel input. Jika data dalam tabel input dalam format padat, hanya kolom tipe BIGINT dan DOUBLE yang didukung. Jika data dalam tabel input adalah pasangan key-value dalam format sparse, dan keys dan values adalah tipe data numerik, hanya kolom tipe STRING yang didukung. | |
Label Column | Kolom label dalam tabel input. Kolom tipe STRING dan tipe data numerik didukung. Namun, hanya data tipe data numerik yang dapat disimpan dalam kolom. Sebagai contoh, nilai kolom dapat berupa 0 atau 1 dalam klasifikasi biner. | |
Weight Column | Pilih kolom yang berisi bobot setiap baris sampel. Kolom tipe data numerik didukung. | |
Parameters Setting | Classes | Jumlah kelas untuk klasifikasi multikelas. Jika Anda menetapkan parameter ini ke n, nilai kolom label adalah {0,1,2,...,n-1}. |
Evaluation Indicator Type | Anda dapat menetapkan parameter ini ke Multiclass Negative Log Likelihood atau Multiclass Classification Error. | |
Trees | Jumlah pohon. Nilainya harus bilangan bulat positif. Nilai Trees sebanding dengan durasi pelatihan. | |
Maximum Decision Tree Depth | Nilai defaultnya adalah 5, yang menunjukkan bahwa hingga 32 simpul daun dapat dikonfigurasi. | |
Data Sampling Ratio | Rasio pengambilan sampel data saat pohon dibangun. Data sampel digunakan untuk membangun pembelajar lemah untuk mempercepat pelatihan. | |
Feature Sampling Fraction | Rasio pengambilan sampel fitur saat pohon dibangun. Fitur sampel digunakan untuk membangun pembelajar lemah untuk mempercepat pelatihan. | |
L1 Penalty Coefficient | Ukuran simpul daun. Nilai yang lebih besar menunjukkan distribusi simpul daun yang lebih merata. Jika terjadi overfitting, tingkatkan nilai parameter ini. | |
L2 Penalty Coefficient | Ukuran simpul daun. Nilai yang lebih besar menunjukkan distribusi simpul daun yang lebih merata. Jika terjadi overfitting, tingkatkan nilai parameter ini. | |
Learning Rate | Masukkan tingkat pembelajaran. Nilai valid: (0,1). | |
Sketch-based Approximate Precision | Masukkan ambang batas untuk memilih kuantil saat Anda membangun sketsa. Nilai yang lebih kecil menunjukkan bahwa lebih banyak bin dapat diperoleh. Dalam kebanyakan kasus, nilai default 0.03 digunakan. | |
Minimum Split Loss Change | Masukkan perubahan loss minimum yang diperlukan untuk membagi sebuah simpul. Nilai yang lebih besar menunjukkan probabilitas pemisahan simpul yang lebih rendah. | |
Features | Masukkan jumlah fitur atau ID fitur maksimum. Konfigurasikan parameter ini jika Anda ingin mengevaluasi penggunaan sumber daya. | |
Global Offset | Masukkan nilai prediksi awal semua sampel. | |
Random Seed | Masukkan benih acak. Nilai parameter ini harus berupa bilangan bulat. | |
Feature Importance Type | Jenis fitur. Nilai valid:
| |
Tuning | Cores | Jumlah core. Secara default, sistem menentukan nilainya. |
Memory Size per Core (MB) | Ukuran memori setiap core. Unit: MB. Dalam kebanyakan kasus, sistem menentukan ukuran memori. |
Metode 2: Konfigurasikan komponen menggunakan perintah PAI
Gunakan perintah PAI untuk mengonfigurasi komponen PS-SMART Multiclass Classification. Anda dapat menggunakan komponen SQL Script untuk memanggil perintah PAI. Untuk informasi lebih lanjut, lihat SQL Script.
--Pelatihan
PAI -name ps_smart
-project algo_public
-DinputTableName="smart_multiclass_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="features"
-DenableSparse="true"
-Dobjective="multi:softprob"
-Dmetric="mlogloss"
-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"
--Prediksi
PAI -name prediction
-project algo_public
-DinputTableName="smart_multiclass_input";
-DmodelName="xlab_m_pai_ps_smart_bi_545859_v0"
-DoutputTableName="pai_temp_24515_545860_1"
-DfeatureColNames="features"
-DappendColNames="label,features"
-DenableSparse="true"
-DkvDelimiter=":"
-Dlifecycle="28"Modul | Parameter | Diperlukan | Nilai Default | Deskripsi |
Parameter data | featureColNames | Ya | N/A | Kolom fitur yang dipilih dari tabel input untuk pelatihan. Jika data dalam tabel input dalam format padat, hanya kolom tipe BIGINT dan DOUBLE yang didukung. Jika data dalam tabel input adalah data sparse dalam format key-value, dan keys dan values adalah tipe data numerik, hanya kolom tipe STRING yang didukung. |
labelColName | Ya | N/A | Kolom label dalam tabel input. Kolom tipe STRING dan tipe data numerik didukung. Namun, hanya data tipe data numerik yang dapat disimpan dalam kolom. Sebagai contoh, nilai kolom dapat berupa {0,1,2,…,n-1} dalam klasifikasi multikelas. n menunjukkan jumlah kelas. | |
weightCol | Tidak | N/A | Pilih kolom yang berisi bobot setiap baris sampel. Kolom tipe data numerik didukung. | |
enableSparse | Tidak | false | Tentukan apakah data input dalam format sparse. Nilai valid: true and false. Jika data input adalah data sparse dalam format key-value, pisahkan pasangan key-value dengan spasi, dan pisahkan keys dan values dengan titik dua (:). Contoh: 1:0.3 3:0.9. | |
inputTableName | Ya | N/A | Nama tabel input. | |
modelName | Ya | N/A | Nama model output. | |
outputImportanceTableName | Tidak | N/A | Nama tabel yang berisi pentingnya fitur. | |
inputTablePartitions | Tidak | N/A | Partisi yang dipilih dari tabel input untuk pelatihan. Format: ds=1/pt=1. | |
outputTableName | Tidak | N/A | Tabel MaxCompute yang dihasilkan. Tabel ini adalah file biner yang tidak dapat dibaca dan hanya dapat diperoleh menggunakan komponen prediksi PS-SMART. | |
lifecycle | Tidak | 3 | Lifecycle tabel output. | |
Parameter algoritma | classNum | Ya | N/A | Jumlah kelas untuk klasifikasi multikelas. Jika Anda menetapkan parameter ini ke n, nilai kolom label adalah {0,1,2,...,n-1}. |
objective | Ya | N/A | Jenis fungsi objektif. Jika Anda menggunakan klasifikasi multikelas untuk pelatihan, tentukan fungsi objektif multi:softprob. | |
metric | Tidak | N/A | Jenis metrik evaluasi set pelatihan, yang ditentukan dalam stdout koordinator dalam logview. Nilai valid:
| |
treeCount | Tidak | 1 | Jumlah pohon. Nilainya sebanding dengan jumlah waktu pelatihan. | |
maxDepth | Tidak | 5 | Kedalaman maksimum pohon. Nilai valid: 1 hingga 20. | |
sampleRatio | Tidak | 1.0 | Rasio pengambilan sampel data. Nilai valid: (0,1]. Jika Anda menetapkan parameter ini ke 1.0, tidak ada data yang diambil sampelnya. | |
featureRatio | Tidak | 1.0 | Rasio pengambilan sampel fitur. Nilai valid: (0,1]. Jika Anda menetapkan parameter ini ke 1.0, tidak ada data yang diambil sampelnya. | |
l1 | Tidak | 0 | Koefisien penalti L1. Nilai yang lebih besar menunjukkan distribusi simpul daun yang lebih merata. Jika terjadi overfitting, tingkatkan nilai parameter ini. | |
l2 | Tidak | 1.0 | Koefisien penalti L2. Nilai yang lebih besar menunjukkan distribusi simpul daun yang lebih merata. Jika terjadi overfitting, tingkatkan nilai parameter ini. | |
shrinkage | Tidak | 0.3 | Nilai valid: (0,1). | |
sketchEps | Tidak | 0.03 | Ambang batas untuk memilih kuantil saat Anda membangun sketsa. Jumlah bin adalah O(1.0/sketchEps). Nilai yang lebih kecil menunjukkan bahwa lebih banyak bin dapat diperoleh. Dalam kebanyakan kasus, nilai default digunakan. Nilai valid: (0,1). | |
minSplitLoss | Tidak | 0 | Perubahan loss minimum yang diperlukan untuk membagi sebuah simpul. Nilai yang lebih besar menunjukkan probabilitas pemisahan simpul yang lebih rendah. | |
featureNum | Tidak | N/A | Jumlah fitur atau ID fitur maksimum. Konfigurasikan parameter ini jika Anda ingin mengevaluasi penggunaan sumber daya. | |
baseScore | Tidak | 0.5 | Nilai prediksi awal semua sampel. | |
randSeed | Tidak | N/A | Benih acak. Nilai parameter ini harus berupa bilangan bulat. | |
featureImportanceType | Tidak | gain | Jenis pentingnya fitur. Nilai valid:
| |
Parameter penalaan | coreNum | Tidak | Dialokasikan secara otomatis | Jumlah core yang digunakan dalam komputasi. Kecepatan algoritma komputasi meningkat seiring dengan nilai parameter ini. |
memSizePerCore | Tidak | Dialokasikan secara otomatis | Ukuran memori setiap core. Unit: MB. |
Penerapan Model PS-SMART
Jika Anda ingin menerapkan model yang dihasilkan oleh komponen Pelatihan Klasifikasi Biner PS-SMART ke EAS sebagai layanan online, Anda harus menambahkan komponen Model export sebagai node hilir untuk komponen Pelatihan Klasifikasi Biner PS-SMART dan mengonfigurasi komponen Ekspor Model. Untuk informasi lebih lanjut, lihat Ekspor Model.
Setelah komponen Ekspor Model berhasil dijalankan, Anda dapat menerapkan model yang dihasilkan ke EAS sebagai layanan online di halaman EAS-Online Model Services. Untuk informasi lebih lanjut, lihat Parameter untuk penyebaran kustom di konsol.