Elastic Algorithm Service (EAS) menyediakan processor bawaan untuk Predictive Model Markup Language (PMML). Anda dapat menggunakan processor ini untuk men-deploy model dalam format PMML sebagai layanan online dan melakukan inferensi secara real-time. Topik ini menjelaskan cara men-deploy dan memanggil layanan model PMML.
Informasi latar belakang
Anda dapat menggunakan PMML processor untuk men-deploy model algoritma dalam format PMML ke EAS. Model algoritma yang diekspor dari Machine Learning Designer dapat langsung di-deploy. Model algoritma yang dilatih menggunakan framework open source, seperti scikit-learn dan XGBoost, harus dikonversi ke format PMML terlebih dahulu sebelum dapat di-deploy ke EAS. Untuk informasi selengkapnya, lihat Export a general-purpose model.
Untuk informasi lebih lanjut mengenai model PMML, lihat PMML 4.4 - General Structure.
Kebijakan imputasi nilai yang hilang
PMML processor menyediakan kebijakan default untuk mengisi nilai yang hilang. Jika kebijakan imputasi nilai yang hilang (isMissing) tidak ditentukan untuk fitur dalam file model PMML, processor akan mengisi nilai default berikut.
|
Data type |
Default imputed value |
|
BOOLEAN |
false |
|
DOUBLE |
0.0 |
|
FLOAT |
0.0 |
|
INT |
0 |
|
STRING |
"" |
Langkah 1: Deploy layanan
Saat menggunakan client EASCMD untuk men-deploy layanan model PMML, atur processor type menjadi pmml. Kode berikut menunjukkan contoh file konfigurasi.
{
"name": "eas_lr_example",
"processor": "pmml",
"model_path": "http://examplebucket.oss-cn-shanghai.aliyuncs.com/models/lr.pmml",
"metadata": {
"instance": 1,
"cpu": 1
}
}
Untuk informasi selengkapnya tentang cara menggunakan client EASCMD untuk men-deploy layanan, lihat Deploy a service using EASCMD or DSW.
Anda juga dapat men-deploy layanan model PMML dari Konsol. Untuk informasi selengkapnya, lihat Deploy a service from the console.
Langkah 2: Panggil layanan
Ikuti langkah-langkah berikut untuk memanggil layanan.
-
Setelah layanan PMML di-deploy, buka halaman Elastic Algorithm Service (EAS). Temukan layanan yang ingin Anda panggil, lalu klik View Invocation Method pada kolom Service Method untuk mendapatkan titik akhir layanan dan Token otentikasi.
-
Buat permintaan layanan.
Input dan output layanan PMML harus dalam format JSON. Satu permintaan dapat berisi beberapa sampel. Setiap sampel terdiri atas data fitur dalam format pasangan kunci-nilai. Kode berikut menunjukkan contohnya.
[ { "address": 12, "age": 22, "ed": 4, "marital": 3.0, "region": 2.0, "tenure": 4.0 }, { "address": 2, "age": 34, "ed": 6, "marital": 1.3, "region": 2.1, "tenure": 4.2 } ]CatatanSaat mengirim permintaan layanan, Anda dapat menghapus line break dan spasi dari file JSON untuk mengurangi lalu lintas jaringan dan meningkatkan performa layanan.
-
Kirim permintaan layanan.
Anda dapat menggunakan salah satu metode berikut:
PentingJika Anda meneruskan token langsung di Header HTTP, token tersebut dikirim dalam teks biasa melalui jaringan. Jika Anda menggunakan SDK yang disediakan oleh EAS, token digunakan untuk menandatangani permintaan sebelum dikirim. Metode ini memberikan keamanan yang lebih tinggi.
-
Gunakan perintah curl untuk menguji layanan dengan cepat.
Layanan ini menyediakan titik akses HTTP. Saat mengirim permintaan, Anda dapat meneruskan Token otentikasi langsung di Header HTTP. Kode berikut menunjukkan contohnya.
// Kirim permintaan. curl -v 18284888792***.cn-shanghai.pai-eas.aliyuncs.com/api/predict/pmml_test \ -H 'Authorization: YmE3NDkyMzdiMzNmMGM3ZmE4ZmNjZDk0M2NiMDA***' \ -d '[{"region": 2.0, "marital":3.0,"tenure":4.0, "age":22,"address":12,"ed":4},{"region": 2.1, "marital":1.3,"tenure":4.2, "age":34,"address":2,"ed":6}]'Keterangan:
-
18284888792***.cn-shanghai.pai-eas.aliyuncs.com/api/predict/pmml_test: Ganti dengan titik akhir layanan yang Anda peroleh di Langkah 1.
-
Authorization: Atur ke Token otentikasi yang Anda peroleh di Langkah 1.
Berikut adalah contoh tanggapan.
[{"p_0":0.2856724025030001,"p_1":0.7143275974969999},{"p_0":0.18324957921381624,"p_1":0.8167504207861838}] -
-
Gunakan Python SDK untuk mengirim permintaan. Untuk informasi selengkapnya, lihat Python SDK usage guide.
Kode berikut menunjukkan contohnya.
#!/usr/bin/env python from eas_prediction import PredictClient from eas_prediction import StringRequest if __name__ == '__main__': # Ganti placeholder dengan titik akhir layanan dan nama layanan yang Anda peroleh di Langkah 1. client = PredictClient('1828488879222***.cn-shanghai.pai-eas.aliyuncs.com', 'pmml_test') # Ganti placeholder dengan Token otentikasi yang Anda peroleh di Langkah 1. client.set_token('YmE3NDkyMzdiMzNmMGM3ZmE4ZmNjZDk0M2NiMDA***') client.init() req = StringRequest('[{"region": 2.0, "marital":3.0,"tenure":4.0, "age":22,"address":12,"ed":4},{"region": 2.1, "marital":1.3,"tenure":4.2, "age":34,"address":2,"ed":6}]') for x in range(100): resp = client.predict(req) print(resp)Untuk informasi selengkapnya tentang penggunaan SDK dalam bahasa pemrograman lain, lihat Service invocation SDKs.
-
Dokumen terkait
-
Anda juga dapat menggunakan processor bawaan lainnya untuk men-deploy layanan online EAS. Untuk informasi selengkapnya, lihat Deploy a service using a pre-built processor.
-
Anda juga dapat mengembangkan custom processor dan menggunakannya untuk men-deploy layanan online EAS. Untuk informasi selengkapnya, lihat Deploy a service using a custom processor.